rgb_status_led_ws2812.py
Contrôle de la LED RGB embarquée pour signaler des états (ex: erreur, fonctionnement) via une interface I2C simplifiée.
La LED WS2812C est généralement pilotée par le STM32 interne. Ce code suppose que le firmware expose un registre pour changer la couleur. Vérifiez la documentation technique pour les registres exacts de la LED (souvent nécessitant un buffer de 3 octets ou plus).
rgb_status_led_ws2812.py
import smbus
import time
ADDR = 0x24
bus = smbus.SMBus(1)
# Registre de contrôle LED (Exemple fictif basé sur architecture M5Stack)
# Souvent les LEDs WS2812 sont contrôlées par un registre dédié ou via SPI interne
# Ici, on suppose un registre de commande LED accessible via I2C
REG_LED_CTRL = 0x50
# Fonction pour envoyer une couleur (R, G, B)
def set_led_color(r, g, b):
# Les WS2812 nécessitent souvent un format spécifique ou un buffer
# Exemple simplifié : Écriture directe si le firmware supporte le mapping RGB direct
# Sinon, il faut envoyer la séquence GRB
data = [g, r, b] # WS2812 est souvent GRB
try:
# Note : Vérifier si le module accepte les écritures de bloc pour la LED
# ou s'il faut passer par un registre de mode puis de valeur
bus.write_i2c_block_data(ADDR, REG_LED_CTRL, data)
except:
print("Erreur LED")
def blink_red():
while True:
set_led_color(255, 0, 0)
time.sleep(0.5)
set_led_color(0, 0, 0)
time.sleep(0.5)
if __name__ == "__main__":
print("Test LED Rouge")
blink_red()