Die 8x8 LED-Matrix

Falls du bereits eine Vorliebe für LEDs entwickelt hast, dann wirst du die LED-Matrix lieben. Werden mehrere LEDs zu größeren Anordnungen zusammengelegt, spricht man von einer LED-Matrix. Die Größe einer LED-Punkt-Matrix wird durch die Anzahl der Zeilen und Spalten bestimmt.

Die beliebteste Art ist die 8×8-Variante, die 64 LEDs in 8 Zeilen und 8 Spalten beinhaltet, die einzeln oder in Gruppen angesteuert werden können. LED-Matrix-Displays werden typischerweise für die Anzeige von Lauftexten, Zählern, Uhren, Symbolen, Logos usw. verwendet. Sie können zu größeren Anordnungen zusammengeschaltet werden, um größere Displays zu bilden.

 

Selber eine Matrix erstellen
Man könnte diese Matrizen durch das Verschalten von 64 LEDs selber löten, allerdings ist dieser Prozess viel zu zeitaufwendig. In diesem Fall wird theoretisch für jede der 64 LEDs ein eigener digitaler Pin benötigt. Also weit über der Pinanzahl vieler Arduino-Boards. Es gibt aber clevere Strategien, um den Aufwand auf ein Minimum zu reduzieren.

 

Nackte Matrix ohne Treiber
Heutzutage sind LED-Matrizen in kompakter Form erhältlich, wie in der folgenden Abbildung gezeigt. Diese kompakten Module sind in verschiedenen Größen und Farben erhältlich. Die Matrix hat 16 Pins mit 8 gemeinsamen positiven und weiteren 8 gemeinsamen negativen Anschlüssen. Um 64 LEDs zu steuern, brauchen wir "nur" 16 Arduino-Pins. Dies wird durch die sogenannte Multiplex-Technik erreicht. Um die jeweilige LED anzusteuern, braucht man den Strom in der richtigen Spalte und Zeile einschalten. Die LED ist eine Diode, die den Strom in nur eine Richtung durchlässt. Durch die clevere Kombination der LED-Anschlüsse werden so gezielt einzelne Punkte angesteuert. Die Identifikation der vielen LEDs können wir mit einem Schachbrett vergleichen - mit den Angaben A-H und den Zahlen 1-8 werden die Felder eindeutig identifiziert. Mit Multiplexing können wir alle 64 LEDs einzeln ansteuern und haben eine Vielzahl von Möglichkeiten, sie ein- und auszuschalten. Jedoch kommen "nackte" Matrizen eher aus der Mode.

###multilex technik

In der Abbildung X siehst du beispielhaft ein kleines Multiplex aus 2x2 LEDs. Ist der Schalter S1 und gleichzeitig der Schalter S4 geschlossen, so kann der Strom durch die LED 4 fließen und leuchtet dabei.

Matrix mit Treiber
Trotz der Multiplex-Technik gehen uns ganze 16 Pins verloren. Moderne Matrixen hingegen enthalten einen Treiber-Chip, der eine Schnittstelle zur Verfügung stellt, die die Kommunikation mit der LED-Matrix erleichtert und gleichzeitig weiter die Pinanzahl auf nur zwei Signal-Pins reduziert. Die LED-Matrix, die in diesem Tutorial verwendet wird, ist bereits mit dem HT16K33 Treibermodul verlötet. Im Englischen werden diese Matrixen auch Backpacks (Rucksack) genannt. Der Controller-Chip kümmert sich bequemerweiser um alles und zeichnet alle 64 LEDs im Hintergrund. Alles, was wir tun müssen, ist, über die 2-polige I2C-Schnittstelle Daten an den Backpack zu schicken.

Die Adafruit Bibliothek

 Was ist eine Bibliothek und wofür ist sie gut? Hardwaretechnisch erleichtert uns das Backpack die Arbeit erheblich. Eine große Herausforderung stellt die Software dar.

Stellt dir vor, wir wollen einen durchlaufenden Text auf der LED-Matrix darstellen. Zunächst müssten wir jeden Buchstaben im Alphabet selbst auf dem 8x8 Feld designen. Und dann müssten wir unter anderem aus Buchstaben Wörter bilden und in Bewegung bringen und das ganze vom PC auf den Treiber-Chip des Backpacks auf verständliche Weise schicken. Das allein ist schon ein sehr aufwendiges Projekt.

 Aber keine Sorge. Um uns die Arbeit zu erleichtern, benutzen wir zur Ansteuerung der LED-Matrix zwei Arduino-Bibliotheken namens Adafruit_GFX und Adafruit_LEDBackpack, die von Limor Fried mit dem Künstlernamen Ladyada (beschäftigt bei Adafruit Industries) geschrieben wurden. Ohne diese Bibliotheken wird die Programmierung recht aufwendig und komplex. Die Adafruit_GFX erlaubt uns mit einfachen Zeilencode grafische Elemente wie Buchstaben, Linien, Rechtecke, Kreise usw. zu zeichnen und sogar zu animieren. Adafruit_LED_Backpack übernimmt die Ansteuerung der LEDs und die I2C Kommunikation mit dem HT16K33 Chip. Das Datenübertragungsprotokoll zum Arduino erfordert ein präzises Timing, sonst wird die LED-Anzeige unbrauchbar. Beide Bibliotheken verstecken vor uns die ganze Code-Komplexität, sodass wir nur einfache und kurze Befehle erteilen können, um die Matrix zu steuern.

 

Installation der Adafruit-Bibliothek

So installierst du die Bibliotheken: Das aktuelle Arduino-IDE (Version 1.8.16) enthält eine integrierte Bibliothek-Installation. Öffne hierzu das Arduino-Programm und gehe in der Menüleiste auf den Punkt Werkzeuge > Bibliotheken verwalten…

Ein neues Fenster öffnet sich. Gib in der oberen rechten Suchleiste das Wort Adafruit_GFX ein, gefolgt von Enter. Wähle aus der Liste den Eintrag Adafruit GFX Library aus und klicke auf Installieren. Die Adafruit_GFX liegt nun im Arduino-Programm-Ordner und ist zum Aufruf bereit.

Kommen wir zur zweiten Bibliothek. Gib im Bibliotheksverwalter im Suchfeld den Begriff Adafruit LED Backpack ein. Wähle den entsprechenden Eintrag aus, klicke auf Installieren. Du kannst jetzt den Bibliotheksverwalter schließen. Beide Libraries sind jetzt bereit.