Três LDRs comandando motor em robô sumô

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

image

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á!!!!!

Olá @nicolasmmp,
ou falta parte de seu código ou o motor só roda pra um lado.
Para monitorar o que ocorre, imprime o valor de LF.

RV mineirin

Já imprimi o valor de LF e está conferindo. O código é esse mesmo. Acredito que seja bug do simulador mesmo...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.