Hola, estoy buscando la forma de acelerar y desacelerar un motor a pasos con diferentes valores, tengo un Motor a pasos acoplado a una polea la cual sube una carga de 1Kg en el momento de elevación debe tener una rampa más larga y en el momento de desacelerar una rampa corta,
Probé con la librería accelstepper pero solo se puede configurar un solo valor para los dos , ¿alguien sabe cómo solucionar esto?, en internet me aparece que hay una versión de la librería accelstepper que cuenta con deceleration, pero no la encuentro.
#include <AccelStepper.h>
// Define los pines de los drivers de motor
#define DIR_PIN 2
#define STEP_PIN 3
// Crea un objeto AccelStepper
AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN);
void setup() {
stepper.setMaxSpeed(1000); // Velocidad máxima del motor
stepper.setAcceleration(1000); // Tasa de aceleración (por ej. 1000 pasos/s^2)
stepper.setDeceleration(500); // Tasa de desaceleración (por ej. 500 pasos/s^2)
}
void loop() {
// Mueve el motor a una posición deseada con aceleración y desaceleración diferentes
stepper.moveTo(10000); // Mueve a la posición 10000
stepper.runToPosition(); // Espera a que el motor llegue a la posición
stepper.moveTo(0); // Mueve a la posición 0
stepper.runToPosition(); // Espera a que el motor llegue a la posición
}
Moderador:
Por favor, lee las Normas del foro y publica/edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado/editado, lo cortas y click en (<CODE/>)
No tengo problema para mover varios motores, mi problema es con la aceleración y desaceleración, necesito acelerar lento y desacelerar rápido.
Leí que existía una versión de accelstepper que aceptaba valores de;
void setup() {
stepper.setMaxSpeed(1000); // Velocidad máxima del motor
stepper.setAcceleration(1000); // Tasa de aceleración (por ej. 1000 pasos/s^2)
stepper.setDeceleration(500); // Tasa de desaceleración (por ej. 500 pasos/s^2)
}