Arduino UNO R4 - Sensor de Álcool MQ3

Este guia mostra como usar o Arduino UNO R4 e o sensor de álcool MQ3 para detectar vapor de álcool e etanol no ar. Esse sensor é muito usado em projetos de bafômetro e em sistemas de detecção de álcool.

Arduino UNO R4 with MQ3 alcohol gas sensor module

Sobre o Sensor de Álcool MQ3

O sensor de álcool MQ3 é um sensor MOS (Metal Oxide Semiconductor, semicondutor de óxido metálico), também conhecido como Chemiresistor (resistor químico), porque detecta o álcool com base na mudança de resistência do material sensor quando exposto ao vapor de álcool. Ele foi projetado especificamente para detectar vapor de álcool (etanol) no ar e é muito sensível às concentrações de álcool.

O sensor usa um revestimento de Dióxido de Estanho (SnO2) sobre um substrato cerâmico de Óxido de Alumínio como elemento sensor. Quando aquecido, o SnO2 fica sensível ao álcool. O sensor é coberto por uma malha de aço inoxidável (rede antiexplosão) que protege o elemento de aquecimento interno e filtra as partículas em suspensão, deixando os elementos gasosos chegarem à câmara de detecção.

Aplicações comuns incluem bafômetros, sistemas de detecção de embriaguez ao volante, alarmes de presença de álcool e projetos que precisam monitorar a concentração 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

O que significa ppm? Partes por milhão (ppm) é a unidade usada para medir a concentração de um gás. Por exemplo, 500 ppm de álcool significa que, de um milhão de moléculas de gás, 500 são de álcool e 999.500 são de outros gases.

Pinagem

O sensor de álcool MQ3 tem quatro pinos:

  • Pino VCC: conecte este pino ao VCC (5V).
  • Pino GND: conecte este pino ao GND (0V).
  • Pino DO: é um pino de saída digital. Ele mostra LOW quando álcool é detectado e HIGH quando não. Você pode ajustar o limite de detecção de álcool usando o potenciômetro da placa.
  • Pino AO: é um pino de saída analógica. Ele produz uma tensão que muda conforme a concentração de álcool. Uma concentração maior de álcool faz a tensão subir.
MQ3 alcohol sensor module pinout diagram

Ele também tem dois LEDs:

  • Um LED PWR indica que a alimentação está ligada.
  • Um LED DO mostra o estado da detecção de álcool com base no valor do pino DO: acende quando álcool é detectado e apaga quando não há.

Como Funciona

O sensor MQ3 funciona com base nas mudanças de resistência elétrica do elemento sensor de Dióxido de Estanho (SnO2):

No ar limpo: Quando o semicondutor de SnO2 é aquecido, moléculas de oxigênio são adsorvidas na superfície, criando uma camada de depleção de elétrons. Isso forma uma barreira de potencial que deixa o material com resistência muito alta, impedindo a passagem de corrente.

Na presença de álcool: O vapor de álcool reage com o oxigênio adsorvido, reduzindo a densidade de oxigênio na superfície e diminuindo a barreira de potencial. Isso libera elétrons no dióxido de estanho, permitindo que a corrente flua livremente. Quanto mais álcool presente, menor a resistência.

O sensor oferece dois tipos de saída:

Para o pino DO (Saída Digital):

  • O módulo inclui um potenciômetro para ajustar o limite de sensibilidade na detecção de álcool.
  • Se a concentração de álcool passar do limite definido, o pino de saída do sensor fica LOW e o LED DO acende.
  • Se a concentração de álcool estiver abaixo do limite, o pino de saída do sensor fica HIGH e o LED DO apaga.

Para o pino AO (Saída Analógica):

  • A tensão de saída é proporcional à concentração de álcool.
  • Uma concentração maior de vapor de álcool produz uma tensão maior.
  • Uma concentração menor de vapor de álcool produz uma tensão menor.
  • O potenciômetro não afeta o valor do pino AO.

Aquecimento e Calibração do Sensor MQ3

Tempo de Aquecimento

O sensor de álcool MQ3 precisa ser aquecido antes do uso para dar leituras precisas:

  • Primeiro uso ou depois de muito tempo guardado (mais de um mês): Aqueça-o por 24-48 horas para obter resultados estáveis e precisos.
  • Uso recente: Ele precisa de apenas 5-10 minutos para aquecer. No início, as leituras podem estar altas, mas vão se estabilizar depois de pouco tempo.

Para aquecer o sensor MQ3, conecte os pinos VCC e GND dele a uma fonte de alimentação ou ao VCC e GND de um Arduino UNO R4 e deixe-o conectado durante o período de aquecimento.

Calibração dos Valores de Limite

Como o MQ3 é um sensor com aquecedor, a calibração pode se desviar se ele ficar guardado por muito tempo. Para calibrar o sensor e encontrar os valores de limite para o seu projeto de bafômetro:

  1. Registre os valores de base: Deixe o sensor funcionando em ar limpo e anote as leituras analógicas (normalmente em torno de 100-150).
  2. Teste com álcool: Use álcool isopropílico ou álcool em gel (não deixe o líquido tocar no sensor - apenas os vapores). Aperte o frasco perto do sensor para liberar vapores e anote as leituras (normalmente 400-900, dependendo da concentração).
  3. Defina os limites: Com base nas suas leituras, você pode definir os níveis de limite:
  • Sóbrio: Abaixo da base + 20 (por exemplo, < 120)
  • Dentro dos limites legais: Entre a base e um nível moderado (por exemplo, 120-400)
  • Acima dos limites legais: Acima do nível moderado (por exemplo, > 400)

Nota: Esses valores variam conforme o seu sensor e o ambiente. Sempre calibre com o seu próprio sensor antes de usar.

Ajustando o Limite da Saída Digital

Para definir o limite do pino DO usando o potenciômetro da placa:

  1. Exponha o sensor a vapores de álcool.
  2. Gire o potenciômetro no sentido horário até o LED de status acender.
  3. Gire o potenciômetro no sentido anti-horário só até o LED apagar.
  4. Pronto, o seu limite está definido.

Diagrama de Ligação

O módulo do sensor de álcool MQ3 tem duas saídas. Você pode usar uma delas ou as duas, conforme a sua necessidade.

Sensor de Álcool MQ3Arduino UNO R4
VCC5V
GNDGND
DOPino 2
AOA0
The wiring diagram between Arduino UNO R4 and MQ3 alcohol sensor  showing pin connections

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.

Código Arduino UNO R4 - Ler o valor do pino DO

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

Passos Rápidos

Siga estas instruções passo a passo:

  • Se esta é a primeira vez que você usa o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima no Arduino IDE.
  • Conecte a placa Arduino Uno R4 ao sensor de álcool MQ3 de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 correta (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Copie o código acima e abra-o no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para enviar o código ao Arduino UNO R4.
  • Exponha o sensor MQ3 ao vapor de álcool (você pode usar álcool em gel ou álcool comum em um algodão perto do sensor).
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' 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 R4 WiFi on COM15
2

Nota: Se a saída do sensor não refletir a presença real de álcool (por exemplo, ele detecta álcool quando não há, ou não detecta quando há álcool), você precisa ajustar o limite de disparo girando o potenciômetro do módulo do sensor. Gire no sentido horário para aumentar a sensibilidade ou no sentido anti-horário para diminuí-la, até a detecção corresponder à realidade.

Código Arduino UNO R4 - Ler o valor do pino AO

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

Passos Rápidos

  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload do Arduino IDE para enviar o código ao Arduino UNO R4
  • Exponha o sensor MQ3 ao vapor de álcool (você pode usar álcool em gel ou álcool comum)
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' 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 R4 WiFi on COM15
2

Com base nos valores de DO ou AO, você pode definir níveis de limite para a detecção de álcool e disparar um alarme, acender um LED de aviso ou registrar os dados em aplicações de bafômetro.

Código Arduino UNO R4 - Bafômetro Simples com Limites

Este exemplo avançado usa a saída analógica para estimar o nível de embriaguez com base em valores de limite calibrados.

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino UNO R4 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

  • Importante: Antes de usar este código, execute o sketch de calibração acima para encontrar os valores de limite do seu sensor no ar limpo e na presença de álcool.
  • Substitua os valores de limite no código (SOBER_THRESHOLD e DRUNK_THRESHOLD) pelos seus valores calibrados.
  • Faça o upload do código para o Arduino UNO R4.
  • Teste expondo o sensor ao vapor de álcool (álcool em gel ou álcool isopropílico).
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' 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 R4 WiFi on COM15
2

Nota: Isto serve apenas para fins educacionais. Não use como bafômetro legal nem para decidir se alguém está apto a 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!