16 LEDs mit einem einzigen Output-Pin ansprechen

Endlich sind die ersten Vorbereitungen für das Auslesen einer echten Computertastatur abgeschlossen. Das Problem, das ich nun gelöst habe, ist, dass der Controller und die Tastenmatrix solch einer Tastatur über sehr viele Anschlüsse verfügen - über so viele, dass sie den Rahmen dessen sprengen, was das Arduino zur Verfügung stellt. Um trotzdem alles anschließen zu können, habe ich mir eine Kleinigkeit überlegt. 🙂

Mit speziellen Chips (sogenannte Integrated Circuits) ist es möglich, den Input eines Pins auf mehrere Ausgänge zu verteilen. Mit Hilfe solch eines Demultiplexers, wie dem NXP 74HCT4051, kann ich mit Hilfe von 3 Steuerleitungen ganze 8 LEDs ansprechen. Die Anzahl der Leitungen hat sich also schon mal um 5 reduziert.

Das war mir jedoch noch nicht genug. Deshalb habe ich mir einen Synchronzähler hergenommen. Solch ein Binärzähler, wie der NXP 74HCT193, hat im Grunde einen Eingang, über den man ihm einen Takt geben kann. Bei jedem Takt zählt er einen internen Counter um eins höher oder niedriger. Die aktuelle Zahl gibt er binär aus (im Falle des 74HCT193 mit vier Stellen). Die niedrigsten drei Bit kann man nun verwenden, um den Demultiplexer zu steuern.

Doch ein Bit des Binärzählers bleibt noch übrig. Dank dieses höchsten Bits kann man nun einen zweiten Demultiplexer hernehmen und mit diesem entweder den ersten Demultiplexer aktivieren oder den zweiten. So kann man mit einem einzigen Vier-Bit-Zähler und zwei Demultiplexern dank nur 1 Taktleitung ganze 16 LEDs ansteuern.

16 LEDs dank ein paar ICs

16 LEDs dank ein paar ICs

Das Anschalten/Abschalten der Demultiplexer erreichen wir übrigens, indem wir die Eingangsleitungen (Z) der Demultiplexer mit dem höchsten Bit des Zählers verbinden. Dieser liefert den Strom für die LEDs. Hier müssen wir ein bisschen tricksen. Wir verwenden ein NOR-Gatter, wie das NXP 74HCT02 (wahlweise auch ein NAND-Gatter, wie das NXP 74HCT00), um einen Demultiplexer anzuschalten, wenn das höchste Bit des Binärzählers keinen Strom liefert. Denn mit dem NOR-Gatter können wir aus einem "Strom aus" ein "Strom an" basteln. 🙂

Alle ICs in einer Reihe

Alle ICs in einer Reihe

Bei Vine habe ich mal ein ultrakurzes Video hochgeladen, bei dem einfach durch die einzelnen LEDs durchgeschaltet wird. Zudem habe ich mit Fritzing eine kleine Aufbauzeichnung gebastelt. 😀

Aufbauzeichnung

Aufbauzeichnung

Als nächstes heißt es nun, Anschlüsse an die Tastaturmatrix und an den Controller zu basteln. Den notwendigen Kleber habe ich inzwischen erhalten. Ich werde zwei verschiedene Leitkleber ausprobieren - zum einen Polytec PU 1000 aus Deutschland (Kostenpunkt ca. 70€ inkl. MwSt und Versand) und zum anderen Wire Glue aus den USA (Kostenpunkt ca. 15€ inkl. MwSt und Versand). Man darf also gespannt bleiben. 😀
Lichtstarke Grüße, Kenny

4 Kommentare » Schreibe einen Kommentar

  1. Hallo,
    ich mache nun kleine Projekten mit Ardiuno ,hab mir diesen geschaut, hast du mal den code dafür ?

    • Hi, wenn du den Aufbau beachtest, siehst du, dass es nur einen einigen Pin benötigt, um die Schaltung zu steuern. Auf diesem Pin muss nur zwischen High und Low gewechselt werden, um zur nächsten LED weiter zu schalten.

  2. Schau Dir mal den 74HC(T)595 an. Das ist ein seriell-nach-parallel Schieberegister: Man schiebt über eine Datenleitung acht Bits nacheinander in den Baustein, und nach Freigabe über den OE-Anschluss werden die Bits auf den acht Ausgängen ausgegeben. Der Baustein kann auch hintereinandergeschaltet werden um 16, 24, 32, … Ausgänge zu erhalten. Ich habe zwei davon in meiner Digitaluhr benutzt um die 7-Segment-Anzeigen anzusteuern. (Schaltbild: http://ftp.chtaube.eu/pub/electronics/leetclock/leetclock_schematic-2.png )

    • Ich kenne das 595er Shift-Register. Es hat seine Vorteile (LEDs können gleichzeitig eingeschaltet sein), es hat aber auch seine Nachteile im Vergleich zum 4051er.

      Da wäre zum einen der Stromverbrauch. Ich habe das ganze für mein Tastaturprojekt auf 24 LEDs aufgeblasen (Artikel folgt noch). Bei 20mA pro LED wäre das ein Maximalverbrauch von 480mA. Ein Arduino kann pro IO-Pin aber nur maximal 40mA liefern und ein GND-Pin kann nur maximal 200mA aushalten. Man würde diese Grenzen also bei weitem überschreiten und bräuchte eine externe Stromversorgung.

      Das andere Problem ist die zeitverzögerte Ansprache der LEDs. Der 4051 reicht die angelegte Spannung direkt durch, der 595er jedoch nicht. Das heißt, dass der 4051er unter anderem geeignet ist, um die LEDs per Pulsbreitenmodulation (PWM) anzusprechen. 🙂

      Und abschließend: Der 4051 kann sowohl also Multiplexer als auch als Demultiplexer aggieren. In meinem Tastaturprojekt brauche ich beide Fähigkeiten. 🙂

Schreibe einen Kommentar

Um Ihnen beim weiteren Kommentieren auf dieser Webseite die erneute Eingabe Ihrer Daten zu ersparen, wird beim Absenden Ihres Kommentars ein Cookie an Ihren Browser gesendet und von diesem gespeichert. Mit dem Absenden eines Kommentars auf dieser Webseite stimmen Sie der Speicherung und Übertragung dieses Cookies explizit zu.

Pflichtfelder sind mit * markiert.