collapse

* Links de Robótica

* Posts Recentes

Carro telecomandado atraves do PC por almamater
[Hoje às 17:58]


Ontem pequei... por senso
[Hoje às 16:47]


Escolher Multimetro por filjoa
[Hoje às 14:46]


Qual a melhor técnica? por dropes
[Hoje às 14:30]


Wamp Server por jm_araujo
[Ontem às 23:07]


TV Avariou - Sanyo por almamater
[Ontem às 13:54]


Ligar telefone fixo a arduino por helderjsd
[Ontem às 11:07]


Procuro cristal de 30.875 Mhz? por Hugu
[25 de Setembro de 2016, 17:20]


Encomenda Colectiva N2-2016[@Mouser - Aberta a pedidos!] por Hugu
[25 de Setembro de 2016, 16:42]


Mosfet trocado? por almamater
[25 de Setembro de 2016, 12:42]

Autor Tópico: Problemas no Loop arduino.  (Lida 544 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);
}