Sensor de gás MQ-2: monte um alarme de gás e fumaça com Arduino
Como funciona o sensor de gás MQ-2? Detecção de GLP, metano e fumaça, pinos do módulo, pré-aquecimento, leituras analógica e digital, calibração do R0, a família de sensores MQ e alarmes de gás com ESP32 e Pico.
O MQ-2 é um sensor de gás barato e muito comum que detecta gases combustíveis e fumaça no ar. Ele reage a GLP (gás de botijão), propano, butano, metano (gás natural), hidrogênio, vapor de álcool e fumaça. Em projetos com Arduino, ele é usado para montar alarmes de gás na cozinha, detectores de fumaça e indicadores de qualidade do ar. Neste artigo você vai ver passo a passo o que há dentro do sensor, como ligá-lo corretamente, por que o pré-aquecimento é indispensável e como interpretar os valores lidos.

Como funciona o MQ-2?
Sob a tela metálica há um pequeno elemento cerâmico revestido de dióxido de estanho (SnO₂) e um fio aquecedor que o esquenta a algumas centenas de graus. No ar limpo, a resistência do elemento é alta. Quando um gás combustível ou fumaça chega até ele, uma reação química na superfície baixa a resistência; quanto mais denso o gás, menor a resistência. O módulo transforma essa variação de resistência em tensão com um divisor de tensão: quanto mais gás, maior a tensão no pino AO.
| Característica | Valor |
|---|---|
| Tensão de alimentação | 5 V |
| Corrente do aquecedor | ~150 mA (até 800 mW) |
| Gases detectados | GLP, propano, butano, metano, hidrogênio, álcool, fumaça |
| Faixa de detecção | 300–10.000 ppm |
| Aquecimento | Alguns minutos a cada vez que é ligado, 24–48 horas no primeiro uso |
| Saídas | AO (analógica), DO (digital, comparador LM393) |
Pinos do módulo e ligação
Um sensor MQ-2 avulso tem 6 pernas, mas os projetos costumam usar um módulo pronto. O módulo traz o resistor de carga, um chip comparador LM393, um pequeno potenciômetro para ajustar o limite, um LED de energia e um LED de alarme. O pino AO dá uma tensão proporcional à concentração de gás, enquanto o pino DO muda de estado quando o nível de gás passa do limite ajustado no potenciômetro.
| Pino do módulo | Função | Arduino Uno |
|---|---|---|
| VCC | Alimentação (incluindo o aquecedor) | 5V |
| GND | Terra | GND |
| AO | Saída analógica, sobe com o gás | A0 |
| DO | Saída digital, vai a LOW quando o limite é ultrapassado | D2 |

Por que o pré-aquecimento é importante?
O elemento sensor só responde corretamente quando chega à temperatura de trabalho. Nos primeiros minutos depois de ligar, o valor do AO começa alto e depois cai devagar até estabilizar; as leituras feitas nesse período enganam. Por isso, é uma boa prática pular a verificação do alarme no código nos primeiros 1–3 minutos. Se você vai usar um sensor novo pela primeira vez, recomenda-se deixá-lo funcionando sem parar por 24–48 horas (burn-in) para obter valores estáveis. Enquanto o aquecedor funciona, a tela metálica esquenta bastante; isso é normal, mas não coloque materiais inflamáveis perto do sensor.
Um alarme de gás e fumaça com Arduino
O código abaixo lê o valor analógico e o mostra no Monitor Serial, e também verifica o pino DO. Se o valor analógico passar do limite ou o pino DO for para LOW, um buzzer toca:
1const int AO_PIN = A0;
2const int DO_PIN = 2;
3const int BUZZER = 8;
4const int LIMIT = 400; // analog eşik (0–1023) / analog threshold
5
6void setup() {
7 Serial.begin(9600);
8 pinMode(DO_PIN, INPUT);
9 pinMode(BUZZER, OUTPUT);
10 delay(60000); // 1 dk ön ısıtma / 1 min warm-up
11}
12
13void loop() {
14 int value = analogRead(AO_PIN);
15 bool gas = digitalRead(DO_PIN) == LOW; // çoğu modülde LOW = gaz / LOW = gas on most modules
16
17 Serial.println(value);
18
19 if (value > LIMIT || gas) {
20 tone(BUZZER, 2000, 300); // alarm sesi / alarm tone
21 }
22 delay(500);
23}O valor 400 aqui não é uma regra fixa: a leitura no ar limpo pode variar entre 100 e 300, dependendo do sensor, da temperatura e da umidade do ambiente. Primeiro deixe o sensor funcionando por alguns minutos e confira no Monitor Serial o valor no ar limpo; depois ajuste o limite bem acima dele. Para testar, basta segurar por um instante o gás de um isqueiro perto do sensor, sem acender; o valor sobe em segundos.
Do valor analógico ao ppm: calibração do R0
No módulo, o sensor forma um divisor de tensão com um resistor de carga (RL, 1 kΩ na maioria dos módulos). Com a tensão do AO, você calcula a resistência do sensor (Rs). Os gráficos do datasheet dão a concentração de gás não em função do Rs direto, mas da razão Rs/R0; R0 é a resistência do sensor em 1000 ppm de hidrogênio, e no ar limpo a razão Rs/R0 fica em cerca de 9,8. Então você encontra o R0 medindo o sensor no ar limpo e dividindo por 9,8:
1const float RL = 1.0; // yük direnci (kΩ) / load resistor (kΩ)
2const float CLEAN_AIR = 9.8; // temiz havada Rs/R0 / Rs/R0 in clean air
3float R0;
4
5float readRs() {
6 float v = analogRead(A0) * 5.0 / 1023.0;
7 if (v < 0.01) v = 0.01; // sıfıra bölmeyi önle / avoid dividing by zero
8 return RL * (5.0 - v) / v; // bölücüden Rs / Rs from the divider
9}
10
11void setup() {
12 Serial.begin(9600);
13 delay(60000); // ön ısıtma / warm-up
14 float sum = 0;
15 for (int i = 0; i < 50; i++) {
16 sum += readRs();
17 delay(100);
18 }
19 R0 = (sum / 50) / CLEAN_AIR; // temiz havada kalibrasyon / clean-air calibration
20}
21
22void loop() {
23 float ratio = readRs() / R0; // gaz arttıkça küçülür / falls as gas rises
24 Serial.println(ratio);
25 delay(1000);
26}Se a razão estiver perto de 9,8, o ar está limpo; cair abaixo de 1 significa uma concentração alta de gás. Para converter essa razão em ppm, usam-se as curvas logarítmicas do datasheet; bibliotecas como a MQUnifiedsensor já trazem essas curvas prontas. Mesmo assim, trate o resultado como aproximado: temperatura, umidade e a idade do sensor afetam a leitura e, como o MQ-2 reage a muitos gases ao mesmo tempo, ele não consegue dizer com certeza qual gás está medindo. Adicionar um DHT11 para acompanhar temperatura e umidade é uma boa ideia.
A família de sensores MQ: qual escolher?
| Sensor | Mais sensível a | Uso típico |
|---|---|---|
| MQ-2 | GLP, propano, metano, hidrogênio, fumaça | Alarme geral de gás e fumaça |
| MQ-3 | Álcool | Bafômetro |
| MQ-4 | Metano (gás natural) | Alarme de vazamento de gás natural |
| MQ-5 | GLP, gás natural | Alarme de gás na cozinha |
| MQ-7 | Monóxido de carbono (CO) | Monitoramento de CO (exige ciclagem do aquecedor) |
| MQ-9 | CO e gases combustíveis | Perto de fogões e caldeiras |
| MQ-135 | Amônia, benzeno, fumaça, NOx | Qualidade do ar em ambientes internos |
O MQ-2 com ESP32 e Raspberry Pi Pico
O aquecedor do MQ-2 precisa de 5 V, então ligue o pino VCC do módulo no pino VIN (5V) do ESP32. Mas, com o módulo alimentado com 5 V, a saída AO pode chegar a 5 V, enquanto as entradas analógicas do ESP32 e do Pico aceitam no máximo 3,3 V. Coloque entre o AO e o pino analógico um divisor de tensão com resistores de 10 kΩ e 20 kΩ para baixar o sinal a um nível seguro. Com o ESP32 fica fácil mandar uma notificação para o celular quando houver gás ou ligar um ventilador de exaustão por um relé. No Raspberry Pi Pico, o mesmo alarme fica assim em MicroPython:
1from machine import ADC, Pin
2import time
3
4gas = ADC(26) # GP26 (ADC0), AO bölücü üzerinden / AO through a divider
5buzzer = Pin(15, Pin.OUT)
6LIMIT = 30000 # 0–65535 arası eşik / threshold
7
8time.sleep(60) # ön ısıtma / warm-up
9while True:
10 value = gas.read_u16()
11 print(value)
12 buzzer.value(1 if value > LIMIT else 0)
13 time.sleep(0.5)Ideias de projetos com MQ-2
- Alarme de gás na cozinha: um alarme que toca um buzzer e acende um LED vermelho quando há vazamento de gás de botijão ou gás natural.
- Detector de fumaça: um sistema que avisa quando detecta fumaça de solda ou cheiro de queimado na oficina.
- Ventilação automática: um circuito que liga um exaustor por um relé quando o nível de gás sobe.
- Alarme de chama e gás: junte o MQ-2 com um sensor de chama para vigiar os dois perigos ao mesmo tempo.
- Detector com notificações no ESP32: mande uma mensagem no Telegram para o seu celular quando houver gás.
- Display de qualidade do ar: mostre a razão medida como gráfico em um display OLED.
Erros comuns e como corrigir
- Dispara o alarme logo depois de ligar: o sensor ainda não aqueceu; pule a verificação do alarme nos primeiros 1–3 minutos.
- O valor nunca muda: o pino DO está ligado na entrada analógica em vez do AO, ou o módulo não está recebendo 5 V.
- O LED DOUT fica sempre aceso: o limite do potenciômetro está baixo demais; gire-o no ar limpo até o LED apagar.
- Os valores mudam ao longo do dia: a temperatura e a umidade estão variando; reajuste o limite no ar limpo de vez em quando.
- No ESP32 o valor analógico fica sempre no máximo: o sinal AO de 5 V está ligado direto; use um divisor de tensão.
- A bateria acaba rápido: o aquecedor puxa cerca de 150 mA sem parar; o MQ-2 não serve para funcionar muito tempo com bateria.
Juntar o MQ-2 com um buzzer e um LED é o jeito mais fácil de passar dos sensores para um sistema de aviso de verdade. No app BlueGrays você encontra o básico dos sensores de gás, um alarme com sensor de chama e de gás e um alarme detector de gás e fumaça com MQ-2 no ESP32, com esquemas do circuito e código.
Perguntas frequentes
Quais gases o MQ-2 detecta?
O MQ-2 é sensível a GLP, propano, butano, metano (gás natural), hidrogênio, vapor de álcool e fumaça. Ele reage só fracamente ao monóxido de carbono. Como reage a muitos gases ao mesmo tempo, sozinho ele não consegue dizer qual gás está presente.
Quanto tempo o MQ-2 precisa para aquecer?
Espere alguns minutos (1–3 minutos na prática) a cada vez que ligar para as leituras estabilizarem. Se você vai usar um sensor novo pela primeira vez, recomenda-se deixá-lo funcionando sem parar por 24–48 horas para obter os resultados mais estáveis.
Para vazamentos de gás natural, devo usar o MQ-2 ou o MQ-4?
O MQ-2 também detecta metano, mas reage a muitos gases. O MQ-4 é mais seletivo para gás natural (metano), então é a escolha mais adequada. De qualquer forma, não use um sensor de hobby no lugar de um detector de gás certificado.
Dá para medir monóxido de carbono com o MQ-2?
O MQ-2 reage só fracamente ao monóxido de carbono. Para CO usa-se o MQ-7, com o aquecedor alternando entre uma tensão alta e uma baixa; mas, por segurança, use sempre um detector de CO que atenda à norma EN 50291.
É normal o sensor esquentar?
Sim. O aquecedor interno mantém o elemento sensor em temperatura alta o tempo todo, então a tela metálica fica bem quente ao toque. Mantenha o sensor longe de materiais inflamáveis e não toque nele enquanto estiver funcionando.
Posso alimentar o MQ-2 com bateria?
Pode, mas não por muito tempo: o aquecedor puxa cerca de 150 mA sem parar. Um power bank de 2000 mAh dura cerca de 13 horas. Você pode calcular a autonomia do seu projeto com a ferramenta de duração da bateria; onde for preciso monitoramento contínuo, use uma fonte ligada na tomada.
Projetos para montar depois desta leitura
Ver todos os projetos
Uso de um sensor de gás
Um pequeno guardião que percebe um vazamento de gás na cozinha antes de você. O sensor de gás monitora o ar continuamente; enquanto está tudo bem, o LED verde fica aceso e, quando o gás no ar ultrapas

Alarme com sensores de chama e gás
Um pequeno guardião que avisa você imediatamente quando há um vazamento de gás ou surge uma chama. O sensor de gás monitora o gás no ar e o sensor de chama detecta a luz do fogo; enquanto está tudo be

Alarme detector de gás e fumaça com ESP32 e MQ-2
Neste projeto, um módulo sensor de gás MQ-2 detecta gases combustíveis (LPG, metano e propano) e fumaça, acionando um alarme tipo sirene em um buzzer passivo. A saída digital de limiar (DO) do sensor é conectada ao GPIO 4 do ESP32. Quando a concentração de gás ou fumaça ultrapassa o limiar, DO passa para LOW e o alarme é acionado. A sensibilidade é ajustada pelo potenciômetro do módulo. O buzzer passivo é acionado com tone() para criar um efeito de sirene que alterna entre duas frequências.
Mais artigos
App BlueGrays
Monte este circuito passo a passo pelo celular
Esquema do circuito, código e lista de componentes em uma só tela. Mais de 200 projetos com Arduino, ESP32 e Pico prontos para montar.
Escaneie com seu celular
Aponte a câmera para o código para abrir a loja de aplicativos do seu celular.
ou abrir a loja

