16 LEDs mit einem einzigen Output-Pin ansprechen

31.05.2013 yahe arduino hardware legacy

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, sogar über so viele, dass sie den Rahmen dessen sprengen, was der Arduino zur Verfügung stellt. Um trotzdem alles anschließen zu können, habe ich mir eine Kleinigkeit überlegt. Mit Hilfe eines Demultiplexers bin ich in der Lage, den Input eines Pins auf mehrere Ausgänge zu verteilen. Bei einem 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 zusätzlich einen Synchronzähler verwendet. 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 nehmen und mit dem Bit entweder den ersten Demultiplexer aktivieren oder den zweiten. Auf diese Weise 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

Das Anschalten/Abschalten der ersten Demultiplexers erreichen wir, indem wir den Enable-Input (E) des Demultiplexers direkt mit dem höchsten Bit des Zählers verbinden. Ist das Bit auf 0 gesetzt, ist der Demultiplexer aktiv, ist das Bit auf 1 gesetzt, ist der Demultiplexer deaktiviert. Zum Anschalten/Abschalten des zweiten Multiplexers müssen wir jedoch ein wenig tricksen. Wir verwenden ein NXP 74HCT02 NOR-Gatter (oder wahlweise ein NXP 74HCT00 NAND-Gatter). Einen Input des NOR-Gatters verbinden mir Ground, den anderen Input hingegen mit dem höchsten Bit des Zählers. Erst den Output-Pin des NOT-Gatters verbinden wir mit dem Enable-Input (E) des zweiten Demultiplexers. Ist das Bit auf 0 gesetzt, liefert das NOR-Gatter den Output 1 und der zweite Multiplexer ist deaktiviert, ist das Bit auf 1 gesetzt, liefert das NOR-Gatter den Output 0 und der zweite Multiplexer ist aktiv.

Alle ICs in einer Reihe

Bei Vine habe ich mal ein ultrakurzes Video hochgeladen, bei dem einfach durch die einzelnen LEDs durchgeschaltet wird.

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).


Search

Categories

administration (40)
arduino (12)
calcpw (2)
code (33)
hardware (16)
java (2)
legacy (113)
linux (27)
publicity (6)
review (2)
security (58)
thoughts (21)
windows (17)
wordpress (19)