#include <Stepper.h>
// Número de passos por revolução
const int stepsPerRevolution = 200;
// Pinos do motor de passo
const int motorPin1 = 8;
const int motorPin2 = 9;
const int motorPin3 = 10;
const int motorPin4 = 11;
// Inicializa o motor de passo
Stepper myStepper(stepsPerRevolution, motorPin1, motorPin3, motorPin2, motorPin4);
void setup() {
// Configura a velocidade do motor (RPM)
myStepper.setSpeed(30);
Serial.begin(9600);
}
void loop() {
// Leitura dos valores dos sensores LDR
int leftLDR = analogRead(A0);
int rightLDR = analogRead(A1);
// Calcula o erro entre os dois sensores
int error = leftLDR - rightLDR;
// Define a tolerância para evitar oscilações
int tolerance = 20;
// Controle do motor com base no erro
if (abs(error) > tolerance) {
if (error > 0) {
myStepper.step(stepsPerRevolution / 100); // Movimento para a direita
} else {
myStepper.step(-stepsPerRevolution / 100); // Movimento para a esquerda
}
}
// Saída para depuração
Serial.print("Left LDR: ");
Serial.print(leftLDR);
Serial.print(" | Right LDR: ");
Serial.print(rightLDR);
Serial.print(" | Error: ");
Serial.println(error);
delay(100);
}