Afficheur matrices de LED 8x8 MAX7219
Ce tutoriel explique comment mettre en oeuvre un afficheur 4 matrices de LED 8x8 MAX7219 sur bus SPI en MicroPython. Merci à Merci à Christophe Priouzeau & Gérald Hallet pour cet exemple.
Matériel requis
- La carte NUCLEO-WB55
- Un afficheur 4 matrices de LED 8x8 MAX7219
- 5 câbles dupont femelle-mâle (ou mâle-mâle, selon le brochage de votre afficheur)
L’Afficheur 4 matrices de LED 8x8 MAX7219 :

Crédit image : Heliantha
Cet afficheur doit être connecté comme suit au bus SPI1 de la NUCLEO-WB55, à l’aides de 5 câbles dupont :

Les broches doivent correspondre comme suit :
broche NUCLEO-WB55 | broche MAX7219 |
GND | GND |
VCC | VCC |
SCK/D13 | CLK |
MOSI/D11 | DIN |
D9 | CS |
Là encore, les dénominations de celles-ci peuvent changer selon l’afficheur dont vous disposez.
Le code MicroPython pour afficher un texte de 4 caractères
Le code qui suit affiche “1234” sur la matrice de LED.
Les scripts présentés ci-après sont disponibles dans la zone de téléchargement.
Il faut ajouter le fichier max7219.py dans le répertoire du périphérique PYBLASH.
Editez maintenant le script main.py et collez-y le code qui suit :
# Objet du script :
# Mise en oeuvre d'un afficheur à matrices de LED 8x8 Max7219 sur bus SPI
import max7219 # Pilote de l'afficheur
from machine import Pin, SPI # Pour piloter le bus SPI
from time import sleep # Pour temporiser
# Nome de colonnes de LED sur l'afficheur
NB_COL = const(32)
# Nombre de lignes de LED sur l'afficheur
NB_LIG = const(8)
# Paramètre d'affichage (voir plus bas)
DECAL_DTE = const(0)
DECAL_BAS = const(1)
negatif = False
# La broche "Chip Select" du bus SPI sera "D9"
CHIP_SELECT = 'D9'
# Initialisation du bus SPI 1
spi = SPI(1)
sleep(1)
# Instanciation du pilote de la matrice de LED
display = max7219.Max7219(NB_COL, NB_LIG, spi, Pin(CHIP_SELECT))
# La luminosité des LED sera 8 (valeur comprise entre 0 et 15)
display.brightness(8)
# Le fond du texte sera constitué de LED éteintes
display.fill(negatif)
# Le texte affiché sera "1234"
# Il sera décalé vers la droite de DECAL_DTE colonnes de LED
# Il sera décalé vers le bas de DECAL_BAS lignes de LED
# Le texte sera constitué de LED allumées
display.text('1234', DECAL_DTE, DECAL_BAS, not negatif)
# Affiche le texte
display.show()
Le code MicroPython pour faire défiler un texte
Le code qui suit fait défiler vers la gauche, en “scrolling”, le texte “STMicroelectronics”.
Les scripts présentés ci-après sont disponibles dans la zone de téléchargement.
Il faut ajouter le fichier max7219.py dans le répertoire du périphérique PYBLASH.
Editez maintenant le script main.py et collez-y le code qui suit :
# Objet du script
# Code avec défilement de texte
import max7219 # Pilotes de l'afficheur
from machine import Pin, SPI # Pilotes des entrées-sorties et du bus SPI
from time import sleep_ms # Pour temporiser
# Nome de colonnes de LED sur l'afficheur
NB_COL = const(32)
# Initialisation du bus SPI1
spi = SPI(1)
sleep_ms(1000)
# Instanciation de l'afficheur
display = max7219.Max7219(32, 8, spi, Pin('D9'))
negatif = False
def display_text_scroll(text, inv):
# pour 4 blocs de LED
# Calcul du décalage vers la gauche : len(text) * -8 - 1
for p in range(NB_COL, len(text) * -8 - 1, -1):
# Eteint toutes les LED
display.fill(inv)
# Affiche text décalé de p colonnes
display.text(text, p, 0, not inv)
display.show()
# Temporisation de 50 millisecondes entre deux décalages
sleep_ms(50)
# Programme principal
while True:
display_text_scroll("STMicroelectronics", negatif)