Go Down

Topic: 4 verschiedene Drehencoder auslesen (Read 870 times) previous topic - next topic

tsaG

Hallo!

Ich habe einen Arduino der über I2C die Werte von 4 verschiedenen Drehencodern ausgeben soll. Diese werden dann vom I2C endgerät ausgewertet und an den Arduino zurück gesandt. Dieser schaltet dann (je nach Daten welche Empfangen wurden) LEDs welche über 5 Shiftregister angeschlossen wurden.

Ich wollte die Drehencoder nicht über Interrupts anschliessen da die Daten ja über I2C versandt werden und ich mir da keine Verzögerungen leisten kann. Gibt es eventuell irgendwelche bestehenden Libraries oder Projekte die ich nutzen könnte?
Die Encoder werden von Hand gedreht, müssen also nicht sooo schnell aktualisiert werden (vielleicht 100ms?).

Die Verwendeten Encoder haben 30 Rastungen und 15 Impulse pro Umdrehung.
http://www.reichelt.de/Drehimpulsgeber/STEC11B02/3//index.html?ACTION=3&GROUPID=3714&ARTICLE=73912&SHOW=1&START=0&OFFSET=500&

olikraus

Hi

Für's googlen: Der englische Begriff wäre wohl "incremental rotary encoder"

Für mein eigenes Projekt wollte ich ebenfalls keinen Interrupt benuten und hab' deshalb den Drehencoder nur ab und zu abgefragt.
Da ich im Netz nichts zuverlässiges gefunden habe, habe ich die Signalverarbeitung selbst erarbeitet:

http://code.google.com/p/m2tklib/wiki/rotenc

Dort befindet sich auch ein vollständiges .ino File zum testen. Für die eine Richtung wird 0 1 2 3 0 1 2 3 0 1 usw ausgegeben, für die andere 4 5 6 7 4 5 6 7 usw.

Achtung: Wenn Du vier Encoder anschließen möchtest, dann müssen die beiden globalen variablen als arrays mit 4 elementen angelegt werden und der Code entsprechend erweitert werden.

Grüße,
Oliver



Go Up