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

  1. La carte NUCLEO-WB55
  2. Un afficheur 4 matrices de LED 8x8 MAX7219
  3. 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 :

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 :

Connexion afficheur 4 matrices de LED 8x8 MAX7219

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)