soft_start_stop_profile.py
Generación de rampa de subida y bajada de PWM para un funcionamiento suave del motor.
Modifica el valor de PWM en incrementos regulares para aumentar o disminuir la velocidad. Esto reduce el estrés mecánico en los engranajes y los picos de corriente al arrancar. Los parámetros de pasos y retraso permiten ajustar la duración de la aceleración.
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()