Pages: [1]   Go Down
Author Topic: 4 verschiedene Drehencoder auslesen  (Read 763 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 128
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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&
Logged

Germany
Offline Offline
Edison Member
*
Karma: 133
Posts: 1443
If you believe something is right, you won't see what's wrong (David Straker).
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Logged

Pages: [1]   Go Up
Jump to: