comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Les Presento mi Detector de Fugas de Gas con Arduino

  • 3 Respuestas
  • 3824 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado rreedd

  • *
  • Underc0der
  • Mensajes: 113
  • Actividad:
    0%
  • Reputación 6
  • Somos Nada Señores
    • Ver Perfil
« en: Marzo 20, 2016, 06:44:18 pm »
RREEDD
Hola!!

El otro día estaba jugando con mi auto hecho con Arduino y un familiar que trabaja en gasfiteria me dijo que necesitaba un detector de fugas de gas (para poder encontrar las fugas en las mangueras) y si le podría hacer uno así que me puse manos a la obra gane  un poco de dinero y antes de entregarlo se los presento para que puedan construir el suyo
(disculpen si no se ve muy perfecto las terminaciones pero el armazon lo hice con cartón piedra)

::: MATERIALES :::

  • 1x modulo metector de gas MQ-2 (detector de gas propano butano y gases inflamables)

  • 1x LCD 19x2 (I2C)
  • 1x Arduino nano
  • 1x Zumbador (piezoeléctrico)
  • 1x interruptor pequeño
  • 1x Porta batería 


Bueno el funcionamiento de el detector es bastante simple, se toma el valor obtenido desde el sensor y si encuentra una fuga emite un sonido para alertar.

Una ves consigamos los materiales solo nos queda armarlo  ;) , la explicación de la conexión la puse en el código el cual dejo a continuación.


Código: [Seleccionar]
// Proyecto_SensorDeGas_0.1.ino



#include <Wire.h>                 
#include <LiquidCrystal_I2C.h>    // Libreria que controla la pantalla LCD
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Inicializa el LCD
const int gasPin = A0;
const int pinPiezo  = 6;    // pin de conexion del Piezoelectrico

/*

                    Codigo by RREEDD

 Para descargar la libreria  LiquidCrystal_I2C.h.

https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip

             
                    _________________
                    |d13         D12|
                    |3v3         D11|
                    |REF         D10|     
        AD(sensor)  |A0   Arduino D9|
                    |A1    NANO   D8|
                    |A2           D7|
                    |A3           D6| Pin VCC del zumbador
         SDA (lcd)  |A4           D5|
         SCL (lcd)  |A5           D4|
                    |A6           D3|
                    |A7           D2|
         VCC (lcd)  |5v          GND| GND (lcd,sensor,zumbador)
                    |RST         RST|
     GND (bateria)  |GND          TR|
     VCC (bateria)  |VIN          TX|
                    |_______________|       
*/
void setup()   {
  pinMode(pinPiezo, OUTPUT);   // declaramos el pin del piezo de salida
           
lcd.begin(16,2);      // Se introduce el tamaño de nuestro LCD 
Serial.begin(9600);  // Establecemos la comunicación Serial a 9600 baud

}
void loop() {
   
lcd.clear();                                  // Limpia la pantalla
lcd.setCursor(0,0);                          // Establece la ubicación en el lcd       
lcd.print("NIVEL DE GAS");                  // mensaje por lcd
lcd.setCursor(1,1);                        // Establece la ubicación en el lcd
Serial.println(analogRead(gasPin));       // mensaje por serial, para poder calibrar nuestro sensor       
principal();                             // llama a la función que comparara los valores recibidos desde el sensor
delay (700);                            // establece una espera en el codigo

}

void tono(int frecuencia){
                                                //se emitirá un sonido con la frecuencia introducida
for( int i=0; i<500; i++ ) {               
 digitalWrite(pinPiezo, HIGH);
 delayMicroseconds(frecuencia);
 digitalWrite(pinPiezo, LOW);
 delayMicroseconds(frecuencia);     

}

}

void principal(){
if(analogRead(gasPin) <= 390){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("#");                                  // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 400){
lcd.setCursor(0,1);                               // Establece la ubicación                           
lcd.print("##");                                 // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 500){
lcd.setCursor(0,1);                               // Establece la ubicación                             
lcd.print("###");                                // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 600){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("####");                               // mensaje por lcd, para mostrar el nivel de gas detectado 
}else
if(analogRead(gasPin) <= 700){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("#####");                              // mensaje por lcd, para mostrar el nivel de gas detectado
}else
if(analogRead(gasPin) <= 750){
lcd.setCursor(0,1);                               // Establece la ubicación                           
lcd.print("######");                             // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 790){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("#######");                            // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 800){
lcd.setCursor(0,1);                               // Establece la ubicación                         
lcd.print("#########");                          // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 850){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("##########");                         // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 890){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("##########");                         // mensaje por lcd, para mostrar el nivel de gas detectado   
}else
if(analogRead(gasPin) <= 900){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("##########");                         // mensaje por lcd, para mostrar el nivel de gas detectado   
delay (1000);
}else
if(analogRead(gasPin) <= 920){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("###########");                        // mensaje por lcd, para mostrar el nivel de gas detectado   
 tono(500);                                     // emite una alerta sonora
}else
if(analogRead(gasPin) <= 950){
lcd.setCursor(0,1);                               // Establece la ubicación                               
lcd.print("############");                       // mensaje por lcd, para mostrar el nivel de gas detectado   
 tono(400);                                     // emite una alerta sonora
}else
if(analogRead(gasPin) <= 960){
lcd.setCursor(0,1);                               // Establece la ubicación                                 
lcd.print("#############");                      // mensaje por lcd, para mostrar el nivel de gas detectado   
 tono(300);                                     // emite una alerta sonora
}else
if(analogRead(gasPin) >= 970){
lcd.setCursor(0,1);                               // Establece la ubicación                                   
lcd.print("##############");                     // mensaje por lcd, para mostrar el nivel de gas detectado
 tono(200);                                     // emite una alerta sonora
}
}

Armazon


Armado 


Terminado


Funcionamiento



El detector ya esta probado y funcionando a un 100%.

Cualquier duda sobre el proyecto o si quieres hacer una sugerencia solo comenta.


Saludos desde Chile
« Última modificación: Marzo 20, 2016, 06:47:47 pm por rreedd »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5409
  • Actividad:
    16.67%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Marzo 20, 2016, 08:01:52 pm »
Me encantó bro!!! tienes mas proyectos hechos con arduino?

saludos!
ANTRAX


Desconectado rreedd

  • *
  • Underc0der
  • Mensajes: 113
  • Actividad:
    0%
  • Reputación 6
  • Somos Nada Señores
    • Ver Perfil
« Respuesta #2 en: Marzo 20, 2016, 08:14:18 pm »
Me encantó bro!!! tienes mas proyectos hechos con arduino?

saludos!
ANTRAX

Si compañero @ANTRAX tengo muchos mas  ;D , así que pronto esta haciendo mas post.

Conectado Gabriela

  • *
  • Co Admin
  • Mensajes: 878
  • Actividad:
    5%
  • Reputación 15
    • Ver Perfil
    • Email
« Respuesta #3 en: Marzo 22, 2016, 12:54:49 am »

@rreedd

Siempre es bueno ver proyectos frescos y propios.
Gracias por compartirlo y felicitaciones.

Gabriela

 

¿Te gustó el post? COMPARTILO!



Les Presento Mi Auto Controlado Por Bluetooth

Iniciado por rreedd

Respuestas: 4
Vistas: 2565
Último mensaje Marzo 06, 2016, 09:10:41 am
por blackdrake
Arduino + Snap4Arduino "Hola Mundo"

Iniciado por Riojas

Respuestas: 1
Vistas: 1869
Último mensaje Febrero 19, 2017, 09:31:50 pm
por rreedd
Arduino + Snap4Arduino "Juego PONG" [Final]

Iniciado por Riojas

Respuestas: 0
Vistas: 911
Último mensaje Marzo 15, 2017, 02:33:08 pm
por Riojas
Arduino + Snap4Arduino "Juego PONG" [Parte2]

Iniciado por Riojas

Respuestas: 0
Vistas: 1122
Último mensaje Marzo 03, 2017, 07:07:08 pm
por Riojas
Arduino + Snap4Arduino "Juego PONG" [Parte1]

Iniciado por Riojas

Respuestas: 0
Vistas: 1364
Último mensaje Febrero 24, 2017, 04:59:07 pm
por Riojas