// Define os pinos para IN1, IN2, IN3, IN4
const int in1 = 2;
const int in2 = 3;
const int in3 = 4;
const int in4 = 5;
// Define a velocidade do motor de passo (em milissegundos)
const int stepDelay = 5;
void setup() {
// Configura os pinos como saída
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop() {
// Gira o motor no sentido horário
for (int i = 0; i < 512; i++) { // 512 passos para uma rotação completa (dependendo do motor)
stepMotor(1);
delay(stepDelay);
}
delay(1000); // Espera 1 segundo
// Gira o motor no sentido anti-horário
for (int i = 0; i < 512; i++) {
stepMotor(-1);
delay(stepDelay);
}
delay(1000); // Espera 1 segundo
}
// Função para dar um passo no motor de passo
void stepMotor(int direction) {
static int step = 0;
if (direction == 1) {
step++;
} else if (direction == -1) {
step--;
}
switch (step % 4) {
case 0: // 1
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
break;
case 1: // 2
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
break;
case 2: // 3
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
break;
case 3: // 4
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
break;
}
}