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
> 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
Auswertung mittels µC http://www.mikrocontroller.net/articles/Drehimpulsgeber Orientiere dich an den Links bei "Beispielcode in C" Gruß, Magnetus
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.