AEQ-WEB

Arduino Rotary Encoder
Arduino
30.12.2018

Arduino Drehgeber einlesen

Für dieses Projekt gibt es auch ein Video auf Youtube: Arduino Rotary Encoder - Wie der Drehregler funktioniert und welche Library gut ist


Rotary Encoder (Drehgeber oder Drehcodierer) ist vom äußerlichen Aufbau ähnlich wie ein Potentiometer. Innerlich unterscheidet sich dieses Bauteil jedoch komplett von einem Potentiometer. Diese sogenannten Drehregler kennt man z.B. von vielen Radios, wo man damit die Lautstärke regeln kann. Man findet solche Bauteile aber auch bei Maschinen, wo man z.B. eine Geschwindigkeit oder Drehzahl einstellen kann oder auch beim Scroll-Rad in einer Computermaus.


Wie funktioniert der Drehgeber

Der Drehgeber liefert digitale Ausgangsignale, die von einem Mikrocontroller ausgewertet werden können. Neben der Stromversorgung werden dafür zwei weitere Leitungen benötigt. Über diese zwei Leitungen werden bei der Drehung elektrische Impulse (HIGH und LOW) an einem Controller gesendet. Je nach Drehrichtung sind diese Impulse zwischen High und Low anders, wodurch der Mikrocontroller die Drehrichtung ermitteln kann. Werden diese Impulse gezählt, so kann der Mikrocontroller einen Zähler festlegen, der dann intern je nach Drehrichtung hinauf oder hinunter zählt. Diese Zahl wird dann zwischengespeichert und bei einer Veränderung des Drehgebers je nach Drehrichtung entweder bei jedem Impuls addiert oder subtrahiert.


Arduino Rotary Encoder Wiring

Verwendung mit dem Arduino

Der Drehgeber kann grundsätzlich sehr leicht mit dem Arduino ausgelesen werden. Die Anwendung von solchen Drehgebern ist allerdings sehr zeitkritisch. Das Arduino Board muss ständig Veränderungen am Drehgeber erkennen, was bei einem umfangreichen Programm oft nicht immer möglich ist, speziell, wenn im Code ein oder mehrere „Delay“ vorkommen. Mit Interrupts kann man diesen Problemen entgegenwirken. Da dies gerade für Anfänger ein kompliziertes Thema ist, verwenden wir hier eine Library.


Die Library

Wir haben verschiedene Librarys getestet. Die Bibliothek von Mathertel (Matthias Hertel) verwendet Interrupts, weshalb die Library ideal für kleine als auch große Arduino Projekte ist. Diese Bibliothek stellt auch einige Beispiele bereit, mit der auch Anfänger zurechtkommen sollten.