Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
1 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
Posted by
10 Comments
ago 23, 2015
feb 19, 2015
jun 04,
Los sensores de gas de la serie MQ son sensores analógicos por lo que son fáciles de implementar con cualquier microcontrolador.
2015
ago 06, 2016
jun 15, 2016
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
2 de 16
may 25, 2016
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
Estos sensores son electroquímicos y varían su resistencia cuando se exponen a determinados gases, internamente posee un calentador encargado de aumentar la temperatura interna y con esto el sensor pueda reaccionar con los gases provocando un cambio en el valor de la resistencia. El calentador dependiendo del modelo puede necesitar un voltaje entre 5 y 2 voltios, el sensor se comporta como una resistencia y necesita una resistencia de carga (RL) para cerrar el circuito y con este hacer un divisor de tención y poder leerlo desde un microcontrolador:
Pantalla Oficial LCD Touch de 7... S/. 470,00 S/. 500,00
Debido al calentador es necesario esperar un tiempo de calentamiento para que la salida sea estable y tenga las características que el fabricante muestra en sus datasheet, dicho tiempo dependiendo del modelo puede ser entre 12 y 48 horas. En el mercado, generalmente los sensores MQ se encuentran en módulos, lo que nos simplifica la parte de conexiones y nos facilitan su uso, solo basta con alimentar el módulo y empezar a leer el sensor, estos módulos también tienen una salida digital la cual internamente trabaja con un comparador y con la ayuda de un potenciómetro podemos calibrar el umbral y así poder interpretar la salida digital como presencia o ausencia del gas.
Pantalla Oficial LCD 03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
3 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
Touch de 7 pulgadas S/. 470,00
La diferencia entre los distintos tipos de sensores MQ es la sensibilidad a cierta gama de gases, más sensibles a algunos gases que a otros, pero siempre detectan a más de un gas, por lo que es necesario revisar los datasheet para escoger el sensor adecuado para nuestra aplicación. A continuación detallamos los principales sensores MQ:
Soporte para montaje en superficies paralelas a las guías de 8mm diámetro
Estos sensores son adecuados para detectar GLP, propano, metano, alcohol, hidrógeno, humo. Siendo más sensible al GLP y propano.
S/. 10,00
S/. 30,00
Es muy sensible al alcohol y de menor sensibilidad a la bencina, también es sensible a gases como GLP, Hexano, CO, CH4 pero con sensibilidad muy baja, la cual se puede despreciar si hay poca concentración de estos.
Rodamiento polimérico para guía de 8mm de diámetro S/. 15,00
Cristal oscilador de 16 MHz de frecuencia. Utilizado en Arduino Uno,...
Este sensor es de alta sensibilidad al monóxido de carbono (CO), pero también es sensible al H2.
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
4 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
S/. 2,00
Ideal para unir los extremos de nuestra correa GT2.
Se utilizan en equipos de control de calidad del aire para edificios y oficinas, son adecuados para la detección de NH3, NOx, alcohol, benceno, humo, CO2, etc.
S/. 10,00
El módulo Relay te permite controlar el encendido/apagado de equipos de... S/. 6,00
Este ultimo sensor es sensible en similar proporción a los gases mencionados, con lo que podemos determinar si el aire está limpio. Si necesitan información más detallada o de otros tipos de sensores pueden consultar los datasheet en el siguiente . Explicado lo anterior realicemos algunos ejemplos:
Sensor capacitivo te permite detectar objetos metálicos y no metálicos...
El mismo sensor MQ se los puede encontrar en dos placa distintas, cuyo funcionamiento es el mismo pero tienen diferente orden de pines: La conexión para leer la salida digital seria de la siguiente forma:
S/. 40,00
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
5 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
De igual forma si tenemos el otro modelo de placa:
Tan pronto se alimente el módulo este empezará a calentar, hay que esperar unos minutos para que el modulo caliente y tener un censado adecuado. En el ejemplo usaremos un MQ-3 (sensor de alcohol) pero el programa es el mismo para cualquier módulo MQ si se usa la salida digital, puesto que esta salida se comporta como 1 o 0. Tener en cuenta que esta salida es negada, 1 para ausencia de alcohol y 0 para presencia de alcohol. El Sketch para Arduino es el siguiente: int pin_mq = 2; void setup() { Serial.begin(9600); pinMode(pin_mq, INPUT); }
void loop() { boolean mq_estado = digitalRead(pin_mq);//Leemos el sens or if(mq_estado) //si la salida del sensor es 1 { Serial.println("Sin presencia de alcohol"); }
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
6 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
else //si la salida del sensor es 0 { Serial.println("Alcohol detectado"); } delay(100); }
En este coso la lectura desde Arduino es como leer cualquier entrada digital, y la sensibilidad del sensor se configura a través de la resistencia variable que trae el modulo, girando a la derecha se hace más sensible y necesitamos menos presencia de alcohol para activar la salida, de igual forma si giramos a la izquierda aumentamos el umbral necesitando mayor presencia del gas (alcohol) para que se active la salida.
Recordar que la salida del sensor es negado, por lo que cuando nos referimos a activar el sensor es cuando la salida es 0, en este estado el led del módulo también debe encenderse ya que internamente está con una resistencia a 5V. Cuando no hay presencia de alcohol el Led se apaga y la salida es un 1 lógico (5V) A continuación mostramos la salida del monitor serial en el momento cuando el módulo MQ-3 se expone a alcohol (aire con alcohol)
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
Para este caso debemos de conectar la salida analógica del módulo a una entrada analógica del Arduino:
Y de forma análoga para el otro modelo de placa:
La diferencia de utilizar la salida digital, es que usando la salida analógica podemos trabajar con diferentes niveles de presencia de gas y escalarlo de acuerdo a la necesidad de nuestra aplicación. A continuación mostramos un sketch para leer la salida analógica: void setup() { Serial.begin(9600); } void loop() {
7 de 16
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
8 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
int adc_MQ = analogRead(A0); //Lemos la salida analógica del MQ float voltaje = adc_MQ * (5.0 / 1023.0); //Convertimos l a lectura en un valor de voltaje Serial.print("adc:"); Serial.print(adc_MQ); Serial.print(" voltaje:"); Serial.println(voltaje); delay(100); }
Al tratarse de una salida analógica, el código es el mismo para cualquier tipo de sensor MQ con el que estén trabajando. Debido a que el modulo tiene una cámara de calentamiento a donde tiene que ingresar o salir el gas, el tiempo de respuesta es lento, el sensor seguirá detectando los residuos de gas que se quedan dentro de la cámara de calentamiento hasta que estos desaparezcan. A continuación mostramos valores que se obtuvieron para el sensor MQ-3 sin exponer a alcohol ni otro tipo gas.
Y cunado exponemos a aire con alcohol los datos obtenidos son los siguientes:
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
9 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
Tener en cuenta que todos los módulos son sensibles a más de un gas, claro que en diferente proporción; pero si se trabaja en ambientes en donde hay diferentes tipos de gases no podríamos diferenciar entre ellos y podríamos tener una referencia equivocada si solo necesitamos leer un gas.
Si en nuestra aplicación que estamos implementando necesitamos los valores en unidades correspondientes a la medición del gas, necesitamos escalar el valor leído, el problema de esto es que la relación entre la lectura analógica y el valor real no es lineal. Por lo que necesitamos estimar la curva que nos da el datasheet Los siguientes pasos los trabajamos para el MQ-3, pero se aplica analogamente para los otros MQ Por Ejemplo para el sensor MQ-3 según el datasheet la curva es la siguiente:
Debido a que nos da la curva y no la ecuación es necesario estimar y por regresión hallar la ecuación, en nuestro caso usaremos Excel, para eso ingresamos datos de la curva de Alcohol, la mayor cantidad de puntos que podamos, y graficamos en Excel. Agregamos línea de tendencia y escogemos ecuación potencial
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
10 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
La ecuación que obtenemos es: Alcohol=0.4091(Rs/Ro)^(-1.497) Alcohol es el valor de concentración de alcohol, Ro es una constante que equivale al valor de la resistencia del sensor cuando se lo expone a una concentración de 0.4mg/L y Rs es la resistencia del sensor, el cual leemos desde Arduino. Nosotros en el ejemplo anterior calculamos el voltaje leído del sensor, para calcular el valor de Rs despejamos la ecuación del divisor de voltaje que forma el sensor con la resistencia de carga RL que en la mayoría de módulos es de 1K. V_leido=5(1000/(Rs+1000)) Rs=1000((5-V)/V) El valor de Ro se calcula en laboratorio, Ro es el valor de Rs cuando se usa una muestra de aire con 0.4mg/L. Y hay que hacer esto para cada sensor puesto que Ro es diferente en cada sensor. Otra forma de calibrar es usando concentraciones conocidas, para esto es necesario en el caso del sensor de alcohol usar un alcoholímetro para calibrarlo. Para esto no es necesario hacer la regresión de la curva que nos da el datasheet la cual es válida siempre y cuando se mida en las condiciones indicadas. De dicha curva solo tomaremos la forma que tiene e incluso Ro lo consideramos como constante. La ecuación seria de la siguiente forma. Alcohol=a*(Rs)^b Para calcular las constantes a y b solo necesitamos tomar dos muestras, con nuestro sensor medimos el Rs de dichas muestras y con el alcoholímetro calculamos el valor correspondiente de concentración de alcohol para dichas muestras. Con esos dos puntos ingresamos a la ecuación y calculamos las dos constantes. Las dos formas anteriores son la forma correcta de calibrar nuestro sensor, hallando Ro con una muestra 0.4mg/L o usando un alcoholímetro para tomar muestras de referencia. Pero para no dejar inconcluso nuestro tutorial explicaremos otro método para conseguir de forma aproximada el valor de Ro y así
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
tener la ecuación resuelta. En el grafico de la ecuación potencial observamos que el valor de Rs/Ro se acerca a 0.1 para valores superiores a la máxima concentración de alcohol que el sensor puede censar, en los puntos cercanos a este punto, la variación de rs/ro es mínima por lo que los errores que podamos tener acá para calcular Ro son pequeños. Entonces asumiendo que el sensor se satura con 10mg/L al cual según la gráfica le corresponde un Rs/Ro de 0.12, los puntos sercanos por mayor variacion de alcohol que exista el rs/ro tendra variaciones minimas. Para estar en este punto generamos un ambiente con bastante alcohol y si medimos con nuestro sensor obtendremos un voltaje de 3.02, que equivale a un Rs=655, entonces (Rs/Ro)=0.12 si Rs=655 entonces Ro=5463 Con Ro calculado, ya tenemos una solución de la ecuación y con esto podemos obtener los valores aproximados de concentración de alcohol.
Cualquiera sea el método de Calcular la ecuación deberán de ingresarlo y modificar la ecuación en el sketch siguiente: void setup() { Serial.begin(9600); } void loop() { int adc_MQ = analogRead(A0); //Lemos la salida analógica del MQ float voltaje = adc_MQ * (5.0 / 1023.0); //Convertimos l a lectura en un valor de voltaje float Rs=1000*((5-voltaje)/voltaje); //Calculamos Rs co n un RL de 1k double alcohol=0.4091*pow(Rs/5463, -1.497); // calculamo s la concentración de alcohol con la ecuación obtenida. //-------Enviamos los valores por el puerto serial----------Serial.print("adc:"); Serial.print(adc_MQ); Serial.print(" voltaje:"); Serial.print(voltaje); Serial.print(" Rs:"); Serial.print(Rs); Serial.print(" alcohol:"); Serial.print(alcohol); Serial.println("mg/L"); delay(100); }
11 de 16
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
12 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
A continuación se muestra el resultado de sensar una muestra de aire con alcohol:
Mencionar nuevamente que todos los sensores MQ como los MQ-2, MQ-3, MQ-7, MQ-135, etc tienen su propia curva y las cuales lo pueden encontrar en sus datasheet correspondientes. Y la forma correcta de calibrar nuestros MQ es usar un instrumento maestro para tomar muestras y con estos puntos calcular las constantes de la curva.
Tags: 43
?
0
0
0
Compartir
3
Foe jul 13, 2016 Hola Estoy haciendo un detector de CH4 con un MQ2 Realicé la gráfica en exel y me da la fórmula 158.51e0.4788 La reemplazo por la que tienen ustedes en el ejemplo y la lectura (en ppm en mi caso) cuando le acerco gas disminuye en valor ( a ustedes el exponencial es negativo pero en mi caso me da positivo) Quisiera saber si me pueden orientar Gracias Foe Kohei
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
13 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
Naylamp jul 13, 2016 Foe, revisa nuevamente la ecuación que estas estimando, debe ser exponencial positiva, ten en cuente que en nuestro caso la gráfica es (Rs/Ro) VS Alcohol y en Excel lo graficamos invertida: alcohol VS (Rs/Ro)
luis bastidas jul 14, 2016 amigo buenas tardes, porque gráficas invertido en excel?
Naylamp jul 14, 2016 Hola Luis, solo es para tener despejada la variable de concentración de alcohol, también puedes graficar normalmente y posteriormente despejar la variable
Cristobal jul 26, 2016 Estimado estoy trabajando con un sensor MQ-135 y tengo problemas para encontrar el RO yo se que el valor de la atmosfera es de 392 ppm, y que la constante a=116,6020682 y b=-2,769034. pero no se como sacar el RO y el Rl saudos.
Naylamp jul 28, 2016 Para hallar las constantes de la ecuación necesitas conocer tantos puntos como numero de constantes. En tu caso si solo te falta Ro necesitas conocer un punto que sería 392ppm y con el sensor tienes que medir el correspondiente Rs para esa concentración, luego reemplaza en la ecuación y hallas Ro.
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
14 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
JUAN CARO ago 11, 2016 una duda, se asume que si mi valor de lectura de voltaje es alta la cantidad de alcohol igual es alta pero al momento de llevar mi ecuacion a labview sucede lo contrario con lectura pequeña de voltaje da alta concentracion de alcohol... a q se debe, gracias
Naylamp ago 12, 2016 Hola Juan, te debes estar equivocando en la ecuación, puede ser que estas calculando mal la ecuación o estas programando mal la ecuación.
Diego Andrés ago 30, 2016 Buenas tardes, antes que nada te agradezco este material que es de mucha ayuda.He hecho paso a paso tus procedimientos y algo tengo malo y no sé, por favor verifica.Diré todos los pasos y formulas: SENSOR MQ2 con gráfica de Alcohol y en el datasheet muestra un RL de 5K 1. Deje encendido los sensores por 24 horas y arrojan datos estables. 2. Realice la curva en excel de dos maneras. 1 como la haces regresión de potencia me arroja y = 19795x^-1,494 si mal no recuerdo a=19795 b=-1494. y la otra regresión que trabaja mejor para el alcohol con la gráfica de este sensor es la exponencial y me da y = 11925e^(-0,291x). 3. Con el mismo sensor (ya que no tengo un alcoholimetro) tomo el valor de RS sin acercar alcohol me arroja un valor de adc:110 voltaje:0.54 Rs:41500.00 alcohol:3670.07mg/L (creo que es mucho el valor de RS). Cuando acerco el alcohol Rs baja drasticamente a unos 8000 aproximadamente. 4. En este punto para calcular Ro no se si lo hago correctamente pero igual diré las dos formas que lo hallé. 1. tomo la ecuación del punto 2 sea cual regresión haya escogido y tomando el valor de Y del RS escogido en el punto 3 es decir adc=110 y despejo y obtengo Ro pero el valor obtenido me es muy bajo. que reemplazando en la formula 2 me dan unos valores demasiado grandes "adc:295 voltaje:1.44 Rs:12338.98 alcohol:22473.30mg/L". La otra forma como calculo Ro es como tu dices "(Rs/Ro)=0.12 si Rs=655 entonces Ro=5463" suponiendo cuando el sensor se satura y despejando Ro obtengo un numero demasiado grande y al acercarle alcohol cambias el resto de valores y
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
15 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
cuando veo el Ro comienza a descender en vez de subir los mg/L.Te agradecería que me ayudaras con este ya que tengo que conectar otros 2 sensores más. esto es lo que tengootra pregunta el siguiente porgrama lo hice utilizado la regresion potencial pero la mejor es la exponencial para quitar los euler se utiliza ln() pero en arduino ese logaritmo es log() o log10() ?? void loop() { int adc_MQ = analogRead(A7); //Lemos la salida analógica del MQ float voltaje = adc_MQ * (5.0 / 1023.0); //Convertimos la lectura en un valor de voltaje float Rs=5000*((5-voltaje)/voltaje); //Calculamos Rs con un RL de 1k double alcohol=19795*pow(Rs/13432.836, -1.494); // c //-------Enviamos los valores por el puerto serial-----------Serial.print("adc:"); Serial.print(adc_MQ); Serial.print(" voltaje:"); Serial.print(voltaje); Serial.print(" Rs:"); Serial.print(Rs); Serial.print(" alcohol:"); Serial.print(alcohol); Serial.println("mg/L"); delay(150); }disculpa que incomode espero me puedas ayudar.
Naylamp sep 2, 2016 Hola Diego, Verifica tu ecuación que has calculado, usa una herramienta para graficar tu ecuación y verificar si es igual a la gráfica inicial. No Tomes el valor de RL del datasheet, si bien es el recomendado pero no necesariamente el que vienen en el módulo, es decir si estas usando los módulos que generalmente vienen con otro valor, busca el RL en el módulo y trabaja con ese valor. Si estás buscando precisión, lo mejor es calibrarlo con un instrumento, con un alcoholímetro si vas a sensar alcohol. En arduino log(x) es para logaritmo natural de ‘x’, y log10(x) es para logaritmo de base 10.
* Name: * E-mail: (Not Published) Website: (Site url withhttp://)
03/10/2016 18:43
Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135
16 de 16
http://www.naylampmechatronics.com/blog/42_Tutorial-sensores-de-g...
* Comment:
Submit
Introduzca su dirección de correo electrónico
Naylamp Mechatronics, Trujillo Perú Llámanos ahora: 997646858 Email:
03/10/2016 18:43