Detector de gases con Arduino y la familia de sensores MQ Deja un comentario

arduino-sensor-gas-mq

Los sensores de gases MQ son una familia de dispositivos diseñados para detectar la presencia de distintos componentes químicos en el aire. Podemos conectar estos dispositivos a un autómata o procesador como Arduino.

Existe una gran variedad de sensores MQ. Cada modelo está diseñado para detectar una o más sustancias, pensadas para un uso específico, como por ejemplo detección gases inflamables, calidad del aire o detección de alcohol en aire respirado.

Los sensores de gases MQ suelen proporcionarse con una placa de medición estándar con el comparador LMC662 o similar, que permite obtener la lectura tanto como un valor analógico, como un valor digital cuando se supera un cierto umbral regulado a través de un potenciómetro ubicado en la placa.

Los sensores de gases deben ser calibrados antes de obtener una medida precisa. Aun calibrados estos sensores no disponen de la garantía necesaria para formar parte de un sistema de seguridad.

 

No usar estos sensores en aplicaciones de las que dependa la seguridad de personas o equipamientos.

Pese a sus limitaciones, los sensores de gases tipo MQ son muy usados en proyectos de electrónica casera con Arduino. Por ejemplo, podemos hacer encender o apagar un ventilador en función de la calidad del aire, hacer un pequeño detector de alcoholemia, o una alama que suene al detectar humos.

Los sensores de gas MQ son dispositivos relativamente baratos. El precio varía de un modelo a otro pero, en general, oscila entre 1 a 1.5€, en vendedores internacionales de eBay y AliExpress.

arduino-sensor-gas-mq-componente

Los sensores MQ están compuestos por un sensor electro-químico que varía su resistencia al estar en contacto con las sustancias.

Los sensores de gases son dispositivos con alta inercia, es decir, la respuesta necesita tiempos largos para estabilizarse tras un cambio de concentración de los gases medidos. Ello es debido a la necesidad física de que el gas abandone el material sensible, lo cual es un proceso lento.

Todos los modelos MQ disponen de un calentador necesario para elevar la temperatura del sensor, y que sus materiales adquieran la sensibilidad. Mientras el calentador no alcance la temperatura de funcionamiento, la lectura del sensor no será fiable.

El tiempo de calentamiento depende de cada modelo de sensor. En la mayoría de modelos es suficiente para con unos pocos minutos pero algunos modelos requieren hasta 12 y 48 horas hasta obtener mediciones estable.

Por otro lado, cada modelo necesita su propia tensión para alimentar el calentador. En muchos modelos esta tensión es de 5V, pero algunos modelos tienen condicionantes especiales para la alimentación.

El consumo de los sensores MQ puede ser elevado debido al calor necesario para funcionar el calentador, que puede llegar hasta 800 mW en algunos modelos. Esto es superior a la potencia que puede suministrar el regulador de Arduino, por lo que será necesario proporcionar una fuente de alimentación externa.

A continuación, tenéis una tabla de resumen con los distintos modelos de sensores disponibles, los gases a los que son sensibles, y algunos datos sobre el calentador.

No obstante, consultar detalladamente el Datasheet de cada sensor MQ particular antes de emplearlo para detallar sus especificaciones técnicas, especialmente la tensión de alimentación del calentador, el tiempo de calentamiento, y la curva de sensibilidad del sensor.

 

Modelo Sustancias detectadas Calentador
MQ-2 Metano, butano, GLP, humo 5V
MQ-3 Alcohol, Etanol, humo 5V
MQ-303A Alcohol, etanol, humo 0.9V
MQ-4 Metano, gas natural comprimido (GNP) 5V
MQ-5 Gas natural, GLP 5V
MQ-6 Butano, GLP 5V
MQ-306A Butano, GLP 0.9V
MQ-7 Monóxido de carbono Alternado 5V y 1.4V
MQ-307A Monóxido de carbono Alternado 0.2 y 0.9V
MQ-8 Hidrógeno 5V
MQ-9 Monóxido de carbono, gases inflamables Alternado 5V y 1.5V
MQ-309A Monóxido de carbono, gases inflamables Alternado 0.2 y 0.9V
MQ-131 Ozono 6V
MQ-135 Benceno, alcohol, humo, calidad del aire 5V
MQ-136 Ácido sulfhídrico 5V
MQ-137 Amoniaco 5V
MQ-138 Benceno, tolueno, alcohol, acetona,
propano, formaldeido, hidrógeno
5V
MQ-214 Metano, gas natural 5V
MQ-216 Gas natural, gas carbón 6V
MG-811 Dióxido de cargono 6V
AQ-104 Calidad del aire *
AQ-2 Gases inflamables, humo
AQ-3 Alcohol, Benceno
AQ-7 Monóxido de carbono

 

* Conviene amplificación

El esquema eléctrico es sencillo. Alimentamos el módulo conectando GND y 5V a los pines correspondientes de Arduino.

Ahora si queremos usar la lectura digital, conectamos la salida DO a una de las entradas digitales de Arduino.

arduino-sensor-gas-mq-esquema

Opcionalmente, podemos calibrar el umbral de disparo de la salida digital con el potenciómetro instalado en el módulo.

La conexión vista desde Arduino quedaría así,

Si quisiéramos emplear el valor analógico, simplemente conectaríamos la salida AO del sensor a una entrada analógica de Arduino.

Lectura digital

El siguiente ejemplo muestra la lectura digital del sensor. El código es muy, simplemente utilizamos una entrada digital para comprobar el estado del sensor, empleando el puerto serie para informar de la detección. En un ejemplo real, realizaríamos las acciones oportunas ante una detección.

Lectura analógica

En el siguiente ejemplo realizamos la lectura analógica del sensor. Al igual que el anterior, es código es muy sencillo. Simplemente empleamos una entrada analógica cualquiera para leer la salida analógica del sensor, y mostramos el resultado por puerto serie.

Leer la concentración

En el siguiente ejemplo, empleamos la lectura analógica para determinar la concentración del gas normalmente en ppm (partes por millón), pero algunos sensores usan otras unidades como mg/L o bpm (partes por billón)

El Datasheet de cada sensor proporciona unas gráficas que permiten obtener la concentración del gas a partir de la relación entre la resistencia del sensor R0 y la resistencia medida Rs. También es necesario conocer la resistencia Rl empleada en el módulo para realizar la lectura del sensor MQ.

Por ejemplo, la siguiente imagen muestra las curvas de concentración de cada gas medido en un sensor MQ-2

arduino-sensor-gas-mq-curvas

 

Tendréis que tomar como referencia las curvas de concentración del Datasheet del sensor que estéis usando.

Las gráficas se disponen en escala logarítmica para ambos ejes y, en general, son aproximadamente rectas bajo estas escalas. Por lo que la concentración resultará,


Concentracion = 10^{(A cdot log (Rs/R) + B)}

Para determinar la concentración necesitaremos la recta que la aproxima, para lo cuál debemos coger dos puntos cuales quiera de las gráficas P0 = {X0, Y0} y P1 = {X1, Y1}, resultando la ecuación de la recta


Y = A cdot x + B

Siendo

[one_half] A = frac {Y_1-Y_0}{X_1-X_0}
[/one_half]

[one_half_last] B = Y_0-A cdot X_0
[/one_half_last]

 

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección tutoriales de Arduino

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?