current_monitoring_safety.py

Unidad de control de motor con encoder M5Stack (DRV8837DSGR) · Archivo : current_monitoring_safety.py · Lenguaje : MicroPython · Uso : Surveillance du courant moteur en temps réel pour déclencher un arrêt d'urgence en cas de surcharge.

Monitoreo continuo del consumo de corriente del motor para proteger el mecanismo contra bloqueos o sobrecargas.

Lee el valor de corriente medido por el amplificador INA199A a través de I2C. Si la corriente supera el umbral definido, el PWM se establece en cero para detener el motor. Este mecanismo es esencial para la longevidad de los engranajes y la seguridad del sistema.

current_monitoring_safety.py

import time
from m5stack import i2c

ADDR = 0x2F
bus = i2c.I2C(1)
MAX_CURRENT_MA = 1000 # Seuil de sécurité

while True:
    # Lecture du courant (INA199A) via registre dédié (ex: 0x15, 2 octets)
    current_data = bus.readfrom_mem(ADDR, 0x15, 2)
    current_ma = int.from_bytes(current_data, 'little')
    
    print(f"Courant: {current_ma} mA")
    
    if current_ma > MAX_CURRENT_MA:
        print("URGENCE: Surcharge détectée, arrêt moteur")
        # Arrêt immédiat (PWM 0)
        bus.writeto_mem(ADDR, 0x01, bytes([0]))
        # Optionnel: Allumer LED Rouge
        bus.writeto_mem(ADDR, 0x30, bytes([255]))
        break
    
    time.sleep(0.1)

← Volver a la ficha