Arduino Rotary Encoder Code?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Der Button ist einfach ein Taster, völlig unabhängig vom drehen.

Am besten ist eine ISR, also eine Interrupt Service Routine. Dazu musst Du die drei Eingänge (Kontakt A, B und Taster) auf Interrupt on Change einstellen. Passiert etwas, wird der Interrupt gestartet.

Und da kannst Du das dann so programmieren, dass eine globale Variable dann enthält was Du brauchst.

Am Sinnvollsten ist, eine Variable beim drehen hoch und runter zu zählen so dass Du im Programm leicht abfragen kannst ob und wie weit der gedreht wurde.

Am besten nimmst Du nur Kontakt A (und Taster), denn kannst Du einfach abfragen ob der Kontakt A nach HIGH geht und wenn ja, gucken ob B HIGH oder LOW ist, das verrät dann die Richtung.

Woher ich das weiß:Berufserfahrung