collapse

* Posts Recentes

timer de 500ms por dropes
[Hoje às 12:36]


China "de férias" por brunus
[Ontem às 20:52]


Procuro memória portátil PC2-5300S-555 por brunus
[22 de Fevereiro de 2020, 15:35]


Cortar Vidro por dropes
[22 de Fevereiro de 2020, 12:54]


STM32 inicio por dio123
[21 de Fevereiro de 2020, 09:49]


Audio - Controlo Volume por almamater
[20 de Fevereiro de 2020, 16:57]


Intercomunicador / video porteiro por beirao
[19 de Fevereiro de 2020, 22:16]


TV Samsung: ver ficheiros ou ligar ao TM por Njay
[19 de Fevereiro de 2020, 13:52]


BOMIST por KammutierSpule
[12 de Fevereiro de 2020, 09:54]


Como criar Gerber F.Cu a partir do ficheiro BottomCu.gbr? por senso
[10 de Fevereiro de 2020, 09:33]

Autor Tópico: Problemas no Loop arduino.  (Lida 1032 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Mardune

  • Mini Robot
  • *
  • Mensagens: 3
Problemas no Loop arduino.
« 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);
}