1 - Die P2-LED-Matrix-Platine
Das Board verfügt über ein 8 x 7 Raster von sogenannten charlieplexed grünen LEDs. Damit lassen sich Buchstaben, Zahlen und Texte mit nur 8 I/O Pins und 56 LEDs ansteuern.
Abb. 1
P2-Eval-LED-Matrix Platine
Die Platine ist mit 56 LEDs (grün) bestückt, die sich über ein spezifiziertes Multiplexverfahren (sog. Charlieplexing) über nur 8 Pins einzeln ansteuern lassen.
Im oberen Teil der Platine befindet sich ein 2x6 polige Steckleiste. Die Stecker 0 bis 7 steuern die LEDs an, zwei Steckbuchsen sind mit GND (ground), eine mit VIO3V3 (+ 3,3 V) und eine weitere mit 5V beschriftet.
Was ist Charlieplexing ? - Theorieteil 1
Mit Tri-State-Multiplexing oder auch Charlieplexing bezeichnet man eine LED-Ansteuerungstechnik mit reduzierter Anzahl an Pins. Das Verfahren nutzt die Eigenschaft der Tri-State-Logik von Mikrocontrollern und die Einweg-Durchlassrichtung von Dioden aus.
Durch sehr schnelles ein- und ausschalten der LEDs und durch die Trägheit des menschlichen Auges entsteht so der Eindruck einer ruhenden leuchtenden Anzeigefläche.
Schauen wir uns einmal die folgende Schaltung an:
Durch einfaches Umschalten der beiden Pins Px und Py leuchtet eine der beiden LEDs auf, die andere nicht. Es leuchten niemals beide LEDs gleichzeitig.
Erweitert man jetzt die Schaltung in der in Abb. 3 gezeigten Art, wird die Ansteuerung einer einzelnen LED etwas komplizierter.
Damit nur LED5 leuchten kann, muss Pin Px auf HIGH und Pz auf LOW gezogen werden. Pin Py darf dann aber nicht auf HIGH sein, da sonst auch LED3 leuchten würde. Aber Py darf auch nicht auf LOW gezogen werden, denn dann würde LED1 auch leuchten. Also was tun?
Abhilfe schaffen hier die besonderen Eigenschaften der Pins. Sie verfügen über drei verschiedene Zustände:
Wird ein Pin in den Modus Eingang versetzt, wird er hochohmig und es fließt kein nennenswerter Strom mehr.
Kehren wir zum Beispiel mit LED5 zurück: Py muss auf INPUT gesetzt werden. Damit ist dann sichergestellt, dass nur LED5 leuchtet.
Wie dies in der Praxis umzusetzen ist, zeigt die folgende Übung 1. Sie vermittelt, wie über Charlieplexing eine bestimmte LED einer 8x7 LED-Matrix softwaremäßig angesteuert wird. Dazu muss der Schaltplan der Verdrahtung der LED-Matrix bereitliegen (Datenblatt der Fa. Parallax zur P2 Eval LED Matrix Platine).
Der nachfolgenden Beschaltungstabelle für die P2 Eval LED Matrix Platine sind die Pinbelegungen für die einzelnen LEDs zu entnehmen. Sie basiert auf dem Datenblatt der Platine.
Übung 1 - Eine bestimmte LED der Matrix ansteuern
Übung 1 - Eine bestimmte LED der Matrix ansteuern | |
Material |
|
Aufgaben |
|
Schaltskizze
Das Programm LED_Blinker.sp2
Über die beiden Verzögerungsbefehle in den Programmzeilen 16 und 18 kann die Blinkfrequenz der LED gesteuert werden.
Mit drei unterschiedlichen Einstellungen wird in der ca. 50 s langen Videosequenz der sich einstellende Effekt gezeigt. Video anschauen
Wie muss nun eine Schaltung aus sechs gleichfarbigen LEDs aufgebaut sein, damit sie über drei Portpins des Controllers P2 im Charlieplexing-Betrieb funktioniert?
Dies wird in der folgenden Übung 2 genauer untersucht. Dazu muss die Beschaltung der LEDs, wie in Abb. 3 gezeigt, etwas abgeändert werden.
Übung 2 - Sechs LEDs im Charlieplexing-Modus ansteuern
Übung 1 - Eine bestimmte LED der Matrix ansteuern | |
Material |
|
Aufgaben |
|
Schaltskizze
Schaltungsaufbau
Da jede LED einzeln angesteuert wird und alle Leuchtmittel von den Leistungsdaten identisch sind, genügen für diese Schaltung zwei Widerstände. Die Wahrheitstabelle für die Schaltung zeigt nachfolgende Abbildung. Der hochohmige Zustand wird in der Tabelle mit I gekennzeichnet. Die maximale Stromaufnahme wird begrenzt durch die Stromstärke einer leuchtenden LED.
Das Programm 6_LED_charlieplexed.sp2
Das Lauflicht zeigt das folgende Kurzvideo (10 sec) -> Kurzvideo anschauen.
Nutzung einer Look-Up-Tabelle (LUT)
Zur Ansteuerung einer LED-Matrix aus 56 oder mehr Leuchtdioden wird der Schreibaufwand und das Programm selbst sehr groß. Einfacher geht es mit einer Look-Up-Tabelle.
Nach der Wahrheitstabelle (Abb. 8) werden die LED nach folgendem Schema durchlaufen:
In der LUT werden die Eintragungen codiert. Aus
Die sechs möglichen Pinkonfigurationen stehen codiert als Hexadezimalzahlen in der LUT. Das komplette Programm zeigt Abbildung 9.
Was passiert in den Programmzeilen 21 und 22 ?
<< Text folgt >>
Aufnahme der Logikpegel
Anhand von Abb. 11 kann man gut erkennen, dass immer nur eine LED zur Zeit leuchtet und das weiter oben besprochene Durchlaufschema bei den Leuchtdioden eingehalten wird (bitte selbst überprüfen).
Übung 3 - Bewegungsmuster mit 56 LEDs charlieplexed erzeugen
Das folgende Programm LED_charlieplexing_AtmendesRechteck.spin2 erzeugt auf der LED-Matrix 8x7 ein Bewegungsmuster. Das Auge sieht ein "atmendes" Rechteck, das von klein zu groß wächst und dann wieder schrumpft. Der Bewegungseindruck wird durch die sehr schnelle Ansteuerung jeder einzelnen der 56 LEDs erreicht. Insgesamt setzt sich die Bewegung aus den vier Einzelbildern LUT_a, LUT_b, LUT_c und LUT_d zusammen.
Das Programm LED_charlieplexing_AtmendesRechteck.spin2
Das auf dem LED-Matrix-Display gezeigte Muster zeigt das folgende Kurzvideo (10 sec) -> Kurzvideo anschauen.
Noch ein Bewegungsmuster
Das nachfolgende Programm entspricht im Wesentlichen dem Vorgängerprogramm. Im DAT-Block wurde einige Veränderungen vorgenommen, so dass ein veränderter Bewegungsablauf entsteht.
Das auf dem LED-Matrix-Display gezeigte Muster zeigt das folgende Kurzvideo (9 sec) -> Kurzvideo anschauen.