Detector de gas con Arduino y sensor MQ-2 paso a paso
Un olor raro en la cocina a las once de la noche y la duda de siempre: ¿es la bombona o son imaginaciones?

Un olor raro en la cocina a las once de la noche y la duda de siempre: ¿es la bombona o son imaginaciones? Montar un detector de gas con Arduino y un sensor MQ-2 cuesta menos de 10 euros, se termina en una tarde y te enseña cómo funcionan de verdad los sensores de gas, con sus virtudes y sus límites.
En el hacklab hemos montado este proyecto en tres talleres distintos y siempre aparecen los mismos errores: lecturas que bailan, alarmas que saltan solas y umbrales copiados de internet que no sirven para nada. Aquí va el montaje completo, el código explicado y, sobre todo, la calibración que hace que el aparato sea útil.
Qué necesitas para el detector de gas con Arduino
- Arduino Uno o Nano (un clon de 4 a 6 euros sirve perfectamente).
- Módulo MQ-2 con placa, potenciómetro y comparador LM393. Entre 2 y 3 euros.
- Zumbador activo de 5 V.
- LED rojo y LED verde con resistencias de 220 ohmios.
- Protoboard y cables dupont.
- Fuente de 5 V de al menos 1 A, por ejemplo un cargador de móvil.
Si es tu primer montaje en placa, repasa antes la guía sobre cómo usar una protoboard paso a paso sin errores. Y para calcular las resistencias de los LED tienes el método explicado en la entrada sobre la resistencia para un LED.
Cómo funciona el sensor MQ-2
El MQ-2 tiene dentro una pequeña capa de dióxido de estaño calentada por una resistencia. En aire limpio, esa capa conduce poco. Cuando hay gases combustibles como butano, propano, metano, hidrógeno o vapores de alcohol, la resistencia del material baja y la tensión de salida sube.
Dos detalles que conviene saber desde el principio:
- Consume bastante. El calentador necesita unos 150 mA a 5 V, unos 750 mW. Funciona desde el pin de 5 V del Arduino alimentado por USB, pero se calienta al tacto. Es normal.
- Necesita precalentamiento. La primera vez, déjalo encendido entre 24 y 48 horas para estabilizarlo. Después, cada vez que lo enciendas, espera unos 2 o 3 minutos antes de fiarte de las lecturas.
El módulo tiene dos salidas. AO es analógica, una tensión entre 0 y 5 V que el Arduino lee como un valor de 0 a 1023. DO es digital: pasa a nivel bajo cuando la lectura supera el umbral que marques con el potenciómetro azul. Nosotros usamos AO porque permite ajustar el umbral en el código y ver la evolución.
Conexiones paso a paso
- VCC del MQ-2 al pin 5V del Arduino.
- GND del MQ-2 a GND.
- AO del MQ-2 al pin A0.
- Zumbador: positivo al pin 8, negativo a GND.
- LED rojo: ánodo al pin 12 a través de la resistencia de 220 ohmios, cátodo a GND.
- LED verde: ánodo al pin 11 a través de su resistencia, cátodo a GND.
Si quieres que el detector corte una electroválvula o encienda un extractor, no lo conectes directamente: usa un relé y lee antes cómo usar un módulo relé con Arduino sin riesgos, sobre todo si hay 230 V de por medio.
El código y la calibración
El programa hace tres cosas: espera el precalentamiento, mide el valor base en aire limpio durante 30 segundos y después compara cada lectura con esa base. Así el umbral se adapta a tu sensor concreto y a tu habitación, en lugar de usar un número fijo copiado de otro proyecto.
La lógica, explicada en pasos:
- En setup, configura los pines 8, 11 y 12 como salidas y abre el monitor serie a 9600 baudios.
- Espera 120 segundos con el LED verde parpadeando para indicar el precalentamiento.
- Toma 60 lecturas de A0, una cada medio segundo, y calcula la media. Ese es tu valor base. En nuestras pruebas salía entre 90 y 180 según el sensor.
- En loop, lee A0 diez veces seguidas y haz la media para suavizar el ruido.
- Si la media supera el valor base más 150, enciende el LED rojo y el zumbador. Si no, LED verde encendido y zumbador apagado.
- Imprime la lectura por el monitor serie cada segundo para poder vigilarla.
El margen de 150 puntos es un punto de partida. Con nuestros sensores, un mechero de butano apretado sin llama a 10 cm del sensor subía la lectura a más de 500 en dos segundos, mientras que cocinar normal o una ventana abierta movía la base como mucho 40 o 50 puntos. Ajusta el margen hasta que la cocina diaria no dispare la alarma y una fuga simulada sí lo haga.
Cómo probarlo sin riesgos
Usa un mechero de butano, aprieta el pulsador sin encender la chispa durante un segundo cerca del sensor, y aléjalo. Hazlo con la ventana abierta, sin llamas cerca y nunca dentro de una caja cerrada. La lectura debería volver a la base en menos de un minuto.
Dónde colocarlo
La posición depende del gas. El butano y el propano de las bombonas pesan más que el aire y se acumulan abajo, así que el sensor va a unos 30 cm del suelo. El gas natural, que es sobre todo metano, pesa menos que el aire y sube: el sensor va a unos 30 cm del techo. En ambos casos, a uno o dos metros del aparato de gas, lejos de la campana extractora y de vapores directos de la cocina.
Lo que nadie te dice: esto no sustituye a un detector homologado
En muchos tutoriales se presenta este montaje como un detector de gas para casa y ya está. No estamos de acuerdo, y conviene decirlo claro. El MQ-2 responde a muchos gases a la vez, también al alcohol y al humo, su sensibilidad cambia con la temperatura y la humedad, y envejece con los meses. Un Arduino casero tampoco tiene alimentación de respaldo ni ha pasado ningún ensayo.
Los detectores domésticos de gas certificados según la norma EN 50194 cuestan entre 25 y 50 euros y llevan sensores calibrados de fábrica. Si en tu casa hay gas, pon uno de esos. Nuestro montaje es un proyecto excelente para aprender, para registrar datos en un taller o para un aviso adicional, pero no para ser la única protección. Si alguna vez huele a gas de verdad: no toques interruptores, abre ventanas, cierra la llave y sal a llamar a emergencias.
Mejoras para la siguiente tarde
- Añade una pantalla OLED de 0,96 pulgadas para ver la lectura sin ordenador.
- Cambia a un ESP32 para mandar avisos al móvil por wifi, con la misma lógica que usamos en la estación meteorológica con ESP32 y BME280.
- Guarda las lecturas en una tarjeta microSD para ver cómo cambia la base a lo largo de una semana.
Preguntas frecuentes
¿Qué gases detecta el sensor MQ-2?
Detecta butano, propano, metano, hidrógeno, vapores de alcohol y humo. No distingue entre ellos: solo indica que la concentración de gases combustibles ha subido. Para un gas concreto hay sensores más específicos, como el MQ-4 para metano o el MQ-7 para monóxido de carbono.
¿Cuánto tiempo tarda en calentar el MQ-2?
La primera vez conviene dejarlo encendido entre 24 y 48 horas para que se estabilice. Después basta con 2 o 3 minutos cada vez que lo enciendes. Durante ese tiempo las lecturas suben y bajan y no conviene activar alarmas.
¿Puedo usar un detector de gas con Arduino en casa?
Puedes usarlo como proyecto de aprendizaje o como aviso adicional, pero no como única protección. No está certificado, su sensibilidad varía con el tiempo y depende de que el Arduino siga encendido. Para la seguridad real instala un detector homologado según la norma EN 50194.
More in Proyectos
Proyectos
Cómo hacer un reloj con Arduino y el módulo DS3231
Montas un reloj con Arduino usando millis(), lo dejas encendido una semana y descubres que va dos minutos adelantado.
Proyectos
Cómo hacer una cerradura RFID con Arduino paso a paso
Pierdes las llaves del taller dos veces al mes, o quieres que tu hermano pequeño deje de abrir el cajón de las herramientas.
Proyectos
Estación meteorológica casera con ESP32 y sensor BME280
El primer invierno que montamos una estación meteorológica casera en el balcón del hacklab, marcaba 3 grados más que el...