fbpx
ArduinoNovidade

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.

Imagem do sensor de álcool MQ-3
Figura 1 – Imagem do sensor de álcool MQ-3

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.

Imagem mostrando a rede anti-explosão do sensor de álcool MQ-3
Figura 2 – Imagem mostrando a rede anti-explosão do sensor de álcool MQ-3

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.

Imagem dos terminais de conexão e elemento sensor
Figura 3 – Imagem dos terminais de conexão e 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.

Imagem mostrando a tensão de saída variando proporcionalmente à concentração de álcool.
Figura 4 – Imagem mostrando a tensão de saída variando proporcionalmente à concentração de álcool.

Os pinos do sensor álcool MQ-3 encontram-se detalhados na Figura 5.

Imagem mostrando os pinos do sensor MQ-3.
Figura 5 – imagem mostrando os pinos do sensor MQ-3.

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.

imagem mostrando alguns componentes do sensor MQ-3.
Figura 6 – imagem mostrando alguns componentes do sensor MQ-3.

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

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.

Esquemático de ligação do sensor com o Arduino e LEDs
Figura 7 – Esquemático de ligação do sensor com o Arduino e LEDs.

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!

Dúvidas? Deixe seu comentário
Estagiário no setor de desenvolvimento na Casa da Robótica

Graduando em Engenharia da Computação pela Faculdade Independente do Nordeste. Estagiário do setor de desenvolvimento da Casa da Robótica.

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Deixe uma pergunta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.