#define botao 14
#define horario 0
#define antiHorario 1
#define IN1 2
#define IN2 4
#define IN3 16
#define IN4 17
int passosDefinidos = 0;
uint8_t passoAtual = 1;
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 == antiHorario){
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);
}
}
}
bool botaoState = 0;
void setup() {
Serial.begin(115200);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
Gira(horario, 48);
}