rgb_status_led_ws2812.py

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

Control del LED RGB integrado para señalar estados (ej: error, funcionamiento) a través de una interfaz I2C simplificada.

El LED WS2812C es generalmente controlado por el STM32 interno. Este código asume que el firmware expone un registro para cambiar el color. Consulte la documentación técnica para los registros exactos del LED (a menudo requiere un búfer de 3 bytes o más).

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

← Volver a la ficha