Descripción
Sensores MQ: detectores de gas y contaminación de bajo costo
Descubramos un conjunto de detectores de gas y contaminación de bajo costo a los que se puede acceder fácilmente desde Arduino World.
Detectar y medir la contaminación y los principales gases (aquellos con los que nos podemos encontrar en nuestra vida diaria) siempre es relevante; estas operaciones se realizan mediante sensores específicos, que a menudo son muy costosos. Afortunadamente, durante un tiempo es posible encontrar sensores confiables y de bajo costo a la venta: esos son los de la serie MQ. Se encuentran entre los más apreciados, ya que permiten – en las diferentes aplicaciones – la detección de diversos tipos de gases, aerosoles y partículas (como humo y cenizas). Además, son muy baratos y se pueden adquirir fácilmente, incluso en las distintas tiendas online (lo que los convierte en los predilectos de quienes gustan de experimentar). Aunque son muy populares, sin embargo, no están muy bien documentados y, por lo tanto, no es fácil encontrar una biblioteca en línea para Arduino, que esté lista y sea capaz de correlacionar las señales proporcionadas con las concentraciones detectadas en el aire. Por esta razón, pensamos cerrar esta brecha proponiendo, en este artículo, una descripción general sobre el tema y una biblioteca ad hoc para Arduino.
Comencemos diciendo que los sensores MQ están hechos de un elemento calefactor, llamado calentador, y de un sensor electroquímico; El calentador es necesario para llevar el sensor a las condiciones operativas adecuadas, ya que solo a ciertas temperaturas la superficie sensible del sensor (típicamente, un óxido metálico) reaccionará y dejará que los gases y las partículas (las que deseamos detectar ) penetrarlo.
El componente que reacciona a la variación del gas ha sido tratado químicamente para modificar su resistencia eléctrica en función de la presencia de gases específicos. En la práctica, es una resistencia variable, cuyas fluctuaciones dependen de la cantidad de gas que se encuentre en el aire en el que se encuentra el sensor.
Más adelante veremos cómo correlacionar las variaciones en la resistencia del sensor a la concentración de gas, que se expresa en ppm (partes por millón).
Características de los sensores MQ
La mayoría de los sensores de la serie MQ funcionan con voltajes de trabajo que suelen ser de 5 V y tienen una absorción menor de 1 vatio (5 V aquí significa menos de 200 miliamperios); tal absorción se debe principalmente a la potencia de extracción del elemento calefactor. En cuanto a algunos sensores MQ, el calentador se alimenta a 2V: un voltaje bajo y atípico, que podríamos obtener usando una técnica PWM, a partir de 5V; en la práctica conduciríamos un calentador de pulsos (cuya longitud de pulso variaría), junto con un circuito que se basa en un modulador PWM. En teoría, deberíamos poder generar pulsos de 5 V con un ciclo de trabajo del 40%, mediante esta solución.
Los sensores de la serie MQ se utilizan principalmente en ambientes cerrados que de todos modos no deberían ser particularmente fríos o cálidos, dado que la temperatura del filamento calefactor se mantiene bastante constante por su variación de resistencia (crece cuando la temperatura aumenta, y viceversa) pero sí no está estabilizado ni controlado por ningún circuito, por lo que si el ambiente es demasiado frío o cálido, la medida obtenida resultaría alterada.
Cada sensor de la serie reacciona a más de un gas, incluso si normalmente sólo uno o dos gases lo excitan más, y suministran variaciones de resistencia relevantes, como se muestra en los gráficos de sensibilidad que se muestran en estas páginas.
Encontrará una lista de los principales sensores, junto con los gases y aerosoles que más detectan, de la siguiente manera:
- MQ-2 = gases inflamables como GLP y propano;
- MQ-3 = etanol;
- MQ-4 = metano (CH4) y gas natural;
- MQ-5 = GLP y metano;
- MQ-6 = GLP y metano;
- MQ-7 = monóxido de carbono (CO) e hidrógeno (H2);
- MQ-8 = hidrógeno (H2);
- MQ-135 = amoniaco gaseoso (NH3), benceno, alcohol etílico y dióxido de carbono (CO2).
Código
int Buzzer = 6;
int Gas_analog = A0;
int Gas_digital = 7;
void setup() {
Serial.begin(115200);
pinMode(Buzzer, OUTPUT);
pinMode(Gas_digital, INPUT);
}
void loop() {
int gassensorAnalog = analogRead(Gas_analog);
int gassensorDigital = digitalRead(Gas_digital);
Serial.print("Sensor de gas: ");
Serial.print(gassensorAnalog);
Serial.print("\t");
Serial.print("Gas : ");
Serial.print(gassensorDigital);
Serial.print("\t");
Serial.print("\t");
if (gassensorAnalog > 1000) {
Serial.println("Gas");
digitalWrite (Buzzer, HIGH) ; //send tone
delay(1000);
digitalWrite (Buzzer, LOW) ; //no tone
}
else {
Serial.println("No hay Gas");
}
delay(100);
}
Valoraciones
No hay valoraciones aún.