LusoRobótica - Robótica em Português

Robótica => Discussão geral sobre robótica => Tópico iniciado por: Mardune em 06 de Maio de 2011, 16:24

Título: Problemas no Loop arduino.
Enviado por: Mardune em 06 de Maio de 2011, 16:24
Boa tarde a todos,

Estou fazendo um código para um sumô de robô e estou com problemas em fazer determinadas ações:

1 - quero que o robô vá para frente ate que o sensor de linha frente passe para o estado HIGH;

2 - Quando ele ficar em HIGH, deverá desligar o motorFrente ligar o motorTras;

3 - Quando o sensor de linha tras passe para o estado HIGH, deverá fazer a função 1.

Obs: Consigo fazer que ele faça somente usando o sensor de linha frente, nao consigo fazer com os dois sensores. Agradeço a ajuda de todos.

Segue código:


int SIN__F_0   = 0;
int SIN__T_1   = 1;
int M____F_6   = 6;
int M____T_7   = 7;

void setup ()
{
  pinMode(0, INPUT);
  pinMode(1, INPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);

  pararMotores(); 

  delay(1000); //TEMPO PARA O INICIO DA LUTA

  digitalWrite(M____T_7, HIGH);      // da um tombo para tras
  delay(1000);
  pararMotores();

}                                 //fim void setup


void loop()

{

  SIN__F_0   = digitalRead(SIN__F_0);
  SIN__T_1   = digitalRead(SIN__T_1);   

  if ((SIN__F_0 == LOW) && (SIN__T_1 == LOW))
  {
      motorFrente();
      //delay(1000);
  }
   
   else if ((SIN__F_0 == HIGH) && (SIN__T_1 == LOW))
   {
      //pararMotores();
      //delay(1000);
      motorTras();
      //delay(1000);   
   }
    else //if ((SIN__F_0 == LOW) && (SIN__T_1 == LOW))
    {
        //pararMotores;
       motorFrente();
    }  //delay(5000);

}

void pararMotores() {
  digitalWrite(M____T_7, LOW);
  digitalWrite(M____F_6, LOW);     
}

void motorFrente() {
  digitalWrite(M____T_7, LOW);
  digitalWrite(M____F_6, HIGH);
}

void motorTras()  {
  digitalWrite(M____T_7, HIGH);
  digitalWrite(M____F_6, LOW);
}