Drehencoder_auswerten
(armin77, 01.01.2013, 19:01:59)Mit einem Drehencoder kann man professionelle Menüsteuerungen erstellen.
Dieser gibt zeitversetzt an den Anschlüssen A und B Taktimpulse aus, sodaß
man Richtung (links/rechts) und Anzahl der Taktimpulse bestimmmen kann.
Der Anschluß C wird mit GND verbunden.
Hier einmal eine Grundschaltung um zu verstehen wie der Drehencoder funktioniert
Jeweils eine LED (low current) wird mit Vorwiderstand an Anschluß A und B angeschlossen.
Anschluß C an Masse.
Wenn man den Drehencoder langsam dreht spürt man einen 'Hügel'.
Kurz darauf leuchtet eine der beiden LEDs auf.
Wird der Encoder sehr langsam weiter gedreht, geht auch die zweite Leuchtdiode an.
Kurz darauf verlischt die erste Leuchtdiode wieder und dann auch die zweite.
Je nach Richtung beginnt LED1 oder LED2 als erstes an zu leuchten.
Hier der Anschluß des Encoders an den ATMega8
Hier ein Beispielcode zum Auswerten des Drehencoders:
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack=40
$swstack=16
$framesize=32
Dim Zustand As Byte
Dim Zahl As Word
Config Portb.0 = Input
Config Portb.1 = Input
Portb.0 = 1
Portb.1 = 1
Do
Zustand = Encoder(pinb.0 , Pinb.1 , Links , Rechts)
Loop
Links:
Incr Zahl
Return
Rechts:
Decr Zahl
Return
An Portb.0 ist Anschluß A und an Portb.1 Anschluß B des Encoders angeschlossen.
Anschluß C des Encoders geht auf Masse.
In Bascom deklarieren wir die Ports B.0 und B.1 als Eingänge
und aktivieren den internen Pull-Up Widerstand.
Dann werten wir mit dem Encoder Befehl den Impulsgeber aus und
springen entsprechend in die Unterprogramme Rechts oder Links.
Hier kann man eine Zahl hochzählen oder etwas anzeigen lassen.