
Die nächste Variante, fünf LEDs über drei Drähte zum Leuchten zu kriegen: Ein 3-zu-8-Dekoder. Das ist ein IC, in den drei Datenleitungen reingehen, auf denen man binär die Zahlen 0-7 anlegen kann, und bei dem acht Leitungen wieder rausgehen. Von den Ausgangspins ist immer nur genau einer aktiv – welcher der acht das ist, wählt man über die drei Eingabepins.
Da immer nur genau ein Pin aktiv wird, ist diese Schaltung jetzt im Gegensatz zu den
beiden vorherigen die erste, bei der nur immer eine einzige LED leuchten kann. Das macht für ein Lauflicht keinen Unterschied und wäre bisher sowieso nicht aufgefallen, in anderen Konstellationen kann das aber relevant sein.
Der verwendete Dekoder ist ein
74HC138 (bzw. der baugleiche
M74HC138B1R, aber da ist mal wieder das Datenblatt blöder…). Wenn man den Schaltplan betrachtet, gibt hier es noch einen Unterschied zu den vorherigen Aufbauten: Dieses mal wird nicht die Stromquelle geschaltet (Anode der LED bzw. Pluspol), sondern die Stromsenke (Kathode (kurzes Bein) der LED, Minuspol bzw. Erde). Der 74HC138 ist nämlich ein invertierender 3-zu-8-Dekoder, das bedeutet, dass die selektierte Leitung auf 0 geschaltet ist und alle anderen auf 1 – und nicht, wie man erstmal vermuten könnte, genau andersherum. Durch eine LED, die am einen Ende +5V aus dem IC bekommt und am anderen Ende an der +5V-Stromquelle hängt, fließt aufgrund des fehlenden Spannungsgefälles kein Strom und sie bleibt dunkel – egal, wie man sie dreht.
Das klingt erstmal komisch (und mit dem 74HC238 gäbe es das gleiche Bauteil auch ohne Invertierung), hat aber langfristig Sinn, wenn ich erstmal wie geplant mit der LED-Matrix bastele :-) Letztendlich ist es aber eigentlich egal, welche Seite der LED man schaltet – auch die beiden vorherigen Schaltungen kann man ganz einfach so umbauen, dass die andere Seite der LEDs gesteuert wird. Man muss dann nur 0 statt 1 an den Pins ausgeben bzw. ins Schieberegister pusten.
Auf dem Schaltplan sind noch drei Pins E1 bis E3 am IC zu sehen: Damit die über A0, A1 und A2 ausgewählte Zielleitung O0 bis O7 geschaltet wird, muss auf E1 und E2 0 und auf E3 1 anliegen. Der Grund dafür ist einfach erklärt: Darüber lassen sich mehrere 3-zu-8-Dekoder zu größeren Dekodern zusammenschalten. Um einen 4-zu-16-Dekoder zu bauen, braucht man zwei 74HC138. Die unteren drei Bits werden jeweils an beide ICs auf A0 bis A2 angelegt. Das höchste Bit wird an dem einen IC auf E1 (oder E2) und an dem anderen auf E3 gelegt – damit wird abhängig von dem höchsten Bit nur genau einer der beiden Chips überhaupt aktiv.
Oder, um aus dem Datenblatt zu zitieren:
This multiple enable function allows easy parallel expansion of the 74HC138[…]
to a 1-of-32 (5 lines to 32 lines) decoder with just four 74HC138[…]
ICs and one inverter.
Mitch's Manga Blog am : Lauflicht - charlie