Alguém poderia corrigir urgentemente essa questão ?
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.