Raspberry Pi Pico #10: 8×8 LED Punktmatrix

In diesem Beitrag zeige ich dir, wie du die 8×8 LED Punktmatrix am Raspberry Pi Pico mit MicroPython programmieren kannst.

Raspberry Pi Pico mit 8x8 LED Punktmatrix
Raspberry Pi Pico mit 8×8 LED Punktmatrix

Die 8×8 LED Punktmatrix habe ich dir bereits im Beitrag Arduino Lektion 8: Max7219 8×8 LED Shield für den Arduino vorgestellt, hier soll es nun darum gehen wie das am Raspberry Pi Pico funktioniert.

Benötigte Ressourcen für das Projekt

Für den Nachbau des Projektes benötigst du:

Den Raspberry Pi Pico bekommst du zum einen als einzelne Platine und mit ein paar Features mehr als MAKER Pi Pico von Cytron.

Für den Pi Pico habe ich auch eine kleinere Erweiterungsplatine entwickelt, auf welche dieser gesteckt werden kann und die Pins recht einfach mit Breadboardkabel abgegriffen werden kann.

Anschluss der 8×8 LED Punktmatrix an den Pi Pico

Die 8×8 LED Punktmatrix wird über der SPI Schnittstelle programmiert und somit benötigen am Pi Pico folgenden Anschluss.

8×8 LED PunktmatrixRaspberry Pi Pico
VCC3.3V
GNDGND
DINGP7
CSGP5
CLKGP6

Hier nun der Aufbau der Schaltung:

Raspberry Pi Pico mit 8x8 LED Punktmatrix
Raspberry Pi Pico mit 8×8 LED Punktmatrix

Programmieren der 8×8 LED Punktmatrix mit MicroPython

Python Modul zum steuern einer 8×8 LED Punktmatrix

Zum steuern oder eher zum Programmieren der 8×8 LED Punktmatrix verwende ich das Modul „max7219.py“ welches du kostenfrei vom GitHub Repository mcauser / micropython-max7219 als ZIP-Datei herunterladen kannst.

Das nachfolgende Beispiel habe ich vom englischen Beitrag Raspberry Pi Pico(8): MAX7219 8×8 LED display on-board temperature entnommen und leicht umgeschrieben.

from machine import Pin, SPI, ADC
import max7219
from utime import sleep

MAX7219_NUM = 1
MAX7219_INVERT = False
MAX7219_SCROLL_DELAY = 0.15
cs_pin = 5

spi = SPI(0)
display = max7219.Matrix8x8(spi=spi, cs=Pin(cs_pin), num=MAX7219_NUM)
display.brightness(2)
    

while True:
   text = "Hello World!"
   
   for p in range(MAX7219_NUM * 8, len(text) * -8 - 1, -1):
       display.fill(MAX7219_INVERT)
       display.text(text, p, 1, not MAX7219_INVERT)    # Display in the x, y position(string, x, y, color=1) 
       display.show()
       sleep(MAX7219_SCROLL_DELAY)    

Ausgabe der Zeichenkette „Hello World!“.

Fazit & Ausblick

Ein Problem war das richtige Modul zur Programmierung zu finden. Ein erster Versuch mit der Adafruit Bibliothek MAX7219 war nicht sehr erfolgreich, aber auch hier gilt „Google ist dein Freund“ und so bin ich auf der Seite von Ceiling Tsai gestoßen, wo dieser Aufbau recht gut in Englisch beschrieben wurde.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.