Auswertung Drehimpulsgeber

Gast #578970
Lesenswert?

Hallo,

ich habe einen Drehimpulsgeber ( Conrad 705514).
Ich möchte eine autoarke Auswertung vornehmen, d.h. eine "Schaltung" 
soll die Drehrichtung anzeigen/ausgeben und das "Drücken" auswerten.

Möglichkeiten:
1. fertiger IC - gibt es da was??
2. diskrete Schaltung - wird wohl relativ aufwendig
3. µC - ich dachte da an einen CControl Micro (vorhandene 
Programmierungebung), benötigt aber irgend ein Bus-System (zu wenige IO)

Ich bin doch sicher nicht der erste mit dieser Problemstellung??

Kann jemand helfen??

Danke und Gruß

Timo
Gast #578978
Lesenswert?


> 1. fertiger IC - gibt es da was??

Ja gibt es. Sind aber selten und teuer. Werden normalerweise nur 
eingesetzt wenn die Impulsraten so hoch sind das ein Microcontroller da 
nicht mehr mitkommt.

> 2. diskrete Schaltung - wird wohl relativ aufwendig

Relativ ist relativ. :-) Aber der Rest der Menschheit nimmt wohl einen 
Microcontroller.

> 3. µC - ich dachte da an einen CControl Micro (vorhandene
> Programmierungebung), benötigt aber irgend ein Bus-System (zu wenige IO)

Dann nimmst du halt als externen Baustein einen Microcontroller dem 
kannst du dann auch deinen Bus verpassen. Und wer weiss vielleicht passt 
deine Anwendung da auch noch rein.

> Ich bin doch sicher nicht der erste mit dieser Problemstellung??

Doch. Die meisen Leute haben zwei Portleitungen an ihrem Controller frei 
und lesen die Geber darueber ein.

Olaf
Gast #578982
Lesenswert?

Hi!

Da gibt es mehrere Möglichkeiten.
Du kannst z.B. über eine kleine Statemachine die vier Zustände 1) 
auswerten, die der Geber einnehmen kann und dann die "Durchläufe" durch 
die FSM zählen.
Anhand der Abfolge, wie die Zustände eintreten kannst du die 
Drehrichtung erkennen (Stichwort: Quadraturdecoder)
Das ist die gängige Lösung. google einfach mal nach Quadraturdecoder
Es gibt auch µC mit extra Quadratureingang

Eine einfache Umsetzung der FSM ist auch in einem kleinen CPLD möglich.

Optional kannst du auch die Spuren A udn B auf ein FF geben (A z.B auf 
den Takt und B auf den D) Dann wird je nach Drehrichtung der Ausgang Q 
entweder 0 oder 1 annehmen.
zum Zählen der Impulse kannst dann einfach eine Spur (A oder B) auf nen 
Zähler führen.
Problem bei der Lösung: du hast nur noch 1/2 Auflösung des Gebers. 
Weiterhin können dir bei der Methode Inkremente verloren gehen, wenn du 
die Spur auf nen Zähler gibst und mit dem generierten Richtungssignal 
die Zählrichtung einstellst. Wenn du dann innerhalb eines Messzyklus die 
Drehrichtung änderst, kann sein, dass du eine falsche Endposition 
ermittelst.

Daher ist diese Methode nicht für jeden Anwendungsfall geeignet.

1) (A B) (A /B) (/A /B) (/A B)



Gast #579060
Lesenswert?

Hi,

vielleicht noch ein paar weitere Suchbegriffe:

- Encoder
- Drehencoder
- Inkrementalgeber
- Inkrementaldrehgeber
- Drehgeber
- Drehimpulsgeber
- rotary switch

Damit finden sich hier noch ein paar gute Beiträge. In der Codesammlung 
sind auch einige Routinen zur Auswertung, Anschaun lohnt.
Gruß

Fred

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren