ExplainMultiplexing

From BlinkenArea Wiki
Revision as of 23:17, 19 September 2021 by ArneRossius (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
zur Projektübersicht
English Version of this Page
ExplainMultiplexing.jpg
Jahr 2017
Anzahl Pixel 40
Graustufen / Farben an/aus
Leuchtmittel 3-mm-LEDs
Leistungsaufnahme
Kontaktperson Arne Rossius
Projekt-Website

Explain: Multiplexing ist eine kleine Kiste, die dabei hilft, Multiplexing zu demonstrieren und das Konzept zu erklären. Sie enthält einen Oszillator mit vom Benutzer verstellbarer Geschwindigkeit, einen Spalten-Zähler, einen "Speicher" aus DIP-Schaltern für das anzuzeigende Muster und die eigentliche LED-Matrix selbst. Die Front ist mit einem Blockdiagramm versehen, welches die Verbindungen zwischen den Einheiten zeigt und ein paar Erklärungen enthält.

Die Haupt-Schaltung verwendet nur zwei ICs und keine programmierbaren Bauelemente, so dass sogar die Schaltung einfach zu verstehen ist. Ein zusätzliches IC wird verwendet, um den eingebauten Lithium-Polymer-Akku zu laden. Damit der Akku lange hält gibt es eine automatische Abschaltung, welche die Schaltung nach ca. 5 Minuten ausschaltet. So kann das Explain ohne Nachladen einen kompletten CCC-Kongress überleben.

Elektronik

Oszillator

Der Oszillator erzeugt die Impulse für das Multiplexing. Mit jedem Impuls schaltet das Multiplexing zur nächsten Spalte weiter. Die Geschwindigkeit kann mit einem Potentiometer eingestellt werden.

Als Basis wird eine Hälfte eines NE556 Doppel-Zeitgeber-ICs (zwei NE555 auf einem Chip) verwendet. Damit sich die Geschwindigkeitseinstellung für den Benutzer linear "anfühlt", muss die tatsächliche Änderung umgekehrt logatithmisch sein. Da umgekehrt logarithmische Potentiometer schwer zu finden sind, wurde stattdessen ein gewöhnliches lineares Potentiometer mit einem Widerstand zwischen zwei Anschlüssen modifiziert. Dieses Modification funktioniert jedoch nur, wenn das Potentiometer als Spannungsteiler verwendet wird, aber alle üblichen NE555-Oszillatorschaltungen benörtigen stattdessen einen Stellwiderstand (Rheostat). Dieses Problem wurde gelöst, indem mit dem Potentiometer zunächst eine einstellbare Spannung erzeugt wird, welche dann durch einem Emitterfolger (T14) gepuffert von einem Widerstand (R32) zu einem Strom gewandelt wird. Der Strom wird dann gespiegelt (T15, T16, R30, R31) und als Ladestrom für den Kondensator C2 verwendet. Zwei Dioden (D41, D42) begrenzen den Einstellbereich, da der Emitterfolger und der Stromspiegel für die korrekte Funktion je einen Dioden-Spannungsabfall benötigen. Damit der Oszillator bei einem kleinen Unterschied zwischen dem Spannungsabfall über den beiden Dioden und den B-E-Strecken der Transistoren nicht stehenbleibt, sorgt ein großer Widerstand (R27) für einen minimalen Ladestrom.

Wenn der Kondensator auf 2/3 der Versorgungsspannung aufgeladen ist, verbindet der NE556 den Dischage-Anschluss (DIS) mit Masse und entlädt den Kondensator. Zur gleichen Zeit wird der Ausgang (OUT) low. Sobald die Spannung am Kondensator auf unter 1/3 der Versorgungsspannung gefallen ist wird der Discharge-Anschluss wieder abgeschaltet und der Ausgang kehrt auf high zurück. Die Entladezeit des Kondensators ist kaum von der Geschwindigkeitseinstellung abhängig, da der Entladewiderstand (R26) verglichen mit dem vom Stromspiegel bereitgestellten Ladestrom klein ist.

Eine blaue LED (LED54) am Oszillator-Ausgang leuchtet während jedes Impulses. Da die Impulse sehr kurz sind, muss die LED recht hell sein, damit man die Impulse auch bei der niedrigsten Geschwindigkeitseinstellung noch gut genug sehen kann. Die meisten superhellen LEDs haben einen geringen Abstrahlwinkel, daher wurde die verwendete LED angeschmirgelt, um das Licht besser zu streuen.

Zähler und Spaltentreiber

Die negativen Ausgangsimpulse des Oszillators takten ein 4022 Zähler-IC. Es ist vergleichbar mit dem besser bekannten 4017, hat jedoch nur 8 Ausgänge. Da diese Schaltung nur 5 Ausgänge verwendet, können beide ICs eingesetzt werden. Aufgrund der negativen Taktimpulse ist der Oszillator mit dem invertierten Takteingang (manchmal als "#Enable" bezeichnet) statt mit dem nichtinvertierten "Clock"-Eingang verbunden. Der erste nicht benötigte Ausgang ist mit dem Rücksetz-Eingang (Reset) verbunden, so dass die Sequenz wieder von vorne beginnt.

Das Ausgangsstrom von CMOS-ICs ist sehr niedrig, daher sind die fünf Ausgänge des Zählers mit Emitterfolgern als Treiber verbunden. Anstelle der üblicheren BC54x- oder BC337-Transistoren wurden aufgrund der zweckmäßigeren Pinbelegung (Kollektor in der Mitte) 2SC945 gewählt. Die Transistoren treiben die Eingänge des DIP-Schalter-"Speichers", die Spalten der LED-Matrix (aktiv high) und je eine zusätzliche LED um anzuzeigen, welche Spalte gerade aktiv ist (LEDs 49~53). Ein einziger Strombegrenzungswiderstand für alle 5 LEDs reicht aus, da immer nur eine LED leuchtet.

Speicher und Zeilentreiber

Der Speicher ist einfach ein Feld aus DIP-Schaltern, an denen der Benutzer schnell das anzuzeigende Muster verstellen kann. Die Schalter sind auf der Platine so angeordnet, dass sie mit den Positionen der LEDs im Anzeigefeld übereinstimmen, so dass der Zusammenhang zwischen Schalterstellung und angezeigtem Muster sofort ersichtlich ist. Jeder Schalter hat eine Diode in Reihe geschaltet, damit die Ausgänge miteinander verbunden werden können, ohne dass das Signal aus einem Schalter durch einen anderen auf einen anderen Spalten-Ausgang zurückgeführt wird. Acht Pull-down-Widerstände ziehen die Ausgänge des Speichers auf low, wenn der Schalter für die aktive Spalte aus ist.

Die Ausgänge des Speichers führen auf acht MOSFET-Treiber. Bipolare Transistoren hätten auch verwendet werden können, hätten aber zusätzlich Basiswiderstände benötigt. Die Pufferung der Signale ist eigentlich nicht notwendig, da die Speicher-Eingänge bereits von dem gepufferten Spaltensignalen getrieben werden und sowohl die Schalter als auch die Dioden die Ströme zur Ansteuerung des LED-Feldes problemlos vertragen. Allerdings werden bereits die Spalten mit high-aktiven Signalen getrieben, so dass für die Zeilen low-aktive Signale erforderlich sind, um die LEDs aufleuchten zu lassen. Die MOSFETs invertieren die (high-aktiven) Eingangssignale und stellen low-aktive Ausgänge für die LEDs zur Verfügung.

Zu jedem Zeitpunkt leuchtet nur eine Spalte auf, aber mehrere Zeilen in dieser Spalte können gleichzeitig an sein. Das bedeutet, dass die Strombegrenzungswiderstände für die LEDs in Reihe zu den Zeilensignalen liegen müssen, damit sich nicht mehrere gleichzeitig aktive LEDs einen Widerstand teilen, was zu einer Helligkeitsänderung je nach Anzahl der gleichzeitig eingeschalteten LEDs führen würde.

Zusätzlich zum LED-Feld gibt es noch eine zusätzliche Spalte aus 8 LEDs (LEDs 41~48), um anzuzeigen welche Zeilen in der aktiven Spalte angesteuert werden.

Automatische Abschaltung

Die automatische Abschaltung verwendet die zweite Hälfte des NE556-ICs. Nach dem Anschließen des Akkus bleibt die Schaltung zunächst ohne Strom, da der Hauptschalter-MOSFET (T17) nicht leitet. Wird der Einschaltknopf (S6) gedrückt, so wird die Schaltung zunächst über D6 mit Strom versorgt. Gleichzeitig wird über R38 T19 durchgesteuert, so dass der zeitgebende Kondensator C4 entladen wird. Mit beiden Eingängen auf low schaltet der NE556 den Ausgang high, T18 wird durchgesteuert und zieht das Gate vom MOFET auf Masse, wodurch dieser leitend wird und die Schaltung mit Strom versorgt.

Nachdem der Einschaltknopf losgelassen wurde lädt C4 sich langsam über R37 auf. Wenn die Spannung am Kondensator auf 2/3 der Versorgungsspannung gestiegen ist schaltet der NE556 seinen Ausgang auf low, T18 sperrt und zieht das MOSFET-Gate nicht mehr auf Masse. Stattdessen wird es von R39 auf high gezogen, der MOSFET sperrt und die Schaltung wird stromlos geschaltet.

Die Ladezeit bis zur Abschaltung lässt sich durch Berechnung der Zeitkonstante τ = R * C. Tau entspricht einer Ladung von ~63.2%, eine ausreichende Annäherung von 2/3 (~66.7%). Mit den Werden von 1 MΩ und 220 μF ergibt sich τ = 220 s oder ~3.7 Minuten. Durch die große Toleranz eines realen Kondensators und den Leckströmen in der Schaltung liegt die tatsächlich gemessene Abschaltzeit eher bei 5 Minuten.

Akku-Lader

IC3 ist ein spezieller IC um Lithium-Polymer-Akkus aufzuladen. Der Ladestrom wird mit R40 eingestellt. Während des Ladevorgangs leuchtet LED55 auf, die LED geht aus wenn der Akku voll ist oder keine Spannung an der USB-Buchse anliegt.

Fotos

Mehr Fotos hier: http://arne.blinkenarea.org/explain_multiplexing/