Hallo allwissendes Forum,
als altgedienter Analogtechniker (Radio- und Fernsehtechniker), der es verpasst hat, sich an die Digitaltechnik anzubiedern, brauche ich eure Hilfe:
Ich möchte einen Dreh-Inkrementalgeber mit A- und B-Ausgang mit CMOS-Bausteinen der 4000er Serie so auswerten, das mir ein Ausgang Impulse bei rechts- und ein weiterer bei linksdrehung liefert. Jeweils ein Impuls bei Schaltvorgang.
Ich möchte CMOS-Bausteine verwenden, da mir Arduino, Raspberry und Kollegen auch vollkommen fremd sind.
Kann mir jemand ein Schaltbild einer entsprechenden Baugruppe erstellen und zusenden? Das zusammenbauen ist mir bekannt und kein Problem.
denn die Schaltung ist eher aufwändig, benötigt ein 74xx175 und ein 74xx86.
Das Taktsignal T muss mehr als doppelt so hoch sein wie die höchste Frequenz
des Inkrementalgebers A, B und geringer als die maximale Zählfrequenz des
nachfolgenden flankengetriggerten Zählers wie CD4516 oder 74HC191 auch BCD
dezimal mit CD4029.
Hier die Variante mit CMOS und getrennten Pulsausgängen. Drei ICs, kann man verkraften. Die Pulse sind low active. Wenn das nicht passt, braucht man einen 4. IC mit 2 Invertern, sproch noch ein 74HC00.
Die Teilschaltung aus IC2B, IC2C und IC2D liefert am Ausgang (abgesehen
von Spikes beim Umschalten der Eingänge) immer low. Damit sind die
Ausgänge von IC3A und IC3B und schließlich auch die Ausgänge LEFT und
RIGHT immer high. Diese Funktionalität kann man auch mit 0 statt 3 ICs
erreichen ;-)
Die Teilschaltung aus IC2B, IC2C und IC2D liefert am Ausgang (abgesehen
von Spikes beim Umschalten der Eingänge) immer low.
Ausgänge von IC3A und IC3B und schließlich auch die Ausgänge LEFT und
RIGHT immer high. Diese Funktionalität kann man auch mit 0 statt 3 ICs
erreichen ;-)
OK, ich hab IC2C falsch verdrahtet. Siehe Anhang. Jetzt sollte es passen.
Hier die Variante mit CMOS und getrennten Pulsausgängen. Drei ICs, kann
man verkraften. Die Pulse sind low active. Wenn das nicht passt, braucht
man einen 4. IC mit 2 Invertern, sproch noch ein 74HC00.
muss einmal nachfragen. Der TO wird sicherlich einen normalen Drehgeber haben der nur A und B Ausgang hat. Woher nimmt man das Taktsignal für eure Auswerteschaltungen?
Ich möchte CMOS-Bausteine verwenden, da mir Arduino, Raspberry und
Kollegen auch vollkommen fremd sind.
Wenn es kühler werden sollte, könnte ich Dir einen ATtiny25 programmieren. Der hat nichts mit Arduino & Co zu tun ;-)
Basis wäre diese Schaltung, wobei SCL/SDA durch UP/DOWN ersetzt würden: http://mino-elektronik.de/mt12_iic/mt12_iic.htm#qcnt_tiny25
muss einmal nachfragen. Der TO wird sicherlich einen normalen Drehgeber
haben der nur A und B Ausgang hat. Woher nimmt man das Taktsignal für
eure Auswerteschaltungen?
Das können die Geber selbst liefern. Freundlicherweise ist nämlich ganz sicher, dass sich am Gesamtergebnis der Auswertung immer nur dann etwas ändern kann, wenn mindestens einer der Geber seinen Status wechselt. (Die Umkehrung dieser Aussage gilt allerdings wohlgemerkt nicht).
Wie auch immer: Franks Schaltung braucht braucht jedenfalls einen externen Takt. Mit etwas mehr Aufwand an Logik (3/4 4030) kann man diese Abhängigkeit aber aufheben.
Ich möchte einen Dreh-Inkrementalgeber mit A- und B-Ausgang mit
CMOS-Bausteinen der 4000er Serie so auswerten, das mir ein Ausgang
Impulse bei rechts- und ein weiterer bei linksdrehung liefert. Jeweils
ein Impuls bei Schaltvorgang.
Bei Encodern mit A und B Signal stellt der eine Kanal den Takt dar.
Sehe ich nicht so, beide Kanäle sind gleichrangig.
Es sind einfach nur zwei Bit. Die Logik ist so:
Man muß sich die zwei Bit merken. Wenn sich ein Bit ändert,
egal welches, müssen beide Bits gelesen werden, und diese
mit den gemerkten zwei Bit verglichen werden. Nur so ist
herausfindbar ob es ein Vorwärts- oder Rückwärtsschritt
ist. Im Prinzip kommt der Takt immer von dem Bit was sich
gerade geändert hat.
Nö. Das haben wir schon 1001 mal durchgekaut. Siehe Drehgeber.
Da hat doch keiner etwas gegen und es kommt auf den Geber an.
Nur bei einem nicht rastenden Geber kann es sinnvoll sein, die volle Auflösung zu nutzen, d.h. die Auswertung jedes Wechsels von einem der beiden Signale.
Meine Aussage mit dem einen Signal als Takt für die Auswertung bezog sich auf Drehimpulsgeber mit Rastung. Dort findest du bspw. die Angabe 12 Pulse/ 12 Rastungen oder 24 Pulse/24 Rastungen (z.B. Alps EC12). Wegen der Rastungen ist es bei denen nicht sinnvoll, auf 90° Phase aufzulösen.
Bei denen, wo sich das Signal eines Kanals auf oder dicht beim Rastpunkt ändert, sind die Signale nicht gleichwertig und man verwendet sinnvollerweise das Signal, das sich nicht auf der Rastung ändert, als Takt fürs Auslesen des anderen.
Auf der Rastung ändert sich garnichts, da ist Stillstand,
es ändert sich nur was bei Bewegung. Was sich beim
Weiterdrehen von der Rastung aus ändert A oder B,
hängt von der Drehrichtung ab. Auch was sich vor
der Rastung geändert hat, hängt von der Drehrichtung ab.
Auf der Rastung ändert sich garnichts, da ist Stillstand,
es ändert sich nur was bei Bewegung.
Da reicht schon der Flügelschlag eines Schmetterlings oder eine leichte Temperaturerhöhung damit das Signal vom Kanal B kippt, kurz das Signal vom B-Kanal ist an der Rastposition undefiniert ("Detent position cannot be specified for B Signal").
https://tech.alpsalpine.com/e/products/detail/EC12E2440301/
kurz das Signal
vom B-Kanal ist an der Rastposition undefiniert
Entweder der Hersteller achtet garnicht drauf wo der
Rastpunkt ist und es ist Zufall wenn er sich genau
auf eine Flanke befindet. Ich glaube nicht, daß
es absicht ist. Als Hersteller würde ich versuchen
den Rastpunkt auf 1/4 oder 3/4 zu legen.
Wenn der Rastpunkt zufällig doch auf der Flanke
liegt und es wackelt, bedeutet daß immer,
Schritt vor, Schritt zurück, Schritt vor, Schritt zurück.
Entweder der Hersteller achtet garnicht drauf wo der
Rastpunkt ist und es ist Zufall wenn er sich genau
auf eine Flanke befindet. Ich glaube nicht, daß
es absicht ist. Als Hersteller würde ich versuchen
den Rastpunkt auf 1/4 oder 3/4 zu legen.
Wenn der Rastpunkt zufällig doch auf der Flanke
liegt und es wackelt, bedeutet daß immer,
Schritt vor, Schritt zurück, Schritt vor, Schritt zurück.
Moin,
schaut man sich das Datenblatt von Alps-Drehgebern an, findet man einige bei denen der Rastpunkt von beiden Ausgängen weit genug vom Schaltpunkt entfernt ist und einige, bei denen ein Ausgang sehr nahe am Rastpunkt ist. Bei meinem „Billigteil“ schalteten die Kontakte bei sehr langsamem Drehen wie im Datenblatt beschrieben. Beim normalen drehen oder schnellem Drehen sahen die Signale eher „gruselig“ aus. Bei der einen fallenden Flanke sieht man auf dem anderen Ausgang die Richtung.
Gruß
Carsten
Entweder der Hersteller achtet garnicht drauf wo der
Rastpunkt ist und es ist Zufall wenn er sich genau
auf eine Flanke befindet. Ich glaube nicht, daß
es absicht ist.
Meinst du, bei dem gezeigten Beispiel von dem EC12 schreibt Alps das aus Jux und Dollerei ins Datenblatt?
Was würde bei deinem 1/4 und 3/4 besser, außer dass auch für den B-Kanal am Rastpunkt der Pegel sicher definiert wäre? Wem würde das nützen? Bei einem rasten Geber macht es i.A. sowieso keinen Sinn, in der Signalauswertung höher als den Rastpunktabstand aufzulösen.
Zwei Bilder bei gleicher Geschwindigkeit - was soll das?
Warum zeigst du nicht ein Bild von "sehr langsamem Drehen", eins von "normalen drehen" und eins von "schnellem Drehen"?
Mit welcher Abtastrate hast du gemessen?
ich werde die letzte Schaltung von falk aufbauen und dann sehen, ob sie für mein Projekt zufriedenstellend funktioniert.
Ich danke allen, die Beitäge geleistet haben, für ihre Bemühungen und werde diesen Thread hiermit beenden und schließen.
Zwei Bilder bei gleicher Geschwindigkeit - was soll das?
Moin,
das sind ältere Bilder, die das tatsächliche Verhalten meines Drehgebers zeigen sollen. In Bild Image1 ist zu sehen, wie bei gleicher Drehrichtung die blaue 2. Flanke vor der roten Flanke fällt. Die 50ms werden oben im Bild angezeigt. Vielleicht hilft es ja jemanden bei der Fehlersuche.
Gruß
Carsten