Underc0de - La Casa de los Informáticos

Informática => Electrónica y Robótica => Arduino - Raspberry PI => Mensaje iniciado por: rreedd en Marzo 20, 2016, 06:44:18 PM

Título: Les Presento mi Detector de Fugas de Gas con Arduino
Publicado por: rreedd 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 :::



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.


// 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


(http://fotos.subefotos.com/e5202aa162f23acabe51bd70ae3be2e4o.jpg)


Armado 


(http://fotos.subefotos.com/1a1c22f751fd2cd2ac0ccc7dfb07f701o.jpg)


Terminado


(http://fotos.subefotos.com/4fa76c184a0ba90c923951f08f9e020ao.gif)


Funcionamiento


(http://fotos.subefotos.com/ddead0c54d38f9e413ffe4aaa2af29bfo.gif)


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
Título: Re:Les Presento mi Detector de Fugas de Gas con Arduino
Publicado por: ANTRAX en Marzo 20, 2016, 08:01:52 PM
Me encantó bro!!! tienes mas proyectos hechos con arduino?

saludos!
ANTRAX
Título: Re:Les Presento mi Detector de Fugas de Gas con Arduino
Publicado por: rreedd en Marzo 20, 2016, 08:14:18 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Me encantó bro!!! tienes mas proyectos hechos con arduino?

saludos!
ANTRAX

Si compañero @ANTRAX (https://underc0de.org/foro/index.php?action=profile;u=1) tengo muchos mas  ;D , así que pronto esta haciendo mas post.
Título: Re:Les Presento mi Detector de Fugas de Gas con Arduino
Publicado por: Gabriela en Marzo 22, 2016, 12:54:49 AM

@rreedd (https://underc0de.org/foro/index.php?action=profile;u=51615)

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

Gabriela