#define horario 0
#define anti_horario 1
#define in1 13
#define in2 12
#define in3 14
#define in4 27
uint8_t passoAtual = 1;
void setup() {
Serial.begin(115200);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void gira (uint8_t sentido, unsigned long int passos)
{int i;
if (sentido == horario)
{
for(i = 0; i < passos; i++)
{
switch(passoAtual)
{
case 1: passoAtual = 2;
digitalWrite(in2, 1);
digitalWrite(in1, 0);
break;
case 2: passoAtual = 3;
digitalWrite(in3, 1);
digitalWrite(in2, 0);
break;
case 3: passoAtual = 4;
digitalWrite(in4, 1);
digitalWrite(in3, 0);
break;
case 4: passoAtual = 1;
digitalWrite(in1, 1);
digitalWrite(in4, 0);
break;
}
delay(1000);
}
}
else if (sentido == anti_horario)
{
for(i = 0; i < passos; i++)
{
switch(passoAtual)
{
case 1: passoAtual = 2;
digitalWrite(in3, 1);
digitalWrite(in4, 0);
break;
case 2: passoAtual = 3;
digitalWrite(in2, 1);
digitalWrite(in3, 0);
break;
case 3: passoAtual = 4;
digitalWrite(in1, 1);
digitalWrite(in2, 0);
break;
case 4: passoAtual = 1;
digitalWrite(in4, 1);
digitalWrite(in1, 0);
break;
}
delay(1000);
}
}
}
void loop() {
gira(anti_horario, 48);
}