Forum: Mikrocontroller und Digitale Elektronik ALPS - STEC11B Drehimpulsgeber (reichelt.de) mit uC auswerten


von Andrej S. (andrej)


Angehängte Dateien:

Lesenswert?

Liebe Forum-Nutzer!

Ich habe mir STEC11B Drehimpulsgeber bei reichelt.de gekauft und 
überlege jetzt, wie ich diesen mit dem uC auswerte. Ich habe natürlich 
http://www.mikrocontroller.net/articles/Drehgeber von Peter gelesen, 
aber immer noch kann ich nicht verstehen, wie ich weiter vorgehen soll.

1. Wo ist der Unterschied zw. single/two/four step encoder? Was bedeutet 
denn single/two/four step? Konnte im Netz keine ordentliche Antwort 
finden.

2. Der STEC11B Drehimpulsgeber hat den Rastpunkt auf dem Pegelwechsel 
der Spur (wie rechts) oder schon beim eingestellten Level (wie links)? 
Reichelt gibt an, dass es sich um EC11B handelt, mein Drehgeber hat 
jedoch eine vertikale Ausführung und laut dem Datenblatt gibt es kein 
vertikaler EC11B.

3. Fragen zum Code von Peter:
3.1 Warum kann man nicht anstatt new ^= 1; sofort new=1 schreiben? Warum 
wird dem new, abhängig von dem Fall, 11 oder 01 zugewiesen?

3.2 was machen die Funktionen encode_read1, 2, 4?

Mit freundlichen Grüßen,

Andrej

von Peter D. (peda)


Lesenswert?

Andrej S. schrieb:
> 1. Wo ist der Unterschied zw. single/two/four step encoder?

Damit meinte ich, wieviel Phasenwechsel einem Zählschritt entsprechen 
sollen.
Rastende machen 2 oder 4 Phasenwechsel je Rastung.
Bei nichtrastend möchte man oft jeden Phasenwechsel zählen.

von Max B. (theeye)


Lesenswert?

Andrej S. schrieb:
> 2. Der STEC11B Drehimpulsgeber hat den Rastpunkt auf dem Pegelwechsel
> der Spur (wie rechts) oder schon beim eingestellten Level (wie links)?

Falls das der günstigere ist, ist der Phasenwechsel auf dem Rastpunkt.

Gruß Max

von Andrej S. (andrej)


Lesenswert?

Na und für welchen Typ vom Encoder ist dein Programm geeignet? Für den 
linken oder rechten?

Für linken schwierig, denn beide Spuren (A und B) sind im Ruhezustand 
immer entweder an oder aus. Die Fallunterscheidung in encode_init bringt 
dann nichts, falls ich es richtig verstanden habe.

Falls für den rechten, wie kann die encode_init 100% sicherstellen, ob 
der Zustand neben der Flanke high oder low ist?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.