Arduino - Sensor de Álcool MQ3

Este tutorial demonstra como fazer a interface de um sensor de álcool MQ3 com o Arduino para monitorar os níveis de etanol e vapor de álcool no seu ambiente. O sensor MQ3 é amplamente usado em bafômetros caseiros (DIY), alarmes de detecção de álcool e projetos de monitoramento da qualidade do ar.

Você vai descobrir:

Arduino com módulo sensor de gás de álcool MQ3

Sobre o Sensor de Álcool MQ3

Funcionando como um Quimiorresistor, o MQ3 é um dispositivo Semicondutor de Óxido Metálico (MOS) que identifica a presença de álcool por meio de mudanças de resistência em seu material sensor. Este módulo se destaca na detecção de vapor de etanol com alta sensibilidade em uma ampla faixa de concentrações.

Em seu núcleo, o sensor emprega uma camada de Dióxido de Estanho (SnO2) depositada sobre uma base cerâmica de Óxido de Alumínio. O aquecimento ativa o SnO2, tornando-o sensível às moléculas de álcool. Uma malha protetora de aço inoxidável (tela antiexplosão) envolve o sensor, protegendo o elemento de aquecimento e permitindo que as moléculas de gás passem para a câmara de detecção.

Os usos populares deste sensor incluem a construção de bafômetros, equipamentos de detecção de embriaguez ao volante, sistemas de alerta de álcool e aplicações de monitoramento de álcool no ambiente.

Especificações Técnicas

  • Tensão de Operação: 5V DC
  • Resistência de Carga: 200 KΩ
  • Resistência do Aquecedor: 33Ω ± 5%
  • Consumo do Aquecimento: < 800mW
  • Resistência de Detecção: 1 MΩ – 8 MΩ
  • Faixa de Detecção: 25 – 500 ppm (partes por milhão)
  • Tempo de Pré-aquecimento: 24-48 horas no primeiro uso

Entendendo ppm: A abreviação ppm significa partes por milhão, representando a proporção de moléculas do gás alvo em relação ao total de moléculas. Na prática, uma leitura de 500 ppm indica que existem 500 moléculas de álcool a cada 1.000.000 de moléculas de gás no total, sendo as 999.500 restantes outros gases atmosféricos.

Pinagem

O módulo sensor MQ3 tem quatro pinos de conexão:

  • Pino VCC: Forneça alimentação de +5V por esta conexão.
  • Pino GND: Conecte ao terra (0V).
  • Pino DO: Saída digital que vai para LOW ao detectar álcool acima do limite, ou HIGH quando abaixo. O potenciômetro da placa permite ajustar o limite.
  • Pino AO: Saída analógica que fornece uma tensão variável correspondente aos níveis de álcool. Mais álcool produz uma tensão de saída maior.
Diagrama de pinagem do módulo sensor de álcool MQ3

Dois LEDs indicadores fornecem retorno visual:

  • PWR-LED: Acende quando o módulo recebe alimentação.
  • DO-LED: Reflete o estado da saída digital—acendendo durante a detecção de álcool e permanecendo apagado caso contrário.

Como Funciona

O mecanismo de detecção do MQ3 se baseia nas variações de resistência dentro do seu elemento semicondutor de Dióxido de Estanho (SnO2):

Condições de ar limpo: O calor aplicado ao SnO2 faz com que o oxigênio se ligue à sua superfície, aprisionando elétrons e criando uma camada de depleção. Essa armadilha de elétrons gera uma barreira que restringe a condutividade elétrica, mantendo a resistência alta.

Exposição ao álcool: As moléculas de álcool interagem com o oxigênio da superfície, quebrando as ligações de oxigênio e liberando os elétrons aprisionados de volta para a estrutura do dióxido de estanho. Isso aumenta significativamente a condutividade—quanto maior a concentração de álcool, menor a resistência elétrica.

Este sensor oferece dois modos de saída:

Saída Digital (pino DO):

  • Um potenciômetro ajustável define o nível do limite de detecção.
  • Quando o álcool detectado ultrapassa o limite definido, o DO fornece LOW enquanto o LED indicador acende.
  • Quando o álcool permanece abaixo do limite, o DO fica em HIGH e o LED fica apagado.

Saída Analógica (pino AO):

  • A tensão de saída se relaciona diretamente com os níveis de álcool detectados.
  • Mais vapor de álcool presente = leitura de tensão mais alta.
  • Menos vapor de álcool presente = leitura de tensão mais baixa.
  • Observação: O ajuste do potenciômetro afeta apenas a saída digital, não o sinal analógico.

Aquecimento e Calibração

Requisitos de Pré-aquecimento

Medições precisas do MQ3 exigem um aquecimento adequado antes da operação:

  • Primeiro uso ou armazenamento prolongado (30+ dias): Deixe 24-48 horas de aquecimento contínuo para a estabilização do sensor e medições confiáveis.
  • Uso regular: Um breve aquecimento de 5-10 minutos é suficiente. As leituras iniciais podem parecer elevadas, mas vão se normalizar rapidamente.

Para aquecer o sensor, basta conectar VCC e GND a uma fonte de alimentação de 5V ou diretamente aos pinos de alimentação do seu Arduino, mantendo a conexão durante todo o tempo de aquecimento.

Encontrando Seus Valores de Limite

O armazenamento prolongado pode causar desvio de calibração em sensores baseados em aquecedor, como o MQ3. Estabeleça valores de limite precisos para aplicações de bafômetro seguindo este procedimento:

  1. Estabeleça a referência de ar limpo: Opere o sensor em ar fresco e anote a saída analógica (espere valores perto de 100-150).
  2. Introduza vapor de álcool: Segure álcool isopropílico ou álcool em gel perto do sensor (não sobre ele), permitindo que apenas os vapores o alcancem. Registre as leituras elevadas (normalmente 400-900, dependendo da densidade do vapor).
  3. Defina as zonas de detecção: Use os valores registrados para estabelecer as faixas:
  • Sem embriaguez: Leituras abaixo da referência + 20 (exemplo: < 120)
  • Consumo moderado: Valores de faixa intermediária (exemplo: 120-400)
  • Embriaguez alta: Leituras acima do limite moderado (exemplo: > 400)

Importante: As características do sensor variam entre unidades e ambientes. Sempre faça a calibração com o seu hardware específico antes de colocá-lo em uso.

Definindo o Limite Digital

Configure o ponto de acionamento do pino DO pelo potenciômetro de ajuste da placa:

  1. Posicione vapor de álcool perto do sensor.
  2. Gire o potenciômetro no sentido horário até ver o LED acender.
  3. Gire lentamente no sentido anti-horário até o LED apagar.
  4. O limite de acionamento agora está calibrado corretamente.

Diagrama de Ligação

Os dois pinos de saída estão disponíveis no módulo MQ3. Escolha um deles ou use os dois ao mesmo tempo, de acordo com as necessidades do seu projeto.

Sensor de Álcool MQ3Arduino
VCC5V
GNDGND
DOPino 2
AOA0
Diagrama de ligação do Arduino e do sensor de álcool MQ3 mostrando as conexões dos pinos

This image is created using Fritzing. Click to enlarge image

Código Arduino - Leitura da Saída Digital

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-mq3-alcohol-sensor */ #define DO_PIN 2 // The Arduino pin connected to DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the Arduino pin as an input pinMode(DO_PIN, INPUT); // Warm-up message Serial.println("Warming up the MQ3 sensor"); delay(20000); // 20 seconds warm-up time for recently used sensor } void loop() { int gasState = digitalRead(DO_PIN); if (gasState == HIGH) { Serial.println("Alcohol is NOT detected"); } else { Serial.println("Alcohol is detected"); } delay(1000); }

Passos Rápidos

  • Abra o código acima no Arduino IDE
  • Carregue-o na sua placa Arduino pelo botão Upload
  • Posicione uma fonte de vapor de álcool perto do sensor MQ3 (álcool em gel ou álcool comum em um algodão funcionam bem)
  • Acompanhe a saída no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Alcohol is NOT detected Alcohol is NOT detected Alcohol is NOT detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is NOT detected Alcohol is NOT detected
Ln 11, Col 1
Arduino Uno on COM15
2

Observação: Quando as leituras não correspondem às condições reais (falsos positivos ou detecções perdidas), ajuste o limite de detecção usando o potenciômetro do módulo. Girar no sentido horário aumenta a sensibilidade; no sentido anti-horário, diminui. Ajuste até a precisão da detecção melhorar.

Código Arduino - Leitura da Saída Analógica

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino pin connected to AO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Warm-up message Serial.println("Warming up the MQ3 sensor"); delay(20000); // 20 seconds warm-up time for recently used sensor } void loop() { int gasValue = analogRead(AO_PIN); Serial.print("MQ3 sensor AO value: "); Serial.println(gasValue); delay(1000); }

Passos Rápidos

  • Carregue o código no Arduino IDE
  • Faça o upload pelo botão Upload
  • Aproxime vapor de álcool do sensor (álcool em gel ou álcool isopropílico)
  • Observe as leituras no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
MQ3 sensor AO value: 120 MQ3 sensor AO value: 125 MQ3 sensor AO value: 128 MQ3 sensor AO value: 450 MQ3 sensor AO value: 620 MQ3 sensor AO value: 850 MQ3 sensor AO value: 920 MQ3 sensor AO value: 980 MQ3 sensor AO value: 950 MQ3 sensor AO value: 680 MQ3 sensor AO value: 420
Ln 11, Col 1
Arduino Uno on COM15
2

Usando a saída digital ou a analógica, você pode implementar decisões baseadas em limites para ativar alarmes, controlar indicadores de alerta ou registrar dados para a função de bafômetro.

Código Arduino - Bafômetro com Detecção por Limite

Este exemplo demonstra a interpretação da saída analógica por meio de limites calibrados para estimar os níveis de embriaguez.

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino pin connected to AO pin of the MQ3 sensor // Threshold values - REPLACE THESE with your calibrated values! // Run calibration first to find these values for your sensor #define SOBER_THRESHOLD 120 // Below this = sober #define DRUNK_THRESHOLD 400 // Above this = drunk, between = drinking but within limits void setup() { // Initialize serial communication Serial.begin(9600); // Warm-up message Serial.println("MQ3 Alcohol Sensor - Breathalyzer"); Serial.println("Warming up sensor..."); delay(20000); // 20 second warm-up for recently used sensor Serial.println("Sensor ready!"); Serial.println(); } void loop() { int gasLevel = analogRead(AO_PIN); // Read the analog value from sensor // Print sensor value Serial.print("Sensor Value: "); Serial.print(gasLevel); Serial.print(" | Status: "); // Determine status based on thresholds if (gasLevel < SOBER_THRESHOLD) { Serial.println("Stone Cold Sober"); } else if (gasLevel >= SOBER_THRESHOLD && gasLevel < DRUNK_THRESHOLD) { Serial.println("Drinking but within limits"); } else { Serial.println("DRUNK"); } delay(1000); // Wait 1 second between readings }

Passos Rápidos

  • Fundamental: Primeiro calibre o seu sensor usando o exemplo de leitura analógica para determinar os valores de limite adequados para o seu ambiente.
  • Atualize as constantes SOBER_THRESHOLD e DRUNK_THRESHOLD no código com os seus números calibrados.
  • Abra e carregue o código modificado no Arduino
  • Teste com vapor de álcool (álcool isopropílico ou vapor de álcool em gel)
  • Confira as mensagens de status no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Sensor Value: 115 | Status: Stone Cold Sober Sensor Value: 118 | Status: Stone Cold Sober Sensor Value: 350 | Status: Drinking but within limits Sensor Value: 480 | Status: DRUNK Sensor Value: 520 | Status: DRUNK Sensor Value: 290 | Status: Drinking but within limits Sensor Value: 125 | Status: Stone Cold Sober
Ln 11, Col 1
Arduino Uno on COM15
2

Aviso: Este projeto tem finalidade exclusivamente educacional. Nunca confie neste dispositivo para funções legais de bafômetro ou para avaliações de segurança ao dirigir.

Vídeo

Referências de Funções

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!