Forum: Mikrocontroller und Digitale Elektronik Drehgeberauswertung mit Dezimalzähler funktioniert nicht


von Dietmar S. (Gast)


Angehängte Dateien:

Lesenswert?

Erst mal sorry für den chaotischen Schaltplan. Symbole für Gatter hätte 
ich mir in meinem Programm erst umständlich zeichnen müssen. Die LEDs 
sind nur zum Test angeschlossen.

Was ist an meiner Schaltung falsch? Eine einfache Schaltung mit 
Aufwärts-/Abwärts-Zähler. Das Licht der LEDs soll sich nach links oder 
rechts bewegen, wenn ich den Encoder drehe.

Allerdings produziert meine Schaltung ein flackerndes Lauflicht, ohne 
dass ich den Encoder bewege. Die Verdrahtung habe ich schon mehrfach 
kontrolliert. Masse ist auch überall dran, keine offenen Eingänge. Die 
Auswertung mit 74HC174 und 74HC86 funktioniert bzw. scheint es zumindest 
so, wenn ich mir die Ausgänge mit dem Oszilloskop anschaue.

Meine Schaltung ist im Grunde nur die Kombination aus den folgenden 
beiden Schaltungsbeispielen:
https://www.mikrocontroller.net/articles/Drehgeber#Dekoder_mit_diskreten_Logik-ICs
Beitrag "Re: Quadraturauslese nach Dannegger"

Anstelle des 74HC04 habe ich den 74HC14 genommen, weil ich auch die 
Drucktaste des Encoders entprellen will.

Nein, verstanden habe ich die Schaltung nicht vollständig. Das 
Grundprinzip schon, aber wenn es um die zeitliche Abfolge und 
ansteigende/abfallende Flanken geht, überblicke ich das nicht mehr ganz.

(Pin9 von IC5 ist fehlerhaft beschriftet: BCD = Dezimal)

von Dietmar S. (Gast)


Lesenswert?

Habe den Fehler gefunden. mit einem 4069 funktioniert die Schaltung 
einwandfrei (74HC04 hatte ich nicht da).

Aber warum funktioniert die Schaltung mit einem 74HC14 nicht?

von Dietmar S. (Gast)


Lesenswert?

Großartig, die sind entweder kaputt oder eine Fälschung. Hab noch einen 
in der Bastelkiste gefunden, der funktioniert.

Die hab ich bei Reichelt bestellt. Sahen schon gleich so komisch aus, da 
die Pins so auffällig gerade waren und mir auch extrem weich vorkamen.

Damit hat sich mein Anliegen erledigt!

von MaWin (Gast)


Lesenswert?

Dietmar S. schrieb:
> Nein, verstanden habe ich die Schaltung nicht vollständig

Sie entspricht

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29

vielleicht hilft das, du kannst C2&C3 weglassen.

aber obwohl:

Dietmar S. schrieb:
> Habe den Fehler gefunden

halte ich es nicht für richtig, dass CLOCK ENABLE (CE) in CARRY IN geht.

Ohne ins Datenblatt des 4029 geguckt zu haben, ist das doch eine andere 
Funktion.

von Dietmar S. (Gast)


Lesenswert?

MaWin schrieb:
> halte ich es nicht für richtig, dass CLOCK ENABLE (CE) in CARRY IN geht.
>
> Ohne ins Datenblatt des 4029 geguckt zu haben, ist das doch eine andere
> Funktion.

Es haben sich bei diesem Symbol leider zwei grobe Fehler eingeschlichen. 
Pin 5 sollte mit CI/CE beschriftet sein, so wie Pin 9 mit Bin/Dec. So 
sagt es zumindest mein CMOS-Datenbuch.

von Das Übliche (Gast)


Lesenswert?

Dietmar S. schrieb:
> Was ist an meiner Schaltung falsch? Eine einfache Schaltung mit
> Aufwärts-/Abwärts-Zähler.

Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut,
nachmacht oder verfälscht, insbesondere bei existierenden
Schaltungen die Abblock-Kondensatoren weglässt oder falsch
verschaltet oder selbst solche Schaltungen entwirft, in Verkehr
bringt und/oder aufbaut ohne Abblock-Kondensatoren nach Hersteller-
Empfehlungen zu verwenden, wird mit Zugangs-Ausschluss vom
Mikrokontroller-Forum nicht unter zwei Jahren bestraft.

von Joachim B. (jar)


Lesenswert?

Das Übliche schrieb:
> Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut

wo ist hier der "Mikrokontroller"?

von Dietmar S. (Gast)


Lesenswert?

Das Übliche schrieb:
> Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut,
> nachmacht oder verfälscht...

Und...?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Das Übliche schrieb:
> Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut,

usw. usf. Wenn du mal hinschaust, sind im Plan an jedem IC Abblock-C 
verbaut. Sauberer gehts eigentlich nicht mehr. Da steht 100n dran, falls 
du gerade die Brille nicht auf hast...

: Bearbeitet durch User
von Dietmar S. (Gast)


Lesenswert?

Meine Schaltung hat dennoch ein Problem. Der Zähler zählt bei jeder 
Rastung des Drehgebers zwei Schritte. Die sind schon an IC1 Pin 15 zu 
messen. Pro Rastung wird der Pin 2 x High.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dietmar S. schrieb:
> Der Zähler zählt bei jeder Rastung des Drehgebers zwei Schritte.
Und wieviel Schritte macht der Drehgeber pro Rastung tatsächlich?

von MaWin (Gast)


Lesenswert?

Die Rastung muss nicht mit der elektrischen Position übereinstimmen.

Viele Drehgeber machen pro Rastung 2 Impulse.

Das erlaubt es, Drehrichtungsänderungen von Prellen zu unterscheiden.

Will man pro Rastung nur +/-1 zählen, muss man durch 2 teilen.

Steht auch hier drin, allerdings nur als Programmcode:

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29

von Dietmar S. (Gast)


Lesenswert?

Lothar M. schrieb:
> Dietmar S. schrieb:
>> Der Zähler zählt bei jeder Rastung des Drehgebers zwei Schritte.
> Und wieviel Schritte macht der Drehgeber pro Rastung tatsächlich?

Bei jeder zweiten bzw. genauer ausgedrückt bei jeder Rastung abwechselnd 
High und Low.

Ich habe verschiedene Drehgeber da, die verhalten sich aber alle gleich.

von Axel S. (a-za-z0-9)


Lesenswert?

Dietmar S. schrieb:
> Lothar M. schrieb:
>> Dietmar S. schrieb:
>>> Der Zähler zählt bei jeder Rastung des Drehgebers zwei Schritte.
>> Und wieviel Schritte macht der Drehgeber pro Rastung tatsächlich?
>
> Bei jeder zweiten bzw. genauer ausgedrückt bei jeder Rastung abwechselnd
> High und Low.

Bahnhof. Schau dir das Diagramm im Artikel Drehgeber an. So ein 
Drehgeber hat 4 Zustände, die zyklisch durchlaufen werden. Eine Rastung 
kann nun auf jedem der 4 Zustände (selten), auf jedem 2. Zustand 
(normal) oder gar nur auf jedem 4. Zustand (auch selten) liegen. Man 
spricht dann von Viertelschritt-, Halbschritt- oder 
Vollschritt-Auswertung.

Im Idealfall liegt die Rastung mittig zwischen zwei Zustandswechseln. 
Praktisch ist sie meist in eine Richtung verschoben oder liegt gar recht 
genau auf einem Zustandswechsel (bei Alps oft zu sehen). Dann muß man 
für eine stabile Auswertung immer bei den Zustandswechseln dazwischen 
weiterzählen. Der o.g. Artikel hat dazu ein Beispiel in Software.

von Dietmar S. (Gast)


Lesenswert?

Sorry, ich hab noch kein neues Speicheroszilloskop, das alte hab ich 
kürzlich verkauft. Darum kann ich die Zustände nicht exakt darstellen.

Nehm ich den Durchgangsprüfer und messe zwischen A und Mittelpin und 
drehe, piept es bei einer Rastung und bei der nächsten nicht, usw. 
Folglich ebenso etwas versetzt bei B.

Dazu kommt noch, dass dies nicht exakt mit den Rastungen übereinstimmt, 
wodurch es an einer Stelle 2x piept (nicht in meinem Kopf). Dadurch 
hatte ich bei einer anderen Schaltung (ich dachte mal ich müsste das Rad 
neu erfinden und selbst eine entwerfen) immer einen Aussetzer bei jeder 
Umdrehung.

Zwei Encoder sind von Alps, einer von Panasonic

Nehmen wir mal den Panasonic (32 Rastungen und 16 Pulse pro Umdrehung), 
denn dazu konnte ich ein Datenblatt finden. Der verhält sich nämlich 
genauso wie der von mir eingesetzte Alps.

https://html.alldatasheet.com/html-pdf/550497/PANASONIC/EVE-QDBRL416B/492/1/EVE-QDBRL416B.html


Edit:

Axel S. schrieb:
> Eine Rastung
> kann nun auf jedem der 4 Zustände (selten), auf jedem 2. Zustand
> (normal) oder gar nur auf jedem 4. Zustand (auch selten) liegen. Man
> spricht dann von Viertelschritt-, Halbschritt- oder
> Vollschritt-Auswertung.

O.K., so weit verstanden. Ein Auswertung per Hardware ist also nicht so 
einfach. Was mache ich dann, wenn der Zustandswechsel nicht exakt auf 
der Rastung liegt? Ich baue jetzt einfach mal einen Teiler ein und 
schaue was passiert.

von Dietmar S. (Gast)


Lesenswert?

Herrlich, das wird ein CMOS-Grab wie in den "guten" 1970ern :D

Mit zwei weiteren IC (4017 + 4081) funktioniert es also nun. Nur teilen 
genügt ja nicht, es muss jeder zweite Impuls unterdrückt werden.

Bin schon froh, dass ich die Schaltung überhaupt hinbekommen habe. Der 
Encoder funktioniert jetzt flüssig, hakt nicht und überspringt auch 
keinen Impuls.

Danke für die Hilfe!

von Dietmar S. (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch der ergänzte und berichtigte Schaltplan, falls jemand auf die 
wahnwitzige Idee kommen sollte, meinen Mist nachzubauen. Er enthält 
möglicherweise noch Fehler, ich war schon müde...

von m.n. (Gast)


Lesenswert?

4081 und 40106 kann man sich sparen, wenn man den 4093 besser ausnutzt 
;-)

von Dietmar S. (Gast)


Lesenswert?

m.n. schrieb:
> 4081 und 40106 kann man sich sparen, wenn man den 4093 besser ausnutzt
> ;-)

Nett gemeint, aber die Schaltung ist nur ein Auszug. Die komplette 
Schaltung ist komplexer und IC3, 4 und 8 sind voll belegt. Am Ende kommt 
dann (hoffentlich) ein Kennlinienschreiber dabei heraus.

Axel S. schrieb:
> Eine Rastung
> kann nun auf jedem der 4 Zustände (selten), auf jedem 2. Zustand
> (normal) oder gar nur auf jedem 4. Zustand (auch selten) liegen. Man
> spricht dann von Viertelschritt-, Halbschritt- oder
> Vollschritt-Auswertung.

In meinem Fall dann Halbschritt. Darum war mich nicht klar, warum mir 
die Schaltung aus IC 1+2 zwei Impulse pro Rastung ausgibt. Aber jetzt 
habe ich die Funktionsweise doch noch verstanden. Wäre toll, wenn das in 
dem Drehgeber-Artikel ausführlicher erklärt würde. Bin aber natürlich 
sehr dankbar, dass sich jemand die Zeit genommen hat, diesen Artikel zu 
verfassen.

Edit: O.K., am Ende ist es erwähnt, wie ich gerade sehe. Aber kapiert 
hätte ich das nicht, ist für mich viel zu theoretisch formuliert.

von m.n. (Gast)


Lesenswert?

Dietmar S. schrieb:
> Die komplette
> Schaltung ist komplexer und IC3, 4 und 8 sind voll belegt. Am Ende kommt
> dann (hoffentlich) ein Kennlinienschreiber dabei heraus.

Das wäre doch ein Grund, sich mit µCs zu befassen. Meinetwegen auch mit 
einem Arduino.

von Dietmar S. (Gast)


Lesenswert?

m.n. schrieb:
> Das wäre doch ein Grund, sich mit µCs zu befassen. Meinetwegen auch mit
> einem Arduino.

Das stimmt wohl, aber ab einem gewissen Alter wird die Zeit knapper und 
andere Dinge wichtiger. Die paar Logik-IC hatte ich dann doch schneller 
zusammengenagelt, wenn ich bedenke wie lange ich mich erst in die neue 
Materie einarbeiten müsste.

Ich habe vor längerer Zeit hier im Forum mal viele gute Tipps zur 
Einarbeitung in die uC-Programmierung bekommen und wollte mich damals 
ernsthaft mit befassen. Nur wie es im Leben so ist, kamen andere Dinge 
dazwischen. Vielleicht befasse ich mich irgendwann doch noch damit.

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.