In diesem Beitrag zeige ich dir wie man die 8×8 LED Dot Matrix mit MAX7219 Chip am Raspberry Pi Zero 2 W mit Python3 programmiert.
Die 8×8 LED Matrix habe ich dir bereits für den Arduino im Beitrag Arduino Lektion 8: Max7219 8×8 LED Shield vorgestellt, hier soll es nun darum gehen, wie dieses am Pi Zero mit Python3 funktioniert.
Benötigte Ressourcen für dieses Projekt
Für den Nachbau des Projektes benötigst du:
- einen Raspberry Pi Zero 2 W*,
- ein Micro USB Kabel*,
- ein USB Ladegerät*,
- eine 8×8 LED Punktmatrix*,
- fünf Breadboardkabel*, weiblich-weiblich, 20 cm
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Du kannst die 8×8 LED Punktmatrix Module auch kaskadierend anschließen (d.h. diese werden hintereinander geschaltet) und somit ein größeres Display erzeugen. Das ist vor allem beim Anzeigen von langen Texten sehr sinnvoll.
Anschluss des 8×8 LED Punktmatrix Moduls
Das verwendete Modul hat eine Stiftleiste mit 5 Pins welche mit VCC, GND, DIN, CS, CLK beschriftet sind.
8×8 LED Punktmatrix | Raspberry Pi Zero 2 W |
---|---|
VCC | 5V |
GND | GND |
DIN | GPIO 10, MOSI |
CS | GPIO 8, CE0 |
CLK | GPIO 11, CLK |
Aktivieren von SPI auf dem Raspberry Pi Zero 2 W
Damit wir die SPI Schnittstelle verwenden können, müssen wir diese zunächst aktivieren. Dieses können wir entweder über eine Konfigurationsdatei erledigen oder recht bequem über das Konfigurationstool „raspi-config“.
Auf der Konsole wird der nachfolgende Befehl ausgeführt:
sudo raspi-config





Programmieren der 8×8 Punktmatrix in Python3
Für die Programmierung der 8×8 LED Punktmatrix verwende ich das Modul „luma“ welches recht gut dokumentiert ist.
Installieren des Moduls „luma“
Damit wir das Modul verwenden können, müssen wir dieses zunächst installieren. Dazu führen wir den nachfolgenden Befehl auf der Konsole aus.
sudo python3 -m pip install --upgrade luma.led_matrix
Text ausgeben
In meinem Fall verwende ich 3 Stück der 8×8 LED Matrix Module so kann man den Text deutlich besser lesen.
Natürlich kannst du das Beispiel auch nur mit einem Matrixmodul ausführen, jedoch musst du dann im Quellcode den Parameter „cascaded“ auf 1 setzen.
from time import sleep from luma.led_matrix.device import max7219 from luma.core.interface.serial import spi, noop from luma.core.legacy import show_message from luma.core.legacy.font import proportional, CP437_FONT text = "Hello World!" serial = spi(port=0, device=0, gpio=noop()) device = max7219(serial, cascaded=3, block_orientation=0, rotate=0, blocks_arranged_in_reverse_order=True) show_message(device, text , fill="white", font=proportional(CP437_FONT), scroll_delay=0.05) sleep(1)
In dem Video zeige ich dir nun die Ausgabe der Zeichenkette „Hello World!“.
Im Quellcode wurde lediglich der erste Buchstabe der jeweiligen Wörter großgeschrieben, auf der Matrix werden aber alle Buchstaben in großen Buchstaben geschrieben.