soft_start_stop_profile.py

Unidad de control de motor con encoder M5Stack (DRV8837DSGR) · Archivo : soft_start_stop_profile.py · Lenguaje : MicroPython · Uso : Démarrage et arrêt progressifs pour éviter les chocs mécaniques et les pics de courant.

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()

← Volver a la ficha