current_monitoring_safety.py
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)