rgb_status_led_ws2812.py
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()