rgb_status_indicator.py

Unidad de control de motor con encoder M5Stack (DRV8837DSGR) · Archivo : rgb_status_indicator.py · Lenguaje : MicroPython · Uso : Utilisation de la LED RGB WS2812C intégrée pour afficher l'état du moteur (Marche, Arrêt, Erreur).

Control del LED RGB integrado para proporcionar retroalimentación visual sobre el estado de funcionamiento y los errores.

Escribe valores de color en los registros del LED WS2812C. El código incluye la lectura del registro de estado para detectar errores de corriente (INA199A) y encender el LED en rojo. Las direcciones de registro (0x30-0x32, 0x40) son ejemplos típicos para este tipo de controlador.

rgb_status_indicator.py

import time
from m5stack import i2c

ADDR = 0x2F
bus = i2c.I2C(1)

def set_rgb(r, g, b):
    # La LED WS2812C est souvent pilotée via un registre dédié ou une commande spécifique
    # Ici, on suppose une écriture directe dans les registres de couleur (0x30, 0x31, 0x32)
    bus.writeto_mem(ADDR, 0x30, bytes([r]))
    bus.writeto_mem(ADDR, 0x31, bytes([g]))
    bus.writeto_mem(ADDR, 0x32, bytes([b]))

# État: Moteur actif
set_rgb(0, 255, 0) # Vert
print("Moteur actif")

time.sleep(2)

# État: Moteur arrêté
set_rgb(0, 0, 255) # Bleu
print("Moteur arrêté")

time.sleep(2)

# État: Erreur de courant (simulation)
# Vérifier le registre de statut (ex: 0x40) pour les flags d'erreur
status = bus.readfrom_mem(ADDR, 0x40, 1)[0]
if status & 0x01: # Bit d'erreur de courant
    set_rgb(255, 0, 0) # Rouge
    print("Erreur de courant détectée")

← Volver a la ficha