#include <Servo.h>
Servo servoEsq;
Servo servoDir;
const int ldrEsq = A0;
const int ldrDir = A1;
int valorEsq = 0;
int valorDir = 0;
const int tolerancia = 80;
const int velFrente = 25;
int lerMediaLDR(int porta) {
int soma = 0;
for(int i = 0; i < 10; i++) {
soma += analogRead(porta);
delay(2);
}
return soma / 10;
}
void setup() {
servoEsq.attach(9);
servoDir.attach(10);
pinMode(ldrEsq, INPUT);
pinMode(ldrDir, INPUT);
Serial.begin(9600);
servoEsq.write(90);
servoDir.write(90);
delay(1000);
}
void loop() {
valorEsq = lerMediaLDR(ldrEsq);
valorDir = lerMediaLDR(ldrDir);
int diferenca = valorEsq - valorDir;
Serial.print("Esq: ");
Serial.print(valorEsq);
Serial.print("| Dir: ");
Serial.print(valorDir);
Serial.print(" | Dif: ");
Serial.print(diferenca);
if(diferenca > tolerancia){
servoEsq.write(90 - velFrente);
servoDir.write(90 - 5);
}
else if(diferenca < -tolerancia){
servoEsq.write(90 + 5);
servoDir.write(90 + velFrente);
}
else {
servoEsq.write(90 - velFrente);
servoDir.write(90 + velFrente);
}
delay(300);
}