Como utilizar o sensor de álcool MQ-3 com Arduino
O sensor de MQ-3 é capaz de detectar a presença de álcool no ar, com uma concentração de 0,04-4mg/L. Esse dispositivo é muito utilizado em projetos para monitorar a concentração de álcool, como em bafômetros usados por autoridade de trânsito para verificar se o motorista consumiu bebida alcoólica ou em dispositivos de segurança para análise da presença de álcool no ambiente.
O MQ-3 é um sensor acionado por aquecedor, um elemento sensor de óxido de estanho (SnO2) é aquecido para reagir com as moléculas de álcool. Quando o álcool entra em contato com o sensor aquecido, ocorre uma reação química que muda a resistência do material sensor. Esta mudança de resistência é então medida e convertida em uma saída de tensão proporcional à concentração de álcool no ar.
O MQ-3 é protegido por duas camadas de malha fina de aço inoxidável, chamadas de rede anti-explosão. Essa proteção evita que o aquecedor dentro do sensor provoque explosões ao detectar o álcool que é inflamável, bem como protege e filtra partículas suspensas.
Ao remover a malha externa, o sensor apresenta o elemento sensor e seis terminais que se conectam, criando uma estrutura em forma de estrela, conforme pode ser observado na Figura 3. Os terminais H possuem a função de aquecer o elemento sensor. Os outros quatro terminais (A e B) transmitem pequenas variações na corrente que flui através do elemento sensor.
O sensor MQ-3 possui pinos de saída analógica e digital. A saída digital pode ser utilizada para identificar a presença de álcool, enquanto a saída analógica varia proporcionalmente à concentração de álcool no ar. Assim, se a concentração de álcool no ar aumenta, a tensão de saída também aumenta; se diminui, a tensão de saída diminui.
Os pinos do sensor álcool MQ-3 encontram-se detalhados na Figura 5.
Cada pino possui a seguinte função:
- A0: Pino de saída analógica que varia de acordo com a concentração de álcool detectado;
- D0: Pino de saída digital do sensor. Nível lógico alto indica que foi identificado álcool;
- GND: Pino de aterramento do sensor;
- VCC: Pino de alimentação do sensor (5V).
Na parte traseira (Figura 6), o sensor MQ-3 conta com um potenciômetro para ajuste da sensibilidade da saída digital que pode ser utilizado para definir um limite para detecção do álcool. Além disto, há também dois LED, um indica quando o módulo é energizado e outro quando ocorre a detecção.
Agora que já conhecemos as principais características técnicas e forma de funcionamento do sensor de álcool MQ-3, vamos aprender como utilizá-lo em conjunto com o Arduino.
MPORTANTE: O sensor MQ-3 deve ser usado somente para fins educacionais ou experimentais. O Blog da Robótica não recomenda o uso do sensor MQ-3 em projetos em que a segurança de pessoas ou do ambiente esteja em risco.
MATERIAIS NECESSÁRIOS
- 1x Placa UNO SMD R3 Atmega328 compatível com Arduino UNO;
- 1 x Cabo USB Tipo A-B compatível com Arduino UNO;
- 1 x Sensor de Álcool MQ-3;
- 1 x Protoboard;
- 2 x LEDs difusos 5mm;
- 2 x Resistores 220Ω;
- 1 x Kit de jumpers macho-macho.
ESQUEMÁTICO DE LIGAÇÃO
Inicialmente, certifique-se de que a sua placa Arduino esteja desligada. Em seguida, monte o circuito da Figura 7, utilizando o sensor MQ-3, os LEDs, os resistores e os jumpers.
Ao montar o circuito, observe os seguintes pontos:
- Alimente o sensor de álcool MQ-3 por meio do 5V do Arduino;
- Conecte o GND do sensor MQ-3 ao GND do Arduino;
- Conecte o pino analógico A0 do sensor à entrada analógica A0 do Arduino;
- Os LEDs devem ser conectados aos pinos digitais 12 e 13.
OBSERVAÇÃO: O sensor aquece ao início do seu funcionamento. Logo é comum a presença do cheiro de queimado durante seu processo de inicialização.
ELABORANDO O CÓDIGO
Após a montagem do circuito, vamos à programação do código. A proposta deste projeto é desenvolver um sistema que monitore o ar e informe, por meio de LEDs indicativos, quando o álcool for detectado. O LED vermelho permanecerá aceso até que o álcool seja detectado.
1. Definir as constantes
Iniciamos o código definindo as constantes sensor, LedVermelho e LedVerde para representar os pinos aos quais a saída analógica do sensor, o LED vermelho e o LED verde estão conectados no Arduino, respectivamente.
2. Configurações iniciais (função setup)
Definimos a constante PinSensor como entrada (INPUT) e as constantes PinLedVermelho e PinLedVerde como saída (OUTPUT).
A comunicação serial foi inicializada por meio da instrução: Serial.begin(9600);.
3- Realizar a leitura do sensor MQ-3 e imprimir no monitor serial:
Iniciamos a função loop() realizando a leitura da porta analógica A0 conectada ao sensor. Para isso utilizamos a função analogRead(sensor), e armazenaremos este valor na variável valoralcool. Em seguida, imprimiremos o valor no monitor serial com a função serial.print().
4- Realizar a comparação:
Utilizaremos a estrutura condicionar if-else para comparar a leitura do sensor MQ-3 Se a leitura for maior que 500, o monitor serial exibirá a mensagem (“Álcool detectado!”) e o LED verde será ligado;
Senão, o monitor serial exibirá (“Sem Álcool!”) e o LED vermelho será acionado;
5- Intervalo de 1 segundo a cada leitura
Para que a leitura seja efetuada em intervalos de 1 segundo incluímos a instrução delay(1000);.
Ao final, o Sketch deste projeto ficará da seguinte maneira:
Código
const int sensor = A0; // Pino analógico conectado ao AO do sensor MQ-3 const int ledvermelho = 13; // Pino digital para o LED vermelho const int ledverde = 12; // Pino digital para o LED verde void setup() { pinMode(ledvermelho, OUTPUT); pinMode(ledverde, OUTPUT); Serial.begin(9600); } void loop() { int valoralcool = analogRead(sensor); // Leitura do valor analógico do sensor // Se o valor lido for maior que um limite (ajuste conforme necessário) if (valoralcool > 500) { digitalWrite(ledvermelho, LOW); // Apaga o LED vermelho digitalWrite(ledverde, HIGH); // Acende o LED verde Serial.println("Álcool detectado!"); } else { digitalWrite(ledverde, LOW); // Apaga o LED verde digitalWrite(ledvermelho, HIGH); // Acende o LED vermelho Serial.println("Sem álcool."); } delay(1000); // Aguarda 1 segundo antes de fazer a próxima leitura }
Ao final o sensor irá identificar a presença de álcool e acenderá o LED verde, e enquanto não for identificado o LED vermelho fica ligado. como no vídeo abaixo
Espero ter ajudado,
Obrigado a todos e, em caso de dúvidas, deixe seu comentário abaixo!