mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Inkrementalgeber Drehrichtung erkennen


Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
ich hab nen Intekementalgeber welchen ich Nutzen möchte um eine Welle 
abzufragen. Es kommen zwei Rechtecksignale raus, welche um 90 Grad 
verstetzt sind. Damit kann man mit einer entsprechenden Logik
( ich rede von TTL oder so, nicht µC) die Drehrichtung erkennen.
Ich habe in einem älteren Forum die Info gefunden, das das mit einem
" LS7184 " gut gehen muss, Sieht lt. Datasheet auch so aus. Nur leider
habe ich den IC nirgendwo gefunden. Von Reichelt bis Farnell, überall 
Fehlanzeige. Kann mir einer nen Tipp geben wo ich das ding her bekomme?
Mit einen 7474 D-Flipflop soll das wohl auch gehen, nur da habe ich 
nicht kapiert wie das gehen soll :-(

Grüße Micha

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab ein ähnliches Problem, schließe mich deinem Beitrag gleich an.

Ich hab so ein Ding aus einer alten Maus ausgebaut (Mausrad)

Jetzt weiß ich nicht, wie ich die Drehrichtung erkennen kann.

3 Anschlüsse:

1 Masse
2 Wechseln zw. Hochohming und 0 Ohm, haben aber beide den selben 
Zustand. Kann das sein? So kann man ja die Drehrichtung nicht erkennen?!

mfg
J.K

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Holli,
der Beitrag ist im Grunde meine Frage in etwas ausführlicher Form.
Für mich stellt sich immer noch die Frage, was ich mache.
Optimal wäre LS7084 oder LS7184.
Nur wo bekomme ich den ran. Als Sample wird bei so nem alten Ding nicht 
einfach werden ?

Grüße Micha

Autor: Falk Brunner (falk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@ Micha (Gast)

>der Beitrag ist im Grunde meine Frage in etwas ausführlicher Form.

Nö, bau es doch einfach diskret auf. Vier FlipFlops gibt es in diversen 
ICs, dazu ein 4fach XOR und einen Zähler. Macht drei TTL-ICs von der 
Stange.

MFG
Falk

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Falk,
die Schaltung ist ja nicht schlecht. Aber ein IC wäre mir schon lieber.
Hmm, muss mal gucken, ob sich da was über eBay machen lässt.
Grüße Micha

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Micha:

> Mit einen 7474 D-Flipflop soll das wohl auch gehen, nur da habe ich
> nicht kapiert wie das gehen soll :-(

Willst du wirklich nur die Drehrichtung bestimmen und nicht auch den
Drehwinkel messen?

Wenn ja: Theoretisch genügt es, eines der beiden Signale an den Takt-
und das andere an den D-Eingang des Flipflops anzuschließen. Am Ausgang
erscheint dann die Drehrichtung.

Das funktioniert aber nur, wenn die Eingangssignale sauber sind und an
den Flanken nicht hin- und herzappeln.

Bei einem optischen Geber genügt es wahrscheinlich, die beiden Signale
jeweils durch einen Schmitt-Trigger zu schicken. Wenn mit starken
Störungen auf den Leitungen zu rechnen ist, kann man noch einen dezenten
Tiefpass davor schalten.

Geber mit Schaltkontakten müssen entprellt werden, bspw. mittels
RC-Tiefpass und Schmitt-Trigger. Die Zeitkonstante des Tiefpasses sollte
einerseits möglichst groß gewählt werden, um das Prellen wirkungsvoll zu
unterdrücken, andererseits aber klein genug, dass bei der höchsten
vorkommenden Signalfrequenz die Ausgangsamplitude noch ausreicht, um den
Schmitt-Trigger in beide Richtungen umzuschalten.

@J. K.:

> 2 Wechseln zw. Hochohming und 0 Ohm, haben aber beide den selben
> Zustand. Kann das sein?

Normalerweise nicht. Entweder du hast falsch gemessen, die Einzelteile
nach dem Zerlegen schief zusammengesetzt, oder das Ding ist defekt.
Richtig wären zwei um 90° phasenversetzte Signale. Dann klappt's auch
mit der Drehrichtungserkennung ;-)

@Falk:

Deine Schaltung sieht interessant aus! Ich habe allerdings noch nicht
ganz verstanden, welcher Typ von Zähler wie an die beiden Ausgänge wie
angeschlossen werden muss, zumal alle Flanken von FWD mit Flanken von CE
zusammenfallen. Man weiß also nie genau, welches der beiden Ausgangs-
signale zuerst umschaltet. Oder nutzt du die Verzögerungszeiten der
Xor-Gatter und gehst davon aus, dass CE immer eine Gatterlaufzeit nach
FWD umschaltet?

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Yalu,
ich will die Drehrichtung ermitteln und dann auf einen Zähler geben.
Mir ist aber wichtig, das da kein Impuls unter den Tisch fällt und das 
das Ding möglichst genau up/down zählt.
Der Drehgeber hat 360 Striche. Die will ich dann noch über eine 
Zahnriemenübersetzung vervielfachen.
Frage: Wenn das mit einem Flipflop so geschmeidig zu machen gehen soll, 
wozu nageln dann ( oder haben früher mal genagelt ) so viele TTLs auf 
das Kuchenblech ? Ich glaube, wenn nicht µC, dann LS7084  ?
Oder denke ich da falsch ??
Grüße Micha

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Frage: Wenn das mit einem Flipflop so geschmeidig zu machen gehen
> soll, wozu nageln dann ( oder haben früher mal genagelt ) so viele
> TTLs auf das Kuchenblech ?

Die D-Flipflop-Schaltung alleine macht nur die Drehrichtungserkennung,
sonst nichts. Deswegen habe ich im letzten Post nachgefragt.

Willst du die Impulse zählen, braucht es mindestens noch einen Zähler
und ein paar Gatter, um auch wirklich die richtigen Signale zeitlich
aufeinander abgestimmt an die Zählereingänge zu liefern. Dann bist du
aber schon bei drei ICs wie bei Falks Vorschlag.

Falks Schaltung hat zudem den Vorteil, dass nicht direkt auf die Flanken
der Eingangssignale reagiert wird, sondern die Signale im festen
Zeitraster abgetastet werden. Bei Flankentriggerung kann es passieren,
dass bei ultrakurzen Zeitabständen zwischen zwei aufeinanderfolgenden
Flanken eine von beiden auf Grund der endlichen Geschwindigkeit der
Schaltung verschluckt wird, was dazu führt, dass ein Inkrement zuviel
oder zu wenig gezählt wird. Mit der periodischen Abtastung (die
natürlich schnell genug sein muss, Abtastrate >= 4*maximale
Signalfrequenz) wird ein Flankenpaar (steigende und fallende Flanke)
entweder komplett erfasst oder komplett verschluckt. Den Fall, dass nur
die steigende Flanke erkannt wird, nicht aber die fallende, gibt es
nicht. So kann es zwar passieren, dass auf Grund einer Störung der
Zählerstand um 1 vom richtigen Wert abweicht, dieser Fehler wird jedoch
bei der nächsten Abtastung wieder korrigiert. Auf Grund dieser
Robustheit gegenüber Störungen kann in den meisten Fällen auch auf
eingangsseitige Filter verzichtet werden.

Kurzum: Das Abtastverfahren ist das einzige, das wirklich zuverlässig
funktioniert, deswegen wird von Leuten, die sich auskennen, nichts
anderes gemacht, egal ob die Auswertung in Software oder in Hardware
(bspw. dem LS7[01]8[34]) stattfindet. Als angenehmen Nebeneffekt bekommt
man die maximal mögliche Auflösung geliefert, da von beiden Signalen
sowohl die steigenden als auch die fallenden Flanken ausgewertet werden.
360 Striche ergeben damit 360*4=1440 Inkremente je Umdrehung. Leider
braucht das Abtastverfahren noch ein Taktsignal, was ein weiteres
Bauteil verschlingt, falls man nicht an anderer Stelle in der Schaltung
eines abzweigen kann.

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Yalu,
danke für die Super-Erklärung :-) Echt Spitze !
Ich habe so ca. 1 U/sec. Also 360 Hz x 4 macht 1440.
Ok noch bischen Sicherheit, macht einen Takt von 2Khz.
Brauche ich da schon, die von Dir angesprochenen Filter ??

Grüße Micha

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal ne Frage zum Takt.
Kann ich da irgend einen 0815 Takt nehmen ?
7400+RC unf fertig oder muss ich da was beachten ?

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Etliche µC (z.B. DSP56F-Serie) haben eine DrehEncoder-Schnittstelle 
schon eingebaut.
Du schließt die beiden Signale an und kannst den Zähler direkt als 
Register auslesen.
Wenn Du absolut sicher gehen willst, dass kein Impuls verloren gehen 
kann, empfiehlt sich ein weiteres Signal, nämlich Index, das nur einmal 
pro Umdrehung kommt.
Oder eine Scheibe mit Gray-Code.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Micha (Gast)

>die Schaltung ist ja nicht schlecht. Aber ein IC wäre mir schon lieber.

Dann brenn die Logik in einen GAL oder AVR.

@ yalu (Gast)

>Deine Schaltung sieht interessant aus! Ich habe allerdings noch nicht
>ganz verstanden, welcher Typ von Zähler wie an die beiden Ausgänge wie
>angeschlossen werden muss,

Ein normaler synchroner Zähler mit UP/Down und Clock Enable Eingang. 
Z.B. ein 4029.

> zumal alle Flanken von FWD mit Flanken von CE
>zusammenfallen. Man weiß also nie genau, welches der beiden Ausgangs-
>signale zuerst umschaltet.

Das spielt keine Rolle, sind synchrone Steuereingänge.

> Oder nutzt du die Verzögerungszeiten der
>Xor-Gatter und gehst davon aus, dass CE immer eine Gatterlaufzeit nach
>FWD umschaltet?

Nöö, beide Signale sind synchron zum Takt.

MFG
Falk

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Micha (Gast)

>Kann ich da irgend einen 0815 Takt nehmen ?

Ja, ein RC-Oszillator reicht.

>7400+RC unf fertig oder muss ich da was beachten ?

Nimm einen AVR, tiny13 oder so. Kleiner und kompakter gehts nicht. Und 
die Abtastrate ist kein Problem, der macht 10 kHz problemlos. Wenn du 
einen tiny2313 nimmst, hast du sogar schon einen Zählerausgang!

MFG
Falk

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei solchen Anwendungen lohnt sich bereits der Einstieg in die Welt der 
Mikrocontroller, denn in Zukunft wird die Anzahl erhältlicher 
Logikbausteine nicht grösser werden. Über kurz oder lang wirst Du an 
Mikcrocontrollern also nicht vorbei kommen.
Ich weiss, aller Anfang ist schwer, aber Du wirst begeistert sein, was 
Du mit so einem Ding dann alles realisieren kannst und wie einfach eine 
Schaltung - auch für komplexere Aufgaben - schlussendlich aussieht. 
Betrachte es als eine Investition in die Zukunft.

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke yalu

dann werd ich noch mal messen...

Autor: Bold (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,habe vor durch ein inkrementalgeber und über eine 7Segmentanzeige 
eine genaue Winkelanzeige an einer Abkantbank anzeigen zulassen.Nun ich 
hab nicht viel Ahnung von Steuerungstechnik.Kann mir jemand bei 
Bauteilverwendung und verdrahtung weiterhelfen???

Autor: Josef Huber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da hat wol jemand eine Schaltung von Heidenhain (r) kopiert, sehr 
interessant. Das mit den Schieberegistern und den Gattern funktioniert 
so: A und B-Signale werden durch Schieberegister geschoben (darum Takt, 
höher als max. Impulsfrequenz). Zwischen Eingang und Ausgang des SR, 
misst ein EX-OR, ungleich. immer wenn sich was bewegt, kommen dann 
Impulse mit Taktfrequenz am Ausgang und zwar 4-fach-Flankenauswertung. 
Am Richtungsausgang sind ebenfalls Impulse. Bei z.B. vorwärts zum 
Zeitpunkt des Zählimpulses Hi-Pegel. Und nur nebenbei, die Signalpegel 
von Spur A und Spur B sind, 00/10/11/01 und das bei jedem Impuls.

Aber das ganze nur oberflächlig erwänt.

Dien Problem liegt warscheinlich darin, daß ein Winkelzähler 358..359..0 
und 0..359 zählt. Denn nullen musst du den Zählerstand irgendwann. 
Richtig gekaufte Anzeigegeräte für TTL-Rechteck-Geber haben als erstes 
folgendes:
Über die Sensorleitungen wird die Spannung am Geber auf 5 Volt 
eingestellt. Die Signalspuren Ua1/Ua1-/Ua2...... werden mit einem 
Leitungsempfänger Baustein differenziell zu TTL, gewandelt. Ebenfalls 
das Verschmutzungssignal Uas- (soweit der Geber solches hat). Eine 
Auswertung für Leitungsbruch, erfolgt mit ungleich der Spuren zu 
Spuren-. Dann hat man die Information, ob Signal überhaupt gültig ist. 
So, jetzt wird gezählt. Wenn der Winkelbereich nicht endlos ist, geht's 
ja software mäßig leicht.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Drehgeber

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.