Ir ao conteúdo
  • Cadastre-se

Lucas090

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

posts postados por Lucas090

  1. É mesmo '-' Era para usar as duas linhas... esqueci do lcd.begin(16, 2);

     

    Citação

    #include <LiquidCrystal.h>

    LiquidCrystal lcd(2, 3,4,5, 6,7);

    int valor_sensor =0;
    const int buzzer = 8;

    void setup ()
    {
    Serial.begin(115200);
    pinMode(A1, INPUT);
    pinMode(8, OUTPUT);
    lcd.begin(16, 2);
    lcd.print(" Bafometro ");
    lcd.setCursor(0,1);
    lcd.print("     Sensor     ");
    delay(2000);

    }

    void loop ()
    {
    valor_sensor = analogRead(A1);

    if (valor_sensor >= 0 and valor_sensor <= 50)
      {
      lcd.begin(16, 2);
      lcd.print(" Baixo ou nulo  ");
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
      }
      else if (valor_sensor >= 51 and valor_sensor <= 200)
      {
        lcd.begin(16, 2);
        lcd.print(" Baixo ");
        lcd.setCursor(0,1);
        lcd.print(valor_sensor);
      }
      else if (valor_sensor >= 201 and valor_sensor <= 400)
      {
      lcd.begin(16, 2);
      lcd.print(" Alto ");
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
      tone(8, 500);
      }
      else if (valor_sensor >= 401 and valor_sensor <= 600)
      {
      lcd.begin(16, 2);
      lcd.print(" Altissimo ");
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
      tone(8, 500);
      }
      else if (valor_sensor >= 601)
      {
       lcd.begin(16, 2);
       lcd.print(" Chame o Taxi! ");
       lcd.setCursor(0,1);
       lcd.print(valor_sensor);
       tone(8, 500);cv
      }
      }

     

     Esta certo agora, pessoal ?

    adicionado 6 minutos depoi
    Citação

     

     

  2. Beleza, valeu mesmo :atirador:

    Assim que possível volto aqui relatar ( espero que para dizer que funcionou perfeitamente :rezando: )

    adicionado 15 minutos depois
    5 horas atrás, Bommu Perneta disse:

    Isso, às vezes pode bugar algum intervalo. Mas é isso aí... os pinos não estão conflitando nem para o buzzer , lcd ou o sensor. O resto é código.

     

    Faça um test/monte e veja se está de acordo. Se não tiver você pode ir comentando parte do teu código do void loop para ver onde está o erro.

    adicionado 3 minutos depois

    Só estou estranhando esse digitalWrite(8, HIGH);

    em todos ... teria que ver a função disso ai se é para ligar um led... relé ou sei lá... se for um led seria bom ligar outra porta para distinguir que parte do teu código que foi que ligou o mesmo.

     

    Acho que o correto deveria ser isso:

     

    pinMode(8,HIGH);

     Não?

     

    E acho que eu poderia fazer uma função para tocar o buzzer numa faixa de 200 a 600

  3. Seria isso:

    Citação

     

    #include <LiquidCrystal.h>

    LiquidCrystal lcd(2, 3,4,5, 6,7);

    int valor_sensor =0;

    void setup ()
    {
    Serial.begin(9600);
    pinMode(A1, INPUT);
    pinMode(8, OUTPUT);
    lcd.clear();
    lcd.print(" Bafometro ");
    lcd.setCursor(0,1);
    lcd.print("     Sensor     ");
    delay(2000);

    }

    void loop ()
    {
    valor_sensor = analogRead(A1);

    if (valor_sensor >= 0 and valor_sensor <= 50)
      {
      lcd.print(" Baixo ou nulo  ");
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
      }
      else if (valor_sensor >= 51 and valor_sensor <= 200)
      {
        lcd.print(" Baixo ");
        lcd.setCursor(0,1);
        lcd.print(valor_sensor);
      }
      else if (valor_sensor >= 201 and valor_sensor <= 400)
      {
       lcd.print(" Alto ");
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
      digitalWrite(8, HIGH);
      }
      else if (valor_sensor >= 401 and valor_sensor <= 600)
      {
        lcd.print(" Altissimo ");
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
      digitalWrite(8, HIGH);
      }
      else if (valor_sensor >= 601)
      {
       lcd.print(" Chame o Taxi! ");
       lcd.setCursor(0,1);
       lcd.print(valor_sensor);
       digitalWrite(8, HIGH);
      }
      }

     

     

  4. Você desconsidera então o tempo de aquecimento? Ouvi em algum lugar que era nerscessário, mas isso é o de menos :tw_grimace:

    Sou bem leigo em programação mesmo, eu queria basicamente que o display mostrasse o nível de alcool lido pelo sensor  constatemente( que eu imagino que seria pela porta Analogica, certo?) e caso atingisse  um determinado valor, printasse uma mensgem e tocasse o buzzer :tw_grimace:

     

    Alguma dica? Onde eu mudo?

  5. Alguém poderia corrigir urgentemente essa questão ? :tw_astonished:

     

    Essa programação de arduino está correta? Seria um bafômetro que mostra o valor serial constantemente.

    #include <LiquidCrystal.h>
    
    #define sensor  9  // Connnect MQ-3 Sensor to pin-9
    #define buzzer  8  // Connnect Buzzer to pin-8 
    int valor_sensor = 0;
    LiquidCrystal lcd(2, 3,4,5, 6,7);
    // LCD PIN   -    ARDUINO PIN
    // RS        -    2 
    // RW        -   GND   
    //  E        -    3
    // D4        -    4  
    // D5        -    5
    // D6        -    6
    // D7        -    7
    void setup() {
      valor_sensor = analogRead(A0);
      lcd.begin(16, 2);
      pinMode(sensor, INPUT);
      pinMode(buzzer, OUTPUT);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando... 10%   ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando... 20%   ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando...30%    ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando...40%    ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando...50%    ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando...60%    ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando...70%    ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando...80%    ");
      delay(1800);
      lcd.clear();
      lcd.print(" Bafometro ");
      lcd.setCursor(0,1);
      lcd.print("     Carregando...90%    ");
      delay(1800);
      }
    void sens(){
      int i=1;
      lcd.clear();
      lcd.print("Alcool Detectado");
      digitalWrite(buzzer, HIGH);
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
      }
      
    void scn(){
      lcd.clear();
      lcd.print(" Analizando... ");
      digitalWrite(buzzer, LOW);
      lcd.setCursor(0,1);
      lcd.print(valor_sensor);
    }
    void loop() 
    {
         if(digitalRead(sensor)==0)
      sens();
       
     else
        scn();
       
    }

     

     

    Foi baseado nesse guia:

     

    http://www.davindermahi.com/2017/07/12/arduino-interface-for-alcohol-mq-3-sensor/

     

    Nesse caso eu liguei a saída DO em AO. Certo?

     

    Deixei 3 minutos para aquecimento do sensor.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!