soft_start_stop_profile.py
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()