PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Poti und RN-Control



Palmer
18.05.2006, 18:32
Hallo Leute,

Ich besitze den RN-Control und bin Neuling. Ich würde ich gerne einen Poti ( 0 bis 420kOhm) anschließen und mit diesem etwas arbeiten.
Wie sieht das Programm aus (Bascom: Der Widerstandsbereich soll in 8 Bereiche aufgeteilt werden, für die LEDs, die dann nacheinander leuchten sollen, wenn den Poti höher schraube ).
Ich weiß, dass es einfach ist, aber ich hab das noch nie gemacht!

Moritz f.
18.05.2006, 19:22
Hallo,
das ganze passiert über einen sogenannten ADC (analog/Digital converter)
Google mal danach oder schau dir dieses Beispiel an, da ist auch die ausgabe an einem Lcd dabei.

http://mikrocontroller.cco-ev.de/php/counter/counter.php?datei=Bas_ADC.zip&location=http://mikrocontroller.cco-ev.de/files&type=count

MfG Moritz

Palmer
19.05.2006, 13:11
Hallo,
das ganze klappt bei mir noch nicht richtig. Mit dem ADC weiß ich bescheid. Das Programm erkennt bei mir nicht die Werte für den Poti. Ich habe den Poti am PA.6 und PA.7 (RN-Control Mega32 Board) angeschlossen, die Spannung verändert sich auch, wenn ich am Poti drehe, doch das Programm reagiert nicht, obwohl ich viel ausprobiert habe.
Könnte mir vielleicht jemand ein weiteres Beispiel zeigen und sagen, ob ich den Poti richtig angeschlossen habe!

Gruß, Palmer

Andree-HB
19.05.2006, 13:33
...wie sieht denn Dein Programm aus ?

Palmer
19.05.2006, 16:24
Hallo,

Mein Programm sieht so aus (da sind wahrscheinlich viele Fehler):



Config Portc = Output
Config Pina.7 = Input
Porta.7 = 1

Config Adc = Single , Prescaler = Auto

Start Adc
Dim W As Word , Channel As Byte
Channel = 0

Do
If W = Getadc(7) Then
Portc = &B00000000

Else
Portc = &B11111111
End If
Loop
End

Das ist mein erstes.
Mein zweites lautet:



Config Portc = Output

Config Pina.7 = Input
Porta.7 = 1

Declare Sub T1()
Declare Sub T2()
Declare Sub T3()
Declare Sub T4()
Declare Function Tastenabfrage() As Byte

Config Adc = Single , Prescaler = Auto
Dim Taste As Byte


Start:

Portc = &B11111111

Do

Taste = Tastenabfrage()
If Taste <> 0 Then

Select Case Taste

Case 1
Call T1
Case 2
Call T2
Case 3
Call T3
Case 4
Call T4

End Select


Else
End If


Sub T1()

...

End Sub


Sub T2()

...

End Sub

Sub T3()

...

End Sub


Sub T4()

...

End Sub

Loop


Function Tastenabfrage() As Byte
Local Ws As Word

Tastenabfrage = 0

Start Adc
Ws = Getadc(7)
If Ws < 500 Then
Select Case Ws
Case 400 To 450
Tastenabfrage = 1

Case 330 To 380
Tastenabfrage = 2

Case 260 To 305
Tastenabfrage = 3

Case 180 To 220
Tastenabfrage = 4
End Select


End If

End Function

Für das Zweite Programm habe ich einen Teil der Demo von den Tastern benutzt, um die einzelnen Widerstandsbereiche festzulegen (Das Poti habe ich am Porta.7 und Porta.6 angeschlossen). Diese sind wahrscheinlich falsch, doch ich weiß nicht wie sie aussehen müssen. Mein Poti besitzt einen Widerstand von 420kOhm.

Gruß, Palmer

RHS
19.05.2006, 19:40
Hallo,

wie genau hast Du das Poti angeschlossen?

Normal hängt der mittlere Anschluss am Port, die anderen
beiden an +5V und GND.

Du schreibst von PA.6 und PA.7. Das Poti gehört aber nur an
einen Port ...

Im ersten Programm oben muss nach dem Do ein W = Getadc(7)
folgen, wenn das Poti an PA.7 hängt.

Palmer
21.05.2006, 15:31
Hallo,
ich hab den fehler gefunden. Mein Programm funktioniert zwar (mit PA.7), aber am Poti hat eine Klemme nicht richtig gesessen (ich wollte den einen Poti an zwei Datenleitungen setzten), deswegen war kein Kontakt da!

Danke, Palmer