Drehencoder diskret

Gast #608620
Lesenswert?

...das problem der meisten schaltungen ist ja der 
drehrichtungswechsel...

oftmals wird dann noch ein schritt in die falsche richtung gezählt....

ich habe damals einen extremen gatterverhau benötigt um das problem zu 
lösen, die gepostete seite ist schon nicht schlecht, die komplexere 
schaltung weiter unten geht schon in die richtung, in der es damals bei 
mir auch ausgeartet war, die frage ist nur ob sie funktioniert...

ich habe damals 4 flankengesteuerte j/k ff mit asynchronen r/s eingängen 
genutzt und sie alle in bezug auf ihre r/s eingänge in einem ring 
zusammengeschlatet....

ich habe dann insgesamt auf 4 flanken, und zustände reagiert um das 
up/down signal im richtigen moment zu beeinflussen... drum herum habe 
ich fast ausschließlich 4093 verwendet... das problem war eben, das 4 
unterschiedliche flanken, unterschiedliche signalzustände des jeweils 
anderen pins des drehencoders annehmen mussten, und alle hatten einfluss 
auf einen pin, den u/d pin des counters...

ich dachte, das es evtl auch einen besseren, einfacheren weg gibt...

m.
#957718
Lesenswert?

@ Benedikt Lippert (Gast)

>Wenn ja, wie kommt sie mit prellenden Kontakten zurecht

Problemlos.

> und was ist das Clock enable Signal?

Da gibt einen nachfolgenden Zähler frei.

>Ist es möglich diese Schaltung mit TTl(74HCT...) IC´s funktionsfähig
>auzubauen

Ja.

> oder wäre es besser einen Gal oder µC zu bemühen.

Bei niedrigen Drehzahlen ist ein uC besser.

Siehe Drehgeber

Mfg
Falk
#957762
Lesenswert?

So habe ich's auch vor ...

Drehencoder + Attiny ... dann hat mans schön diskret und vor allem 
beschafftbar. Die meiste quadrature decoder sind imho für höhere 
Auflösungen gedacht und haben rehct unpraktische oder unnütz große 
packages. Zudem bekommt man eigentlich kaum einen brauchbaren Chip wo 
gekauft.
#1808266
Lesenswert?

Hallo und sorry für das ausgraben dieses alten Threads...

Ich habe gerade die diskrete Schaltung aus dem Drehencoder Wikieintrag 
aufgebaut: 
http://www.mikrocontroller.net/articles/Drehgeber#Dekoder_mit_diskreten_Logik-ICs

Kann mal jemand bitte kurz beschreiben, wie die Signale ausgewertet 
werden müssen? Leider fehlt dieser Teil im Wiki ;-)

Ich bekomme pro Encoder Rastung 4 Flankenwechsel auf der DIR Leitung und 
4 oder manchmal mehr Pulse auf der Enable Leitung.

Was ich erkennen kann:
Bei High auf Enable ist DIR High bei rechtsdrehend, Low bei 
linksdrehend.
(Bilder 1 und 2)
Wenn der Encoder aber prellt (langsames drehen) gibt es einen 
Flankenwechsel auf DIR (Bild 3)
In diesem Bild ist nur das prellen dargestellt, also die beiden ersten 
Flanken, es kommen danach noch 2 weitere. So habe ich beim prellen also 
mehr als 4 Enable Pulse...

Wann soll denn wie ausgewertet werden? Bei Flankenwechsel?

Vielen Dank für Eure Tipps.

Grüße,
Klaus
Angehängte Dateien:
#1808329
Lesenswert?

@  Klaus Leidinger (klausleidinger)

>Wann soll denn wie ausgewertet werden? Bei Flankenwechsel?

Dann braucht man ja keinen Decoder. Man hängt dort einen synchronen 
Vorwärts/Rückwärts Zähler mit DIR und Clock enable dran. Der Takt geht 
auf den Decoder und den Zähler.

MFG
Falk
#1808371
Lesenswert?

Hallo Falk,

aha, dann zählt der Zähler die Impulse während ENA aktiv ist, beim 
prellen also einen vor und wieder einen zurück? Pro Rastung kommen dann 
doch aber 4 Impulse zu stande, oder?

Oh sh*t das ist mit einen Controller ja blöd auszuwerten. Gibt es eine 
Schaltung die besser für Microcontroller geeignet ist, also die das 
prellen verschluckt und nur die Anzahl "gültiger" Pulse mit Richtung 
rausgibt?

Vielen Dank,
Klaus
#1808559
Lesenswert?

@  Klaus Leidinger (klausleidinger)

>aha, dann zählt der Zähler die Impulse während ENA aktiv ist, beim
>prellen also einen vor und wieder einen zurück? Pro Rastung kommen dann
>doch aber 4 Impulse zu stande, oder?

Ja.

>Oh sh*t das ist mit einen Controller ja blöd auszuwerten.

Dafür ist die Schaltung auch nicht gedacht.

> Gibt es eine
>Schaltung die besser für Microcontroller geeignet ist, also die das
>prellen verschluckt und nur die Anzahl "gültiger" Pulse mit Richtung
>rausgibt?

Die sind alle gültig. Und für einen manuellen Drehgeber braucht man sie 
nicht, das kann ein uC problemlos direkt auswerten.

MFG
Falk
#1808742
Lesenswert?

Hallo Falk,

danke nochmal für die Infos, jetzt ist es klarer.

Falk Brunner schrieb:
> Die sind alle gültig. Und für einen manuellen Drehgeber braucht man sie
> nicht, das kann ein uC problemlos direkt auswerten.

Na ja, da würde ich mal sagen "kommt drauf an" wie schnell z.B. der 
Motor dreht und was noch so alles vom Controller gemacht werden soll. 
(und wie viele Timer noch übrig sind). Auch bei von Hand bedienten 
Encodern werden bei schneller Drehung nicht immer alle Impulse erfasst.

Ich probiere gerade die Schaltung im Anhang, scheint zumindest für 
meinen Motor mit Hallgebern ordentlich zu funktionieren. Ich muß aber 
noch die Wiederholgenauigkeit überprüfen.

Grüße,
Klaus
Angehängte Dateien:
#1808758
Lesenswert?

@Klaus Leidinger (klausleidinger)

>Na ja, da würde ich mal sagen "kommt drauf an" wie schnell z.B. der
>Motor dreht und was noch so alles vom Controller gemacht werden soll.

Was ist es denn für ein Drehgeber? Wieviel Pulse/Umdrehung? Drehzahl?

Siehe Netiquette.

>(und wie viele Timer noch übrig sind).

Da braucht man keinen extra, das kann man in einen vorhandenen meist 
problemlos einarbeiten.

> Auch bei von Hand bedienten
>Encodern werden bei schneller Drehung nicht immer alle Impulse erfasst.

Nö, man muss nur halbwegs schnell abtasten, 1 kHz geht meistens in 
Ordnung.

>Ich probiere gerade die Schaltung im Anhang, scheint zumindest für
>meinen Motor mit Hallgebern ordentlich zu funktionieren.

Nein, das tut sie nicht. Warum das so ist, steht im Artikel 
Drehgeber.

MfG
Falk
#1809000
Lesenswert?

Hallo Falk,

>>Na ja, da würde ich mal sagen "kommt drauf an" wie schnell z.B. der
>>Motor dreht und was noch so alles vom Controller gemacht werden soll.
>
> Was ist es denn für ein Drehgeber? Wieviel Pulse/Umdrehung? Drehzahl?

OK, das war eher generisch gemeint, aktuell hat der Motor der bei mir 
liegt 800 U/Min und einen Geber mit 18°, also 20 Stellungen auf der 
Motorwelle.

Wenn ich das richtig rechne sind das ~500Hz?

Brauche ich da nicht schon 2 KHz?

Es gibt den Motor aber auch mit 10° und 1500 U/min und sogar mit 1°, 
wobei das für die geplante Anwendung übertrieben ist.

Mit einer ordentlichen Hardwarelösung wäre das Thema halt erledigt 
gewesen. Bei den geplanten Stückzahlen wären ein paar Cent nicht ins 
Gewicht gefallen.

>>Ich probiere gerade die Schaltung im Anhang, scheint zumindest für
>>meinen Motor mit Hallgebern ordentlich zu funktionieren.
>
> Nein, das tut sie nicht. Warum das so ist, steht im Artikel
> Drehgeber.

Da hast Du natürlich Recht! Das ist ja die Sache mit dem schwingen. Das 
Risiko ist mir dann doch zu groß.

Wenn es also keine vernünftige diskrete Lösung gibt, dann lieber doch in 
Software...

Grüße,
Klaus
#1809014
Lesenswert?

@  Klaus Leidinger (klausleidinger)

>liegt 800 U/Min und einen Geber mit 18°, also 20 Stellungen auf der
>Motorwelle.

>Wenn ich das richtig rechne sind das ~500Hz?

ich komme auf 266 Pulse/s.

>Brauche ich da nicht schon 2 KHz?

Ja und? Ein 2 kHz Timer-Interrupt ist für einen heutigen uC ein 
Klacks.

>Es gibt den Motor aber auch mit 10° und 1500 U/min und sogar mit 1°,
>wobei das für die geplante Anwendung übertrieben ist.

Dann lass es bei 10°. Macht gerade mal 900 Pulse/s. Wenn man die mit 
sagen wir 5 kHz abtastet ist das kein Thema.

>Mit einer ordentlichen Hardwarelösung wäre das Thema halt erledigt
>gewesen. Bei den geplanten Stückzahlen wären ein paar Cent nicht ins
>Gewicht gefallen.

Dann nimm einen AVR und alles wird gut.

MfG
Falk

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