Galera boa noite

estou com a programação de um bafômetro (utilizando sensor de álcool) e um carrinho,o bafômetro vai ter três LEDs (como vocês irão ver na programação abaixo), so que eu quero que os servos motores do carrinho liguem so quando a LEd2 ativar(indicando que está sem álcool), so que na minha programação ele ja começa ativa!, como faço para resolver este problema?

                                                     Programação: 

int pinSensor = A0;             //Pino Sensor

int led1 = 9;                   //Pino LED que pode fazer o teste do bafômetro

int led2 = 6;                 //Pino LED sem álcool

int led3 = 7;                // Pino LED com álcool

int valor = 0;

#include <Servo.h>// inclui biblioteca de manipulação de servos motores. 

  Servo motor1;

  Servo motor2;

void setup()

{

pinMode(9,OUTPUT);

  pinMode(6,OUTPUT);

  pinMode(7,OUTPUT);

    Serial.begin(9600);             //Inicia porta Serial em 9600 baud

        Serial.println("serial");

 

 

 

motor1.attach(11); //declarando em qual porta o motor1 estará ligado  

  motor2.attach(10); //declarando em qual porta o motor2 estará

}

void loop()

{

    valor =  analogRead(pinSensor);        //Faz a leitura da entrada do sensor

    valor = map(valor, 0, 1023, 0, 100);  //Faz a conversão da variável para porcentagem

    Serial.println(valor);                       //Escreve o valor na porta Serial

    if (valor <=0){                        //Condição, se valor continuar menor ou igual a 0 faça:

        digitalWrite(led1, HIGH);                    //Liga LED1 para teste

        digitalWrite(led2, LOW);//                 

      digitalWrite(led3,LOW);

       

if (led1 == HIGH)

digitalWrite(motor1.attach(11), LOW);

digitalWrite(motor2.attach(10), LOW);

 

 

    }

 if((valor>0) && (valor<30))

  {

       digitalWrite(led1, LOW);

      digitalWrite(led2, HIGH);        // Ligar LED sem álcool          

        digitalWrite(led3, LOW);

if (led2 == HIGH)

digitalWrite(motor1.attach(11), HIGH);

digitalWrite(motor2.attach(10), HIGH);

 

 

     

    }

 

if((valor>30) && (valor<=100))

       {

     digitalWrite(led1, LOW); 

      digitalWrite(led2, LOW);             

        digitalWrite(led3, HIGH);     // Ligar LED com álcool

      if (led3 == HIGH)

digitalWrite(motor1.attach(11), LOW);

digitalWrite(motor2.attach(10), LOW);

 

      }

    delay(1000);

}

Exibições: 371

Responder esta

Respostas a este tópico

Seu código, aparentemente tem alguns problemas de sintaxe. Note que estão faltando algumas chaves { } nas funções if.

fora esses problemas de sintaxe, Como faço para fazer com que o servo só ligue quando  o LED2 ativar?

Preciso de mais tempo para testar o seu código. Estou digitando celular.
Aparentemente, resolvendo os problemas de sintaxe, o seu código funcione.
Segue o código com as chaves que estavam faltando.
int pinSensor = A0;             //Pino Sensor

int led1 = 9;                   //Pino LED que pode fazer o teste do bafômetro

int led2 = 6;                 //Pino LED sem álcool

int led3 = 7;                // Pino LED com álcool

int valor = 0;

#include // inclui biblioteca de manipulação de servos motores. 

  Servo motor1;

  Servo motor2;

void setup()

{

pinMode(9,OUTPUT);

  pinMode(6,OUTPUT);

  pinMode(7,OUTPUT);

    Serial.begin(9600);             //Inicia porta Serial em 9600 baud

        Serial.println("serial");

 

 

 

motor1.attach(11); //declarando em qual porta o motor1 estará ligado  

  motor2.attach(10); //declarando em qual porta o motor2 estará

}

void loop()

{

    valor =  analogRead(pinSensor);        //Faz a leitura da entrada do sensor

    valor = map(valor, 0, 1023, 0, 100);  //Faz a conversão da variável para porcentagem

    Serial.println(valor);                       //Escreve o valor na porta Serial

    if (valor <=0){                        //Condição, se valor continuar menor ou igual a 0 faça:

        digitalWrite(led1, HIGH);                    //Liga LED1 para teste

        digitalWrite(led2, LOW);//                 

      digitalWrite(led3,LOW);

}

       

if (led1 == HIGH) {

digitalWrite(motor1.attach(11), LOW);
digitalWrite(motor2.attach(10), LOW);

     }

 if((valor>0) && (valor<30))  {

       digitalWrite(led1, LOW);
     digitalWrite(led2, HIGH);        // Ligar LED sem álcool          
     digitalWrite(led3, LOW);

}

if (led2 == HIGH) {

digitalWrite(motor1.attach(11), HIGH);
digitalWrite(motor2.attach(10), HIGH);

    }

 
if((valor>30) && (valor<=100))     {

     digitalWrite(led1, LOW); 
    digitalWrite(led2, LOW);             
   digitalWrite(led3, HIGH);     // Ligar LED com álcool

}

    if (led3 == HIGH) {

digitalWrite(motor1.attach(11), LOW);
digitalWrite(motor2.attach(10), LOW);

      }

    delay(1000);

}

OK, obrigado, Quando poder testa meu código e conserta os erros por favor!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço