current_monitoring_safety.py
Monitoring continu du courant consommé par le moteur pour protéger le mécanisme contre les blocages ou surcharges.
Lit la valeur du courant mesurée par l'amplificateur INA199A via I2C. Si le courant dépasse le seuil défini, le PWM est mis à zéro pour arrêter le moteur. Ce mécanisme est essentiel pour la longévité des engrenages et la sécurité du système.
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)