Wie kaskadiert man 4017-Dekadenzähler?

Ich erstelle eine 16 x 16 LED-Matrix mit 74hc595-Schieberegistern, um die Spalten zu adressieren, und mit 4017-Dekadenzählern, um die Zeile zu steuern. Ich verwende die 4017 in Verbindung mit einem Transistor, um den Strom von den LEDs zu senken. Ich verstehe, wie man einen 4017 verwendet, um den Strom zu senken, aber ich versuche, einen anderen 4017 zu kaskadieren, damit ich mit Ausgängen bis 20 zählen kann. Ich habe ein Arduino , das das Taktsignal liefert und ENABLEden Ausgang an Masse gebunden hat, und kann steuern CLOCKundRESET

Eine Erklärung, warum eine vermeintliche Lösung funktioniert, wäre auch toll, da ich gerne verstehen würde, wie meine Matrix von innen nach außen funktioniert.

Antworten (2)

Eigentlich erklärt das verlinkte HC4017 Datenblatt, wie man den Zähler erweitert. Sehen Sie sich Seite 15 an. Aber Sie erhalten nur 17 Stufen aus 2 Zählern und zusätzliche 8 Stufen für jeden weiteren.

Weder Sie noch das OP stellen einen Link zu einem Datenblatt bereit. Beziehen Sie sich auf den Link , den Stevenvh in seiner Antwort bereitstellt ? Wenn ja, fügen Sie den Link bitte auch in Ihre Antwort ein. Ansonsten ist es wirklich verwirrend (zumindest war es für mich).
@PetPaulsen - Ich stimme zu, man kann nicht zu viele Links haben! Eigentlich war der Verweis auf einen Link in meiner jetzt gelöschten Antwort, aber ich habe ihn in meiner neuen wiederholt.
@stevenvh - Ok, jetzt, da ich sicher bin, dass sich hli auf das erwähnte Datenblatt bezieht, habe ich die Antwort bearbeitet.

Meine andere Antwort war falsch: Ich bin fälschlicherweise davon ausgegangen, dass Sie alle Ausgänge verwenden würden, und dann ist dies mit dem 74HC4017 nicht möglich .

hli bemerkte zu Recht, dass das Datenblatt zeigt, wie man sie kaskadieren kann:

Geben Sie hier die Bildbeschreibung ein

(Also stimme seiner Antwort zu, nicht meiner. Es sei denn, du stimmst dem Folgenden zu. :-))

Die verbleibenden 17 Zeilen für zwei Geräte reichen für Ihre 16 × 16 Anzeige.

Ich würde immer noch zwei 74HC595 verwenden und sie nach der Spalte '595 kaskadieren. Ich habe einen Grund in meiner anderen Antwort erwähnt: Der '595 ist billiger und Sie brauchen das UND-Gatter nicht.
Ein weiterer Grund ist, dass die gezeigte Schaltung keine Mittel zum Synchronisieren hat . Wenn Sie auf die eine oder andere Weise die Zählung verloren haben (jemals von Fehlern gehört?), zeigt Ihr Display die falschen Daten und Sie würden es nicht wissen. Sie können das beheben, indem Sie einen der MR-Eingänge abfangen. Kostet Sie zusätzliche E/A und verkompliziert Ihren Treiber. Für den '595 brauchst du keinen neuen Treiber, du hast schon einen für die Säulen. Nur noch 2 Bytes zum Durchschieben.

Ich habe ein paar Matrizen nachkonstruiert, und ich möchte sagen, dass das Fahren von Zeilen über 595 nach Ärger verlangt - Sie können leicht alle Zeilen oder alle Anzeigen drehen, indem Sie einen Fehler in einem Code machen, und puff - viel Rauch .
Was ich vorschlagen würde, ist, 74hc138D zum Ansteuern von Zeilen zu verwenden - auf diese Weise ist die Lösung viel narrensicherer, verbraucht aber natürlich MCU-Pins.
@miceuz - Ein '138 braucht nur 3 Zeilen. Für 16 Zeilen schätze ich, dass Sie aus Sicherheitsgründen ein paar Tore verwenden, um zu verhindern, dass eines aktiv ist, wenn das andere aktiv ist.
Der '138 enthält sowohl Aktiv-High- als auch Aktiv-Low-Aktivierungsstifte (insgesamt drei, iirc). Man könnte also vier Drähte verwenden, um eine Zeile auszuwählen, wobei ein optionaler fünfter als globale Freigabe dient. Meine Empfehlung wäre wahrscheinlich, einen 74HC138 und einen Vier-Bit-Zähler zu verwenden, der von einer "anstupsbaren" Zeitschaltung angesteuert wird (deren Ausgang mit seinem Eingang übereinstimmt, wenn die Eingangsfrequenz im Bereich liegt, der aber freilaufen würde, wenn der Eingang ausfällt der Reichweite).