Forum: Mikrocontroller und Digitale Elektronik Auswertung Drehimpulsgeber


von Timo (Gast)


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

von Olaf (Gast)


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

von Magnus Müller (Gast)


Lesenswert?

Auswertung mittels µC

http://www.mikrocontroller.net/articles/Drehimpulsgeber

Orientiere dich an den Links bei "Beispielcode in C"

Gruß,
Magnetus

von Schlumpf (Gast)


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)




von Fred (Gast)


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

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.