martes, 25 de octubre de 2016

Arduino gas sensor MQ-6 y Display TFT SPI 1.8"

En este proyecto se emplean el sensor de gas GLP MQ-6, un modulo tft 1.8" y un Arduino nano.










Quería cuantificar el nivel de concentración de GLP como en un tester y que no fuera el típico circuito que solo activa algo al detectar una cierta concentración de gases.

 GLP es la mezcla de gases licuados  presentes en el gas natural o disueltos en el petroleo. Son una mezcla de propano, butano y Gas Natural (Metano) mayormente.

 El sensor MQ-6 detecta la presencia de GLP, en concentraciones entre 300 y 10.000 ppm. Traduce este rango en otro entre 0 y 5 voltios que muestra en su salida analógica de forma proporcional.

 El micro-controlador lee la salida analógica del sensor MQ-6 cada 80 ms. y calcula un promedio con cada 10 lecturas analógicas. Con esto imprimimos cada 0.8 s. este valor promedio en pantalla. Pero antes es necesario realizar una sencilla conversión de rangos (de 0-1023 ADC a 300-10000 ppm) con la funcion map y que mostramos en pantalla de forma numérica y gráfica a través de dos barras de progreso alternativas:
  
 -El rango entre 400 y 2000 ppm se representa por medio de su valor numérico y con una barra dinámica verde.





 -El rango entre 2001 y 10000 se representa por medio de su valor numérico y con una barra dinámica roja.




  El cambio de rango o escala se realiza de forma automatica.   En la practica he notado que los valores por debajo de 400 ppm son algo aleatorios, imprecisos y por eso no se muestran. El rango inferior a 400 ppm se representa como "<400 ppm" y con una pequeña fracción amarilla en la barra verde.




 La barra de progreso es en realidad un rectángulo lleno al que se modula el valor de su longitud horizontal con el valor de la variable promedio en ppm , que previamente a sido mapeada en funcion de la longitud gráfica máxima necesaria (en píxeles) y que se sitúa dentro de otro rectángulo mayor a modo de marco.

 Cuando el valor promedio supera 2000 ppm tenemos "HIGH"  en el pin digital 12 de Arduino, esto nos sirve para activar cualquier cosa que se nos ocurra como un led, un Buzzer, un mosfet para mayor potencia, etc.

Aquí podéis coger el sketch

  El funcionamiento en la practica parece ser correcto aunque no me ha sido posible comprobar la exactitud de las lecturas.





 Esto solo es otro proyecto educativo sin mayores pretensiones.
 Nada más, solo espero que te haya gustado.



 saludos y hasta pronto.

 AGP.miniproyects

3 comentarios:

  1. Disculpa puedes compartir los componentes que utilizaste en tu placa? Como la bateria de Litio , los switches y el boost converter,etc

    ResponderEliminar
  2. Hola Jose Diaz.

    Se trata de un conjunto de módulos conectados a modo de power bank, que uso para varios proyectos que llevo a cabo y que con el tiempo iré subiendo.
    Como bien has observado, utilizo la batería de Litio , los switches y el boost converter en realidad dos uno ajustable con salida por conector 2.1mm y otro a 5v fijos con salida USB, a este le he soldado un cablecito para derivar su salida a placa y con esto alimento a Arduino en su pin de 5V. Estos dos módulos son alimentados través de dos interruptores.


    La batería esta controlada por un modulo cargador y protector al que se conectan los interruptores por su salida.

    Para mas info sobre estos modulos mira en google:

    USB Lithium Battery Charger Module Board With Charging And Protection

    3V To 5V 1A USB Charger DC-DC Converter Step Up Boost Module For Phone

    XL6009 Step Up Boost Voltage Power Supply Module Adjustable Converter Regulator

    SS12D00G3 2 Position SPDT 1P2T 3 Pin PCB Panel Mini Vertical Slide Switch

    ResponderEliminar
  3. great project!!
    just a little question regarding conversion range, why use 300-10000 value? from datasheet it use 200-10000 range

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.