LED-Matrix

Na wer kennt sie nicht, diese Laufschrift-Anzeigetafeln, wo aus kleinen (meist einfärbigen) Lichtpunkten Buchstaben geformt werden, die dann durchlaufen.

Anfangs gab es das nur im Fernsehen bei diversen Börsen-Szenen zu sehen, wo stets irgend welche Kursdaten vorbeiliefen.

Dann hatten es die Geschäfte um auf Niedrigpreise aufmerksam zu machen.

Und heute bauen wir uns das in jedem Arduino Anfängerlernpaket selbst zusammen.


In vielen Arduino- und Sensor-Lernkits sind diese 8x8 LED Matrix Elemente enthalten, mit denen man erste Experimente durchführen kann. Und auch der Micro:bit hat eine 5x5 Matrix für einfache Lichterspiele verbaut.

Interessanter werden aber etwas längere Ketten dieser Elemente, die man bequem über SPI ansteuern kann.
Und so freue ich mich über meine 4 mal 8x8 Anfertigung.
LED-Matrix

Nachdem heute (noch) nicht jeder solche Laufschriftanzeigen besitzt, kann man dieses einfache Mittel dazu nutzen, Aufmerksamkeit auf sich zu ziehen.
Das funktioniert gar nicht so schlecht auf Messen, wenn man ein solches Teil gut auf seinem Stand platziert hat, oder es wie eine Halskette mit sich herumträgt.

Und schon kann man einige weitere Blicke auf “sich” ziehen.
Deshalb halte ich solche LED-Matrizen wirtschaftlich für die am besten direkt nutzbaren Arduino-Bauteile. Sie sind leicht zu programmieren und können für Werbe- und Infozwecke quasi überall eingesetzt werden.

Andere Elemente wie “Metalldetektoren” oder Beschleunigungssensoren sind auch ganz nett, aber wer nutzt schon solche Eigenfabrikate für tägliche Belange?

Von daher ist die LED-Matrix (zumindest für mich) schon etwas besonderes.


Bei meinem Modell handelt es sich um einen MAX7219 LED Display Driver, der häufiger in dieser Konfiguration zu finden ist. Gesteuert wird dieser über SPI, doch nachdem es fertige Bibliotheken für die Matrix gibt, braucht man nicht selbst die Bytes entsprechend formatieren, sondern nutzt eine vorhandene Sendefunktion.

Was man aber oft selbst beisteuern muss, sind die Zeichen. Und dank der Tatsache, dass wir eine 8x8 Matrix haben, läßt sich das ganz einfach umsetzen:

C und C++ erlauben neben Dezimal- und Hexadezimal - und Oktalzahlen, auch binäre Zahlenangaben und sie haben die Form:

int x =  B0001000; // == 8
int y = 0b0001010; // == 10

Und somit kann man einen Buchstaben wie ein großes A wie folgt speichern:

unsigned char const CHAR_A[] = 
{
  0b00010000,
  0b00111000,
  0b01101100,
  0b11000110,
  0b11000110,
  0b11111110,
  0b11000110,
  0b11000110
};

Man kann das Ergebnis fast wie als ASCII-Kunst im Quellcode erkennen und somit “mit den Bits zeichnen”. Um ein solches Zeichen dann auf der LED-Matrix anzuzeigen, werden die 8 Bytes mit ihren 8 Bits per SPI übertragen und schon leuchten die entsprechenden LEDs auf, wenn ihr zugeordnetes Bit auf 1 gesetzt ist.

Die verfügbaren Arduino-Bibliotheken erlauben auch mehrere Zeichen an mehrere 8x8 Module zu übertragen und unterstützen auch das Verschieben der Bits um die Schrift von rechts nach links oder umgekehrt laufen zu lassen.
Die von mir getestete heißt schlicht und einfach LedControl.

Fazit

Coole Sache, dieses Teil. In wenigen Minuten hat man eine solche Laufschrift fertig.
Jetzt kann man sich noch überlegen, ob man das Modul mit anderen Geräten koppeln will.
Beispiele wären Bluetooth oder ein ESP um anzuzeigende Texte drahtlos zu empfangen.


Wenn sich eine triviale Erkenntnis mit Dummheit in der Interpretation paart, dann gibt es in der Regel Kollateralschäden in der Anwendung.
frei zitiert nach A. Van der Bellen
... also dann paaren wir mal eine komplexe Erkenntnis mit Klugheit in der Interpretation!