Olá amigos, estou projetando um robô de sumô no TinkerCAD. A ideia é a mesma de todos os robôs sumo: LDRs irão monitorar se o veículo não está muito perto da borda, e caso esteja, executarão rotinas para fazer o carinho sair, nesse caso, dar a ré.
- LDR no escuro absoluto: envia o número 1017 ao arduino
- LDR no claro absoluto : envia 344 ao arduino
Comecei a programação pelos LDRs.
#define LDRFR A0 //LDR FRONTAL
#define LDRESQ A1 //LDR ESQUERDA
#define LDRDIR A2 //LDR DIREITA
#define MOTORDF 11 //MOTOR DIREITA FRENTE
#define MOTORDA 10 //MOTOR DIREITA ATRÁS
#define MOTOREF 6 //MOTOR ESQUERDA FRENTE
#define MOTOREA 5 //MOTOR ESQUERDA ATRÁS
int LF = 0;
int LD = 0;
int LE = 0;
void setup()
{
Serial.begin(9600);
pinMode(MOTORDF, OUTPUT);
pinMode(MOTORDA, OUTPUT);
pinMode(MOTOREF, OUTPUT);
pinMode(MOTORDA, OUTPUT);
pinMode(LDRFR, INPUT);
pinMode(LDRDIR, INPUT);
pinMode(LDRESQ, INPUT);
}
void loop()
{
//Conversão LDR
int LF = analogRead(LDRFR);
int LD = analogRead(LDRDIR);
int LE = analogRead(LDRESQ);
Serial.println(LF);
//LDR Frontal na linha branca
if(LF <= 400) //Se o LDR estiver em uma área clara (limite da arena)
{
digitalWrite(MOTOREA, HIGH); //Motor esquerda ré
digitalWrite(MOTORDA, HIGH); //Motor direita ré
digitalWrite(MOTOREF, LOW);
digitalWrite(MOTORDF, LOW);
}
O acionamento funcionou certinho, porém quando o valor do LDR volta ao escuro, ele não para de dar ré. Tentei colocar um else if e parou, porém como serão três LDRs, ele vai bugar pq um manda ligar e o outro desligar, ao mesmo tempo.
Queria saber se isso isso era pra acontecer, mesmo o LDR não estando nesse valor, a rotina continuar acontecendo. Estou cogitando ser bug do Tinkercad, mas queria pedir a opinião de vcs.
Obrigado desde já!!!!!