El sensor de gas MQ-7, también es uno de los sensores de gas más interesantes que se encuentran disponibles en el mercado, a la par que el sensor MQ-3. Este sensor es ideal para la detección de monóxido de carbono (CO) en el aire, siendo capaz de detectar concentraciones que varían desde 20 a 2000 ppm (partes por millón).

Además de ser un dispositivo capaz de detectar concentraciones de CO en el aire, también es capaz de detectar otros gases entre los que destaca el butano, que muchos de nosotros tenemos presente en nuestras cocinas, aunque también es muy utilizado como combustible para mecheros.El único inconveniente de este sensor a la hora de detectar gas butano, es que no se sabe con certeza a qué nivel de toxicidad equivalen los valores que la salida digital del sensor nos da en presencia de gas butano, es decir, si acercamos el gas butano de un mechero al sensor durante unos instantes, su salida digital alcanza valores próximos a 500, en cambio cuando no hay presencia de gas butano en el aire el sensor baja hasta los 150, pero no se sabe si por ejemplo cuando nos da 375 si es un valor para poca, moderada, o alta toxicidad.Teniendo en cuenta los valores máximos y mínimos del sensor, he realizado la siguiente tabla para las alarmas del sensor, aunque repito que no son válidas para asegurar nuestra salud en exposición al gas butano.

Para agilizar la simulación en vez de poner como valor mínimo de 150 (**Tabla), que realmente es el que el sensor nos da cuando no hay presencia de gas butano en el aire, lo he subido a 300 para que se acorte el tiempo que tarda en volver a estabilizarse el sensor cuando dejamos de suministrarle gas con el mechero (para más información consultar los comentarios del código del programa).

Como nota aclaratoria les comento que para este ejemplo se utiliza un módulo (FC-22) con el sensor de gas MQ-7 adaptado a él, lo que facilita muchísimo las conexiones del circuito. Para aquellos que utilicéis el sensor MQ-7 por separado, tenéis que tener un cierto cuidado con las resistencias PULL-UP necesarias para el correcto funcionamiento del sensor, entre otras cosas.

Lo que vas a necesitar para realizar el proyecto es lo siguiente:

  • Arduino UNO
  • Cable USB tipo A-B.
  • Módulo sensor de gas MQ-7 (Butano).
  • Módulo LCM 1602 I2C V1.
  • Display 16×2 LCD 1602.
  • 3 LEDS de 3mm (Verde, Amarillo y Rojo).
  • 3 resistencias de 220Ω.
  • Zumbador piezoeléctrico (Activo)
  • Protoboard.
  • Cables de conexión.

Código del programa:

DESCRIPCIÓN DEL PROGRAMA
   
    En este programa mostramos el nivel de gas butano que hay en el aire, cuando acercamos un
    mechero sin llama (solo gas). Este nivel será mostrado mediante mensajes de texto a través
    de un LCD 1602 conectado a arduino a través de comunicación I2C y también mediante 3 alarmas
    luminosas (LED Verde, Amarillo y Rojo) y una alarma sonora (Zumbador).
   
 
    ESQUEMA DE CONEXION
   
                                      +-----+
         +----[PWR]-------------------| USB |--+
         |                            +-----+  |
         |         GND/RST2  [ ][ ]            |
         |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |   SCL del módulo I2C conectado al LCD 1602
         |          5V/MISO2 [ ][ ]  A4/SDA[ ] |   SDA del módulo I2C conectado al LCD 1602
         |                             AREF[ ] |
         |                              GND[ ] |
         | [ ]N/C                    SCK/13[ ] |  
         | [ ]IOREF                 MISO/12[ ] |  
         | [ ]RST                   MOSI/11[ ]~|  
         | [ ]3V3    +---+               10[ ]~|  
         | [ ]5v    -| A |-               9[ ]~|  
         | [ ]GND   -| R |-               8[ ] |  
         | [ ]GND   -| D |-                    |
         | [ ]Vin   -| U |-               7[ ] |   LED_VERDE(+)
         |          -| I |-               6[ ]~|   LED_AMARILLO(+)
     AD  | [ ]A0    -| N |-               5[ ]~|   LED_ROJO(+)
         | [ ]A1    -| O |-               4[ ] |   Zumbador(+)
         | [ ]A2     +---+           INT1/3[ ]~|  
         | [ ]A3                     INT0/2[ ] |  
         | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
         | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
         |            [ ] [ ] [ ]              |
         |  UNO_R3    GND MOSI 5V  ____________/
          \_______________________/
 
  NOTAS:
 
   - Conexión del sensor MQ-7:
      - VCC --> +5V.
      - GND --> GND.
      - AD --> Pin analógico A0 de Arduino.
   - La alimentación y la masa del módulo LCM 1602 I2C V1 van directamente conectadas a VCC (+5V) y GND
     respectivamente.
   - Cátodo(-) de los LEDS (pata más corta) a GND a través de una R=220 omhs (diferente para cada uno)
   - Zumbador(-) a GND.
*/
 
  // Importar librerías
  #include <Wire.h> // Librería comunicación I2C
  #include <LiquidCrystal_I2C.h> // Librería LCD I2C
 
  // Declaración del objeto
  // Terminales de conexión del LCD
  //                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
  LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
 
  int ZUMBADOR = 4; // Pin digital para el zumbador
  int LED_ROJO = 5; // Pin digital para el LED Rojo
  int LED_AMARILLO = 6; // Pin digital para el LED Amarillo
  int LED_VERDE = 7; // Pin digital para el LED Verde
  int sensor_MQ7 = A0; // Pin Analógico para el sensor MQ-7
  int valor_sensor; // Variable para guardar el valor del sensor
 
  void setup()
  {
    pinMode(ZUMBADOR, OUTPUT);  // Pin digital 4 como salida
    pinMode(LED_ROJO, OUTPUT);  // Pin digital 5 como salida
    pinMode(LED_AMARILLO, OUTPUT);  // Pin digital 6 como salida
    pinMode(LED_VERDE, OUTPUT);  // Pin digital 7 como salida
   
    lcd.begin(16,2);   // Inicializa el LCD para 16x2
    lcd.backlight(); // Enciende el LED de fondo del LCD (backlight)
   
    lcd.clear(); // Borra la pantalla
    lcd.setCursor(0,0); // Posición 0,0 del LCD
    lcd.print("<< SENSOR MQ7 >>");
    delay(3000); // Retardo
  }
 
  void loop()
  {
    // Se lee el valor del sensor MQ-7 y se guarda en valor_sensor
    valor_sensor = analogRead(sensor_MQ7);
   
    // Se compara valor_sensor y se opera en consecuencia
   
    // Si valor_sensor es menor que 300
    if (valor_sensor < 300)
    {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("NO HAY GAS!!!");
      lcd.setCursor(0,1);
      lcd.print(">VALOR MQ-7: ");
      lcd.println(valor_sensor);
      digitalWrite(LED_VERDE, HIGH); // LED VERDE encendido
      digitalWrite(LED_AMARILLO, LOW); // LED AMARILLO apagado
      digitalWrite(LED_ROJO, LOW); // LED ROJO apagado
      digitalWrite(ZUMBADOR, LOW); // ZUMBADOR apagado
      delay(200); // Retardo
    }
   
     // Si valor_sensor está entre 300 y 400
    if (valor_sensor >= 300 && valor_sensor <= 400)
    {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("ALERTA GAS!!!");
      lcd.setCursor(0,1);
      lcd.print(">VALOR MQ-7: ");
      lcd.println(valor_sensor);
      digitalWrite(LED_VERDE, LOW); // LED VERDE apagado
      digitalWrite(LED_AMARILLO, HIGH); // LED AMARILLO encendido
      digitalWrite(LED_ROJO, LOW); // LED ROJO apagado
      digitalWrite(ZUMBADOR, LOW); // ZUMBADOR apagado
      delay(200); // Retardo
    }
   
     // Si valor_sensor es mayor que 400
    if (valor_sensor > 400)
    {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("PELIGRO GAS!!!");
      lcd.setCursor(0,1);
      lcd.print(">VALOR MQ-7: ");
      lcd.println(valor_sensor);
      digitalWrite(LED_VERDE, LOW); // LED VERDE apagado
      digitalWrite(LED_AMARILLO, LOW); // LED AMARILLO apagado
      digitalWrite(LED_ROJO, HIGH); // LED ROJO encendido
      digitalWrite(ZUMBADOR, HIGH); // ZUMBADOR encendido
      delay(200); // Retardo
    }
  }

Vídeo

https://miarduinounotieneunblog.blogspot.com/

Deja una respuesta

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