rgb_status_indicator.py

Unité de pilotage moteur à encodeur M5Stack (DRV8837DSGR) · Fichier : rgb_status_indicator.py · Langage : MicroPython · Usage : Utilisation de la LED RGB WS2812C intégrée pour afficher l'état du moteur (Marche, Arrêt, Erreur).

Pilotage de la LED RGB intégrée pour fournir un retour visuel sur l'état de fonctionnement et les erreurs.

Écrit les valeurs de couleur dans les registres de la LED WS2812C. Le code inclut une lecture du registre de statut pour détecter les erreurs de courant (INA199A) et allumer la LED en rouge. Les adresses de registre (0x30-0x32, 0x40) sont des exemples typiques pour ce type de driver.

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

← Retour à la fiche