8x8 LED Matrix anschließen und programmieren

8x8 LED Matrix anschließen und programmieren Titelbild

Folgende Teile braucht ihr für die Anleitung

Spiele Programmieren mit der LED Matrix Produktbild

Spiele Programmieren mit der LED Matrix | 19.95€

8x8 LED Matrix mit MAX7219 Chip  Produktbild

8x8 LED Matrix mit MAX7219 Chip | 5.95€

Matrix anschließen und Programmieren

Mit der 8 x 8 LED Matrix und dem max7219 Chip können wir insgesamt 64 LEDs ansteuern. Dank dem max7219 Chip auf der Matrix müssen wir dabei nicht jede LED einzeln ansprechen, sondern können uns nur mit diesem Chip unterhalten. Dieser übernimmt dann für uns das Ansprechen der einzelnen LEDs. Für die Kommunikation von Chip zum Raspberry Pi brauchen wir noch SPI. Wenn du das noch nicht aktivierst hast, solltest du das jetzt machen! Mehr Infos gibt es auch auf cw42.de/spi

Jetzt müssen wir noch die benötigten Bibliotheken dafür installieren. Das machen wir mit den folgenden Terminalbefehlen.

git clone https://github.com/coding-world/max7219
cd max7219
sudo apt-get install python-dev python-pip
sudo pip install spidev
sudo python setup.py install
cd

Jetzt, da die Bibliothek richtig installiert ist, müssen wir uns nur noch darum kümmern, das Display an den Raspberry Pi anzuschließen.

8x8 LED Matrix am Raspberry Pi

Anschlüsse Raspberry Pi Anschlüsse LED Matrix
5V 1 - VCC
GND 2 - GND
GPIO 10 (MOSI) 3 - DIN
GPIO 8 (SPI CE0) 4 - CS
GPIO 11 (SPI CLK) 5 - CLK

Zum Testen kannst du das Beispiel Programm ausführen, das bei der Bibliothek dabei ist.

sudo python max7219/examples/matrix_test.py

Wenn du alles richtig angeschlossen hast, solltest du jetzt bei dir auf der Matrix einen bewegenden Text sehen. In diesem Beispiel werden die Funktionen gezeigt, welche die Matrix hat. Mit Str/Ctrl + c kannst du das Programm beenden. Doch natürlich wollen wir jetzt auch zu unserem ersten eigenen Programm kommen.

import max7219.led as led

matrix = led.matrix()

matrix.show_message("MOIN MOIN")

matrix.letter(0, ord("1"))

Wenn du das Programm ausführst, sollte bei dir zuerst der Text "Moin Moin" und dann die "1" ausgegeben werden. Doch erstmal das Programm erklärt. In Zeile 1 importieren wir die benötigten Bibliotheken. Da wir nicht die ganze max7219 Bibliothek brauchen, können wir in Zeile 1 mit max7219.led den benötigten Teil noch genauer spezifizieren und mit as led kürzen wir das Ganze ab.

In Zeile 3 legen wir dann die Grundlagen für das spätere Arbeiten und Speichern in der Variablen matrix das Objekt zum Erstellen der Display Daten. Objekte haben wir schon kurz behandelt. Objekte sind sehr vielseitig und haben bestimmte Funktionen, welche wir auf das Objekt ausführen.

In Zeile 5 rufen wir dann die Funktion .show_message() auf. Mit dieser können wir einen Text auf der Matrix wiedergeben, welcher sich mit einer Laufschrift über den Bildschirm bewegt. Hier übergeben wir als ersten Parameter nur den Text, der dargestellt werden soll.

In Zeile 7 stellen wir auch wieder etwas dar, benutzen dafür aber die .letter() Funktion. Diese braucht mindestens zwei Parameter, zuerst die Matrix und dann den Buchstaben/Zahl. Doch wir können keine direkten Text übergeben, sondern müssen das zuerst in einen Unicode umwandeln. Ein Unicode ist eine standardisierte Nummer für Zeichen. Dafür können wir einfach die ord() Funktion benutzen.

Aber natürlich gibt es noch weitere Funktionen, die wir benutzen können.

Funktion
.brightness() Mit dieser Funktion lässt sich die Helligkeit der LEDs regeln. Als Parameter kann ein Wert zwischen 0 und 15 übergeben werden.
.clear() Löscht die gesamten Eingaben, keine LED leuchtet mehr
.scroll_left() Verschiebt alle Eingaben nach Links
.scroll_right() Verschiebt alle Eingaben nach Rechts
.invert(1) Invertiert die Eingaben des Displays. Heißt, ein Buchstabe würde nicht mehr angezeigt werden, sondern nur der Ausschnitt
.orientation() Dreht die Matrix, mögliche Werte sind: 0, 90, 180, 270
.pixel(x, y, value ) Schaltet eine einzelne LED. Parameter 1: X Position; Parameter 2: Y Position; Parameter 3 ob die LED leuchten soll (1 = leuchtet)

Diese Funktion müssen immer auf das Matrix Objekt aufgerufen werden. Also: matrixObjekt.funktion().

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!