Ich habe früher, in meiner Ausbildung, immer gerne mit Logikbausteine gebastelt. (R/S- J/k FlipFlops….) Aber für das, was mir gerade durch den Kopf geht, habe ich noch keinen Logikbaustein gefunden.
Ich wollte hier im Forum fragen ob eventuell jemand von euch hier schon einmal eine ähnliche Schaltung bzw. Logikbaustein gesehen habt.
Ich suche nach einer Möglichkeit, mit einem Clock-Signal 4 Ausgänge zu schalten. Ich habe mal eine primitive Schaltung aufgezeichnet. (Sorry für meine schlimme Schrift aber mein Zeigefinger ist gerade verstaucht)
Ich suche kein Schieberegister, denn so halbiert sich lediglich die Frequenz der Ausgänge. Das meine ich nicht. Ich möchte einfach nacheinander 4 Ausgänge ein/aus schalten.
Und ja, das Ganze könnte ich auch mit einem guten, alten AVR Tiny programmieren, aber das möchte ich nicht.
Kennt von euch hier jemand im Forum solch einen Digital-Chip?
Wenn es ein Baustein sein soll und die Zählweise immer so ist, dann ein 4017 (der "Johnsonzähler"). Man muss dann den Ausgang 4 auf der Reset legen, damit er nicht komplett durchzählt, sondern bei 4 looped. Damit hat man früher Lauflichter und Ampeln gebaut. Ampel zählt halt alle Phasen und die Ausgänge gehen inklusive auf die LEDs.
Ja, aber die vier verwendeten Ausgänge des CD4017 müssen jetzt noch mit dem Clock-Eingang des selbigen mit einem CD4081 UND-verknüpft werden, damit die Schaltung dem oben gezeigten Flussdiagramm entspricht.
Ja, aber die vier verwendeten Ausgänge des CD4017 müssen jetzt noch mit
dem Clock-Eingang des selbigen mit einem CD4081 UND-verknüpft werden,
damit die Schaltung dem oben gezeigten Flussdiagramm entspricht.
Nö. Man klemmt den 5 Ausgang ans asynchrone Reset und gut.
Man klemmt den 5 Ausgang ans asynchrone Reset und gut.
Das sowieso. Aber schau dir das Diagramm nochmal ganz genau an. Die Ausgänge sollen immer nur dann High sein, wenn am Clock-Eingang auch ein High ansteht. Zwischendurch gibt's auch immer ein Low!
Ich wusste das ich mich auf dieses Forum verlassen kann.
Man, auf ein Lauflicht bin ich gar nicht gekommen. Stimmt, das ist die gleiche Anwendung.
Nach dem ersten Blick ins Datasheet macht der 4017 genau das, was ich gesucht habe. Meine Anforderung wäre auch gewesen, ggf. die Ausgänge auf 5,6 oder sogar 7 zu erhöhen.
Danke auch gleich für die Idee mit dem Reset- Anschluss um die "Zählung" zu begrenzen. Echt Perfekt!
Ihr seit echt spitze. Vielen Dank für eure super, schnelle Lösung.
Man klemmt den 5 Ausgang ans asynchrone Reset und gut.
Das sowieso. Aber schau dir das Diagramm nochmal ganz genau an. Die
Ausgänge sollen immer nur dann High sein, wenn am Clock-Eingang auch ein
High ansteht. Zwischendurch gibt's auch immer ein Low!
Ich vermute der TO hat nur versucht es bildlich darzustellen, ohne das Timing genau so zu meinen wie auf der Skizze. Er wird m.A.n. schon die Funktion des 4017 meinen.
Ich suche nach einer Möglichkeit, mit einem Clock-Signal 4 Ausgänge zu
schalten. Ich habe mal eine primitive Schaltung aufgezeichnet.
Ich möchte einfach nacheinander 4 Ausgänge ein/aus schalten.
Nach dem ersten Blick ins Datasheet macht der 4017 genau das, was ich
gesucht habe. Meine Anforderung wäre auch gewesen, ggf. die Ausgänge auf
5,6 oder sogar 7 zu erhöhen.
Woher kommt das Clocksignal? Wenn es von einem Taster kommt musst Du an die Entprellung denken. Wobei der Clockeingang beim 4017 Schmitt-Trigger-Charakteristik hat, das macht es etwas einfacher.
Also das Clock Signal soll von einem µC kommen.
Ich habe eine Tastartur- Matrix mit 5x5 Zeilen/Spalten.
Ich hatte die Idee, die Zeilen mit lediglich einem einzigen Pin (clock) anzusteuern. So könnte ich mir ein paar Pins einsparen. Im Moment habe ich 5 Aus- bzw. Eingänge vom µC verwendet.
Mal sehen ob ich mir die Eingänge (Spalten) ggf. auch noch irgendwie einsparen kann (parallel to binary?).
Nö. Man klemmt den 5 Ausgang ans asynchrone Reset und gut.
Dann glitched es aber (siehe Nachbarthread) :-) :-)
Wie meinen? Ja, der 5. Ausgang erzeugt einen kurzen Puls, in Fachkreisen Glitch genannt. Da der aber sonst nicht weiter verwendet wird, ist das unkritisch.
Also das Clock Signal soll von einem µC kommen.
Ich habe eine Tastartur- Matrix mit 5x5 Zeilen/Spalten.
Ich hatte die Idee, die Zeilen mit lediglich einem einzigen Pin (clock)
anzusteuern. So könnte ich mir ein paar Pins einsparen. Im Moment habe
ich 5 Aus- bzw. Eingänge vom µC verwendet.
Mal sehen ob ich mir die Eingänge (Spalten) ggf. auch noch irgendwie
einsparen kann (parallel to binary?).
Mal sehen... :)
Das wird nicht zuverlässig funktionieren, da der Controller nicht weiss, wo der Zähler des 4017 steht. Auch wenn du vom Controller regelmässig einen Reset des 4017 machst, ist immer noch nicht zu 100% gewährleistet, dass beide immer synchron sind.
Das wird nicht zuverlässig funktionieren, da der Controller nicht weiss,
wo der Zähler des 4017 steht. Auch wenn du vom Controller regelmässig
einen Reset des 4017 machst, ist immer noch nicht zu 100% gewährleistet,
dass beide immer synchron sind.
Such mal nach Tastatur Matrix.
Hi Christian H.,
hmmm, da muss ich Dir aber Recht geben. Das könnte zum Problem werden.
Ich könnte vielleicht den 5. Ausgang abprüfen und erst mit dem 6. Ausgang das Ganze zurücksetzen. Dann wäre immer eine Pause im Zyklus. So bräuchte ich einen weiteren Pin am Prozessor.
Wenn ich dann aber noch einen weiteren Pin spendiere, könnte ich z.B. gleich einen BCD-to-Decimal Decoder verwenden (CD4028).
Ich muss mir das Ganze also noch mal genauer überlegen.
Aber auf jeden Fall schon mal recht herzlichen Dank für den Hinweis. So einen Fehler findet man beim experimentieren nicht wirklich :)
Man könnte einen Trick verwenden, indem man das IO-Pin auch mal auf Eingang schaltet. Siehe Anhang. Man taktet und schaltet CLK_SYNC auf HIGH. Dann schaltet man das IO-Pin auf Eingang mit internem Pull Up. Kurz warten (ein paar us), dann den Pegel des IO-Pins lesen.
IO-Pin bleibt HIGH -> Q0 aktiv
IO-Pin ist LOW -> Q0 inaktiv
Man kann auch ein Schieberegister (74HC164) mit RC-Glied von CP zum DS-Eingang nehmen.
Ein kurzes Low entlädt den Kondensator nicht und schiebt eine 1 ein.
Ein langes Low entlädt den Kondensator und schiebt eine 0 ein.
High muß so lang sein, daß der Kondensator sicher auf 1 geladen wird.
Also das Clock Signal soll von einem µC kommen.
Ich habe eine Tastartur- Matrix mit 5x5 Zeilen/Spalten.
Ich hatte die Idee, die Zeilen mit lediglich einem einzigen Pin (clock)
anzusteuern. So könnte ich mir ein paar Pins einsparen. Im Moment habe
ich 5 Aus- bzw. Eingänge vom µC verwendet.
Falls Du mit dem µC I2C ansteuern kannst, reichen 2 Leitungen (evtl. plus eine für Interrupt) + ein TCA8418. Der macht auch gleich die Entprellung.
So kann ich mit drei Leitungen, bis zu 8 Eingänge abfragen.
Nö, damit kannst du den ersten gedrückten von bis zu 8 Eingängen anfragen. Ist z.B. der erste gedrückt, kriegst du von den folgenden nichts mit. Beim HC165 ist das anders, bei Latch werden die Stati aller Eingänge ins Register eingelesen und dann mit SCK und SDA an den uC weitergereicht. Macht auch 3 Leitungen, bei beliebig vielen Eingängen, weil kaskadierbar.
erst mal vielen Dank für all eure tollen Tipps und Ideen. Das weiß ich sehr zu schätzen.
Mir ist bewusst, dass es auch die Möglichkeit gibt, z.B. einen Bus wie I2C zu nutzen. Das ist von mir aber nicht vorgesehen.
Im Moment nutze ich einen Timer um meine 5x5 Matrix anzusteuern. (Zeilen / Pin-Outputs).
Die Idee von „falk“ finde ich eigentlich sehr charmant. Da die Matrixansteuerung allerdings durch den Timer zyklisch angesprungen wird, benötige ich jetzt noch zusätzliche Timer-Slots um den Clock-Pin zusätzlich noch umstellen bzw. den Wert noch einzulesen. Ich denke das ist aber echt ein Versuch wert.
Beim Einlesen der gedrückten Tasten (Spalten / Pin-Inputs) sehe ich schon einen Vorteil z.B. einen "8-line to 3-line Encoder (LS_148)“ zu verwenden. Und ja, mit LS_148 kann man maximal nur eine Taste erkennen. Dies wäre in meinem Fall aber OK so, da ich davon ausgehe, dass keine weiteren Tasten parallel gedrückt werden. Wie z.B. bei einer numerischen Tastatur für die Passworteingabe.
Dies wäre in meinem Fall aber OK so, da ich davon ausgehe, dass keine
weiteren Tasten parallel gedrückt werden. Wie z.B. bei einer numerischen
Tastatur für die Passworteingabe.