Test d'une matrice 8x8 LEDs i2C¶
Ce que l'on va faire ici¶
Voici comment utiliser une matrice de 8x8 LEDs à communication I2C.
Le matériel¶
- La carte micropython
- Une matrice à LEDs 8x8 I2C :
Le montage¶
Sur la Pi Pico, on connecte :
-
les broches SDA/SCL du module connectées en GP16(SDA) /GP17 (SCL) qui corresponde à I2C n°0
-
Vbus (=5V alim USB) ou VSys idéalement ~5V et GND de la carte vers Vcc / GND du module.
ATTENTION : ce module nécessite du 5V en 500mA soit 2.5W
Pré-requis¶
Ce module nécessite une librairie dédiée pour le CI HT16K33.
- https://github.com/hybotics/Hybotics_Micropython_HT16K33
- https://micropython-ht16k33.readthedocs.io/en/latest/matrix.html
- exemple : https://github.com/hybotics/Hybotics_Micropython_HT16K33/blob/master/docs/examples.rst
Une autre ici :
Le code¶
from machine import I2C, Pin, Timer
from ht16k33_matrix import Matrix8x8
import utime
i2c=I2C(0,sda=Pin(16), scl=Pin(17)) # definition I2C
leds=Matrix8x8(i2c) # definition matrice
timer=Timer()
leds.brightness(8) # luminosite
leds.fill(True) # écran entier
leds.show() # affiche les modifs
utime.sleep_ms(2000)
leds.fill(False) # écran entier
leds.show() # affiche les modifs
x=0
y=0
compt=0
def loop(timer):
global compt,x,y
if x==0 and y==0 :
leds.fill(False) # écran entier
leds.show() # affiche les modifs
leds.pixel(x,y,True)
leds.show()
compt=compt+1
x=compt%8
if compt%8==0 :
y=y+1
if y==8 :
y=0
timer.init(freq=20, callback=loop)
Résultat¶
Après un affichage transitoire de toutes les LEDs, les colonnes se remplissent successivement.