soft_start_stop_profile.py

Unité de pilotage moteur à encodeur M5Stack (DRV8837DSGR) · Fichier : soft_start_stop_profile.py · Langage : MicroPython · Usage : Démarrage et arrêt progressifs pour éviter les chocs mécaniques et les pics de courant.

Génération d'un ramp-up et ramp-down du signal PWM pour un fonctionnement doux du moteur.

Modifie la valeur du PWM par incréments réguliers pour augmenter ou diminuer la vitesse. Cela réduit les stress mécaniques sur les engrenages et les pics de courant au démarrage. Les paramètres de steps et delay permettent d'ajuster la durée de l'accélération.

soft_start_stop_profile.py

import time
from m5stack import i2c

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

def set_pwm(val):
    bus.writeto_mem(ADDR, 0x01, bytes([val]))

def soft_start(target_pwm=200, steps=50, delay=0.02):
    for i in range(steps):
        pwm = int((target_pwm / steps) * (i + 1))
        set_pwm(pwm)
        time.sleep(delay)

def soft_stop(steps=50, delay=0.02):
    current = 200 # Valeur actuelle supposée
    for i in range(steps, 0, -1):
        pwm = int((current / steps) * i)
        set_pwm(pwm)
        time.sleep(delay)
    set_pwm(0)

print("Démarrage progressif...")
soft_start()
print("Fonctionnement...")
time.sleep(3)
print("Arrêt progressif...")
soft_stop()

← Retour à la fiche