Die Funktionsweise eines Rotary Encoders
Ich besitze den Keyes KY 040 Rotary Encoder, welchen man für ca. 1 Euro kaufen kann. Dieser Rotary Encoder hat fünf Pins. Der GND Pin muss mit dem Ground verbunden werden, und der + Pin mit den 5V des Arduino. Über den SW Pin kann man auslesen, ob der, in den Knüppel integrierte, Button gedrückt wird oder nicht. Dieser wird mit einem digitalen Pin des Arduino verbunden.
Auch der DT und der CLK Pin müssen mit einem digital Pin des Arduino verbunden werden. Dabei sind die beiden Pins normalerweise auf HIGH geschaltet. Sobald man jedoch anfängt den Knüppel in eine Richtung zu drehen, so werden die beiden Pins auf LOW geschaltet.
Dabei ist jedoch die Reihenfolge entscheidend. Wird erst der eine Pin LOW, so wird der Knüppel in Richtung A gedreht, wird erst der andere Pin LOW, wird der Knüppel in Richtung B gedreht. Da an dieser Stelle das Programm sehr schnell reagieren muss, sollte man die Überprüfung in einen Interrupt machen. Hier ist ausführlich erklärt, wie man Interrupts mit dem Arduino verwendet.
Arduino Sketch zum Auslesen
Zunächst einmal muss man die beiden belegten digital Pins als INPUT definieren(der eine muss Pin 2 sein, da wir einen Interrupt verwenden). Außerdem muss der Interrupt definiert werden. In der Interruptroutine werden die Zustände der Pins geprüft und die Richtung ermittelt, und im loop Teil die Werte ausgewertet.
In diesem Beispielsketch wird die LED des Arduino(Pin 13) entsprechend dem Rotary Encoder
gedimmt.
Keine Kommentare:
Kommentar veröffentlichen
Mit dem Veröffentlichen eines Kommentars erklären Sie sich mit unserer Datenschutzerklärung einverstanden.
https://michaelsarduino.blogspot.de/p/datenschutzerklarung.html