rgb_status_led_ws2812.py

Unit 4-Encoder Motor Driver (DRV8837DSGR) · Fichier : rgb_status_led_ws2812.py · Langage : Python · Usage : Utilisation de la LED RGB WS2812C intégrée pour afficher l'état du système.

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()

← Retour à la fiche