PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] potentiometer an mega32 auswerten



jcrypter
03.08.2010, 19:11
Hallo liebes Forum,

ich habe heute angefangen mich mit microcontroller-programmierung zu beschäftigen.

PWM habe ich schon hinbekommen. Ich habe eine LED gedimmt.
Mein nächstes Ziel ist es, ein Potentiometer auszuwerten um darüber die Helligkeit der angeschlossenen LED zusteuern.

Allerdings komme ich da nicht weiter.
Ich bin auf Beispiele angewiesen, da ich sonst überhaupt nciht weiß wie ich anfangen soll.

Ich habe schon gegoogelt und hier ins Wiki geguckt.
Soweit ich das verstanden habe, muss ich die Spannung an einem Pin messen.
Diese verändert sich natürlich wenn man die Stellung des Potentiometer verändert.
Allerdings weiß ich nicht genau wie es anschließen muss und vorallem wie ich die programmierung gestalten muss.
Könnt ich mir Tipps geben. wo ich informationen dies bzgl finde?
Ein tutorial oder etwys ähnliches wäre super!

ich danke euch für eure Mühe!

Crypi

peterfido
03.08.2010, 20:10
In der Bascom Hilfe wird ADC doch prima erklärt. Schau mal im Index unter "Config ADC". Anschließen des Potis normal als Spannungsteiler. Der Abgriff kommt auf den genutzten PIN.

Kampi
03.08.2010, 20:28
Poti mit Pin 1 an 5V anschließen und Pin 3 an GND und den Schleifer an einen pin vom ADC. So hast du einen variablen Spannungsteiler. Den ließt du dann aus.....Beispielcodes gibbet in der Bascomhilfe und dann kannst du den ADC-Wert über eine selbst ausgedachte Formel z.B. in einen Wert für die PWM umrechnen um so die LED übers Poti zu dimmen.

jcrypter
03.08.2010, 20:54
Ich danke euch!

Ich habs geschafft!

[php:1:1c6cde8fce]$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000

Config Adc = Single , Prescaler = Auto

Config Portc.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)
Config Portc.1 = Output

Start Adc

Dim Channel As Byte




Channel = 0



Do


If Getadc(channel) < 500 Then
Portc.0 = 1
Portc.1 = 0
Else
Portc.0 = 0
Portc.1 = 1
End If

Loop

End[/php:1:1c6cde8fce]

hier jetzt zwar ohne PWM aber das Prinzip hab ich verstanden!

Grüße!
Crypi

Kampi
03.08.2010, 21:28
Ja jetzt kannst du einen Schritt weiter gehen und entweder festen Spannungswerten einen PWM-Wert zuweisen z.B. ADC-Wert 512 = PWM-Wert 128 oder du rechnest den ADC-Wert mittels einer Formel in einen PWM-Wert um und benutzt diesen z.B. Compare1a = ADC-Wert / 4.