Hallo,
ist das ein mechanischer Drehgeber den du mit der Hand drehst?
Wenn ja, dann würde ich das so oder so ähnlich angehen. Habs auch noch nicht gemacht. Ich würde innerhalb einer festen Zeitspanne ( eine Sekunde ?) die Zählerdifferenz auswerten und daraus die Drehgeschwindigkeit berechnen. Für die neue Messung den alten Zählerstand merken und wenn die Messzeit vorbei ist den aktuellen Zählerstand merken. Erneute Differenz bilden und verrechnen. Das wird ständig wiederholt. Mit links/rechts Erkennung würde ich dafür nichts machen. Die Richtungserkennung ist nur ein "Nebenprodukt" der Encoderauswertung.
Da ich vor einer Weile eine Lib für mich geschrieben hatte mit den Infos von Peter Dannegger, kann ich dir was geben. Ein Bsp. für dich ist drin, da ich davon ausgehe das du einen mechanischer Drehgeber hast. Du musst nur sorgfältig den Portnamen und die Port Bits anpassen. Dafür habe ich Links zu den Pinouts eingefügt. Also das vor setup und innerhalb setup.
GrayEncoder_v2 .... ist für reine Encoder gedacht
Alps_Encoder ... ist für mechanische Encoder gedacht, die zählen 2 Digits pro Drehklick, ist in der Lib korrigiert, zumindestens macht das mein Alps EC11 so. Das mit der 2 Klick Korrektur ist der einzigste Unterschied zwischen beiden Instanzen.
Ich hoffe ich mute dir jetzt nicht zu viel auf einmal zu. Guck dir das in Ruhe an. Dann änderst du die L/R LED Anzeige ab. Dann überlegste dir wie du die Zählerwerte speicherst bis zum verrechnen.
GrayEncoder_v2.zip (4.77 KB)