Saltar la navegación

Stepper con control de ángulo de giro y velocidad

Stepper con control de ángulo de giro y velocidad

/* a partir de YourDuino.com Example Software Sketch

Small Stepper Motor and Driver V1.4 11/30/2013

terry@yourduino.com

movimiento muy configurable por variables, velocidad_ida, velocidad_vuelta, pasos, delay,etc

modificado por www.sacosta.org 09/2019 */

#include <Stepper.h>

//declaración de constantes, variables y pins motor

#define STEPS_PER_MOTOR_REVOLUTION 32 //pasos internos de motor

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //una revolución eje salida son 2048 pasos(step)

int velocidad_ida=500;//puedes fijar la velocidad de ida y vuelta, velocidades superiores a 1000 no son convenientes

int velocidad_vuelta=500;//dividiendo 2048 entre la velocidad sabremos aprox los segundos que tarda en dar una vuelta

int tiempo_paro=1000;//puedes fijar paro entre final e inicio de recorrido

int pasos_a_dar;

//declaración de objeto motor

// Usando la libreria Steper es muy importante seguir las instruciones de conexión y programación

// conexiones A1 a 2, A2 a 3, A3 a 4 y A4 a 5

// en la definición del stepper la seqüencia es Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, 2, 4, 3, 5);

// here in the sequence 1-3-2-4 for proper sequencing. EL PIN 2 VA CONNECTAT A1, EL 3 a A2, EL 4 a A3 i el 5 a A4

Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, 2, 4, 3, 5);

void setup() {

//la libreria se encarga de fijar los pin

//no hace falta declarar los pin como salida

}

void loop() {

pasos_a_dar = STEPS_PER_OUTPUT_REVOLUTION ; // una revolución en sentido horario

small_stepper.setSpeed(velocidad_ida);

small_stepper.step(pasos_a_dar);

delay(tiempo_paro);

pasos_a_dar = - STEPS_PER_OUTPUT_REVOLUTION; // una revolución en sentido antihorario

small_stepper.setSpeed(velocidad_vuelta);

small_stepper.step(pasos_a_dar);

delay(tiempo_paro);

}