Advertisement
Villalba2006

POST_39

Nov 25th, 2016
3,093
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.63 KB | None | 0 0
  1. /*  TITULO: Detector de gas butano con semáforo de aviso.
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: marianodc83@gmail.com
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     En este programa mostramos el nivel de gas butano que hay en el aire, cuando acercamos un
  14.     mechero sin llama (solo gas). Este nivel será mostrado mediante mensajes de texto a través
  15.     de un LCD 1602 conectado a arduino a través de comunicación I2C y también mediante 3 alarmas
  16.     luminosas (LED Verde, Amarillo y Rojo) y una alarma sonora (Zumbador).
  17.    
  18.  
  19.     ESQUEMA DE CONEXION
  20.    
  21.                                       +-----+
  22.          +----[PWR]-------------------| USB |--+
  23.          |                            +-----+  |
  24.          |         GND/RST2  [ ][ ]            |
  25.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |   SCL del módulo I2C conectado al LCD 1602
  26.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |   SDA del módulo I2C conectado al LCD 1602
  27.          |                             AREF[ ] |
  28.          |                              GND[ ] |
  29.          | [ ]N/C                    SCK/13[ ] |  
  30.          | [ ]IOREF                 MISO/12[ ] |  
  31.          | [ ]RST                   MOSI/11[ ]~|  
  32.          | [ ]3V3    +---+               10[ ]~|  
  33.          | [ ]5v    -| A |-               9[ ]~|  
  34.          | [ ]GND   -| R |-               8[ ] |  
  35.          | [ ]GND   -| D |-                    |
  36.          | [ ]Vin   -| U |-               7[ ] |   LED_VERDE(+)
  37.          |          -| I |-               6[ ]~|   LED_AMARILLO(+)
  38.      AD  | [ ]A0    -| N |-               5[ ]~|   LED_ROJO(+)
  39.          | [ ]A1    -| O |-               4[ ] |   Zumbador(+)
  40.          | [ ]A2     +---+           INT1/3[ ]~|  
  41.          | [ ]A3                     INT0/2[ ] |  
  42.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  43.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  44.          |            [ ] [ ] [ ]              |
  45.          |  UNO_R3    GND MOSI 5V  ____________/
  46.           \_______________________/
  47.  
  48.   NOTAS:
  49.  
  50.    - Conexión del sensor MQ-7:
  51.       - VCC --> +5V.
  52.       - GND --> GND.
  53.       - AD --> Pin analógico A0 de Arduino.
  54.    - La alimentación y la masa del módulo LCM 1602 I2C V1 van directamente conectadas a VCC (+5V) y GND
  55.      respectivamente.
  56.    - Cátodo(-) de los LEDS (pata más corta) a GND a través de una R=220 omhs (diferente para cada uno)
  57.    - Zumbador(-) a GND.
  58. */
  59.  
  60.   // Importar librerías
  61.   #include <Wire.h> // Librería comunicación I2C
  62.   #include <LiquidCrystal_I2C.h> // Librería LCD I2C
  63.  
  64.   // Declaración del objeto
  65.   // Terminales de conexión del LCD
  66.   //                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
  67.   LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
  68.  
  69.   int ZUMBADOR = 4; // Pin digital para el zumbador
  70.   int LED_ROJO = 5; // Pin digital para el LED Rojo
  71.   int LED_AMARILLO = 6; // Pin digital para el LED Amarillo
  72.   int LED_VERDE = 7; // Pin digital para el LED Verde
  73.   int sensor_MQ7 = A0; // Pin Analógico para el sensor MQ-7
  74.   int valor_sensor; // Variable para guardar el valor del sensor
  75.  
  76.   void setup()
  77.   {
  78.     pinMode(ZUMBADOR, OUTPUT);  // Pin digital 4 como salida
  79.     pinMode(LED_ROJO, OUTPUT);  // Pin digital 5 como salida
  80.     pinMode(LED_AMARILLO, OUTPUT);  // Pin digital 6 como salida
  81.     pinMode(LED_VERDE, OUTPUT);  // Pin digital 7 como salida
  82.    
  83.     lcd.begin(16,2);   // Inicializa el LCD para 16x2
  84.     lcd.backlight(); // Enciende el LED de fondo del LCD (backlight)
  85.    
  86.     lcd.clear(); // Borra la pantalla
  87.     lcd.setCursor(0,0); // Posición 0,0 del LCD
  88.     lcd.print("<< SENSOR MQ7 >>");
  89.     delay(3000); // Retardo
  90.   }
  91.  
  92.   void loop()
  93.   {
  94.     // Se lee el valor del sensor MQ-7 y se guarda en valor_sensor
  95.     valor_sensor = analogRead(sensor_MQ7);
  96.    
  97.     // Se compara valor_sensor y se opera en consecuencia
  98.    
  99.     // Si valor_sensor es menor que 300
  100.     if (valor_sensor < 300)
  101.     {
  102.       lcd.clear();
  103.       lcd.setCursor(0,0);
  104.       lcd.print("NO HAY GAS!!!");
  105.       lcd.setCursor(0,1);
  106.       lcd.print(">VALOR MQ-7: ");
  107.       lcd.println(valor_sensor);
  108.       digitalWrite(LED_VERDE, HIGH); // LED VERDE encendido
  109.       digitalWrite(LED_AMARILLO, LOW); // LED AMARILLO apagado
  110.       digitalWrite(LED_ROJO, LOW); // LED ROJO apagado
  111.       digitalWrite(ZUMBADOR, LOW); // ZUMBADOR apagado
  112.       delay(200); // Retardo
  113.     }
  114.    
  115.      // Si valor_sensor está entre 300 y 400
  116.     if (valor_sensor >= 300 && valor_sensor <= 400)
  117.     {
  118.       lcd.clear();
  119.       lcd.setCursor(0,0);
  120.       lcd.print("ALERTA GAS!!!");
  121.       lcd.setCursor(0,1);
  122.       lcd.print(">VALOR MQ-7: ");
  123.       lcd.println(valor_sensor);
  124.       digitalWrite(LED_VERDE, LOW); // LED VERDE apagado
  125.       digitalWrite(LED_AMARILLO, HIGH); // LED AMARILLO encendido
  126.       digitalWrite(LED_ROJO, LOW); // LED ROJO apagado
  127.       digitalWrite(ZUMBADOR, LOW); // ZUMBADOR apagado
  128.       delay(200); // Retardo
  129.     }
  130.    
  131.      // Si valor_sensor es mayor que 400
  132.     if (valor_sensor > 400)
  133.     {
  134.       lcd.clear();
  135.       lcd.setCursor(0,0);
  136.       lcd.print("PELIGRO GAS!!!");
  137.       lcd.setCursor(0,1);
  138.       lcd.print(">VALOR MQ-7: ");
  139.       lcd.println(valor_sensor);
  140.       digitalWrite(LED_VERDE, LOW); // LED VERDE apagado
  141.       digitalWrite(LED_AMARILLO, LOW); // LED AMARILLO apagado
  142.       digitalWrite(LED_ROJO, HIGH); // LED ROJO encendido
  143.       digitalWrite(ZUMBADOR, HIGH); // ZUMBADOR encendido
  144.       delay(200); // Retardo
  145.     }
  146.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement