Agregar aceleracion a un Stepper

Hola!

Tengo el siguiente Sketch que funciona perfectamente, lo único es que no tiene aceleración y desaceleración. El drivers no tiene manera de controlar y el software que envía la información a “Arduino Uno”, tampoco le envía información de aceleración y desaceleración. Solo envia Pulso y Direccion. La velocidad la controlo desde el Sketch. El problema que tengo es que acelera y frena de golpe y se mueve todo.

Adjunto el manual del Drivers por si hace falta. Es un DM542E.

Me podrán indicar como agregar la rampa de aceleración y desaceleración?

#include <AccelStepper.h>

#define AVAILABLE_MOTORS 1

// Configuration of pins
AccelStepper motors[AVAILABLE_MOTORS] = {AccelStepper(1, 9, 8)};

uint8_t buffer[7];
uint8_t response[22];
char directions[4]; //It stores the directions for each motor.
uint32_t targets[4]; //It stores the amount of steps to go for each motor.

char incomingByte;
unsigned char chrRead;

long prev_time=0;
long time=0;

void setup() {
// Initialize serial:
Serial.begin(9600);
Serial.setTimeout(1000);

/* Initial directions and speed for each one of the available motors*/
motors[0].setMaxSpeed(500);
motors[0].setSpeed(4); //Initial speed 4 steps/sec;
directions[0]=1; //Direction 1 clockwise; -1 counter-clockwise;
targets[0]=0;

}

DM542E_V1.0.pdf (685 KB)

Por favor lee las normas del foro.
Edita tu código usando etiquetas.

Tienes que usar el metodo setAcceleration
https://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#adfb19e3cd2a028a1fe78131787604fd1

Hola Jose, muchas gracias por tu respuesta!

Agregue lo siguiente, debajo de donde se asigna la velocidad:

motors[0].setAcceleration(50);

Pero no he logrado ningún cambio. Es correcto lo que agrege?

Muchas gracias!

Los valores de aceleracion/deceleracion estan relaccionados con la velocidad y los valores correctos los tendras probando diferentes valores.En tu sketch leo esto: motors[0].setSpeed(4);(no dices que motor usas ni si usas micropasos,pero me parece bajisimo) lo cual significa una velocidad de 4 pasos por segundo ,si lees la definicion del enlace que puse de setAcceleration ,el parametro que le pases es la aceleracion en pasos por segundo cada segundo y en tu sketch usas 50...no puedes poner una aceleracion por segundo mayor que la velocidad.