quinta-feira, agosto 20, 2015

SENSOR DE ÁLCOOL MQ-3 NO ARDUINO

Neste post o Sensor de Álcool MQ-3 será apresentado e utilizado no sketch abaixo, que trabalha os valores enviados pelo sensor transformados em porcentagem e os relaciona com os LED’s verde, amarelo e vermelho. Paralelamente o buzzer também será acionado com tonalidade diferente, quando o LED amarelo e vermelho acenderem.  O sensor MQ-3 tem capacidade de verificar a concentração de álcool / etanol (entre 10 a 1000 ppm) no ambiente onde estiver instalado e demonstrar os dados junto a um display integrado ao Arduino ou na porta serial, que é o caso deste sketch. Embora no sketch tenha sido colocado o nome bafômetro, este sensor não tem precisão suficiente para servir como instrumento de verificação do teor alcoólico de motoristas.



HARDWARE: SENSOR DE ÁLCOOL/RESISTOR 1K E 330Ω/LED/BUZZER

/*
***************************************************
    PROJETO ROBÓTICA NA ESCOLA 2015 
 SENSOR DE ÁLCOOL MQ-3 – BAFÔMETRO
           EE DR PEDRO VELHO – RN/BR        
***************************************************
*/

#define sensorAlcool  A0             //Pino Sensor
#define ledVd  9                  
#define ledAm  8    
#define ledVm 7
#define som 3
int valor = 0;
void setup()
{
Serial.begin(9600);           
Serial.println ("");
pinMode(ledAm, OUTPUT);
pinMode(ledVm, OUTPUT);
pinMode(ledVd, OUTPUT);
pinMode(sensorAlcool, INPUT);
pinMode(som,OUTPUT);
}
void loop()
{
valor =  analogRead(sensorAlcool);        //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);                      
if (valor<= 20)
{                       
 digitalWrite(ledVd, HIGH);                   
 digitalWrite(ledAm, LOW);                 
 digitalWrite(ledVm, LOW);                 
}
if ((valor > 20) && (valor< 30))
 {
 digitalWrite(ledVd, LOW);                   
 digitalWrite(ledAm, HIGH);                 
 digitalWrite(ledVm, LOW);                 
 tone (som,110,50);
 delay(50);
 }
 else
 {
 digitalWrite(ledAm, LOW);
 noTone(som);
 }
if (valor >= 30)
 {
 digitalWrite(ledVd, LOW);
 digitalWrite(ledAm, LOW);                 
 digitalWrite(ledVm, HIGH);    //com alcool                
 tone(som,820,1000);
 delay(50);
 }
 else
 {
 digitalWrite(ledVm, LOW);
 noTone(som);
 }
 delay(1000);
}
//FIM DO SKETCH

Nenhum comentário:

Postar um comentário