/*
Uso de la librería Stepper para el manejo de motores paso a paso.
Se reduce mucho la cantidad de código a utilizar.
El uso de motores paso a paso es muy usual en proyectos de arduino.
Por esto, el IDE incorpora por defecto esta librería especializada.
Se usa mismo circuito del capítulo previo.
Se reduce mucho el código para lograr lo mismo manualmente.
*/
#include <Stepper.h>
// Cantidad de pasos que requiere el motor para lograr
// un giro completo del eje. El modelo utilizado necesita 2048 pasos.
// La librería permite utilizar solamente la secuencia de paso completo con dos bobinas.
// Para la mayorías de casos no es un problema mayor.
// Los 4 parámetros siguientes son los pines a los cuales se conecta el módulo o driver del motor.
// Existe un pequeño error de la librería en la secuencia, por eso se intercambia el orden de los pines 9 y 10 para solucionar esto.
// En otro caso se debería modificar la librería.
Stepper motor1(2048, 8, 10, 9, 11);
void setup() {
motor1.setSpeed(2); // en RPM (valores de 1, 2 o 3 para 28BYJ-48)
// No hay muchas posibilidades de velocidades del motor. Pero esto es por la reducción mecánica.
// La relación de reducción aumenta el par del motor, pero baja mucho la velocidad
// Por el tiempo mínimo entre paso y paso de este modelo se pueden setear esos tres valores de RPM
}
void loop() {
// se aplica una determinada cantidad de pasos con esta función
// en este caso 2048 pasos son para una vuelta completa
motor1.step(512); // cantidad de pasos. Se puede poner cualquier valor de cantidad de pasos.
delay(2000);
// Giro en sentido opuesto (muy simple)
motor1.step(-512); // número negativo indica que gire en sentido opuesto
delay(2000);
}