#include <Ticker.h>
Ticker tickPeriodico;
enum direcion {CW,CCW};
const int DIR = 2;
const int STEP = 4;
volatile int contador = 0;
bool estado = 0;
void setup()
{
Serial.begin(115200);
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
stepperMotor(3, 100, CCW);
//stepperMotor(3, 100, CW);
}
void loop()
{
//stepperMotor(3, 100, CCW);
// stepperMotor(3, 100, CW);
}
void stepperMotor(int speed, int pasos, int direccion)
{
tickPeriodico.attach_ms(speed, FuncionPeriodica, pasos);
if(direccion == CW)
{
digitalWrite(DIR, HIGH);
}
else
{
digitalWrite(DIR, LOW);
}
}
void FuncionPeriodica(int pasos) {
estado = !estado;
digitalWrite(STEP,estado);
contador++;
if(contador >= pasos*2)
{
tickPeriodico.detach();
}
}