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)
(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcShRc3uBDODlnsjd4Ndx3FQMFCq3KlCSvyOl6r7Kma4fEbe2G-r)
- 1x LCD 19x2 (I2C)
(http://g01.a.alicdn.com/kf/HTB1treTIVXXXXXlXXXXq6xXFXXXw/EMS-Free-shipping-6632L-0324A-6632L-0325A-LCD-accessories-TLM3229G-of-pressure-plate-High-quality-Hot.jpg_220x220.jpg)
- 1x Arduino nano
(http://g03.a.alicdn.com/kf/HTB1mMalLVXXXXXWaXXXq6xXFXXXO/Free-Shipping-Nano-3-0-Controller-Board-Compatible-with-Arduino-Nano-CH340-USB-Driver.jpg_220x220.jpg)
- 1x Zumbador (piezoeléctrico)
(http://g03.a.alicdn.com/kf/HTB1X9lPJXXXXXa7XFXXq6xXFXXXg/100pcs-Active-Buzzer-Alarm-5v-Sounder-speaker-Buzzer.jpg_220x220.jpg)
- 1x interruptor pequeño
(http://www.electronicacaballero.com/data/images/art/17103.jpg)
- 1x Porta batería
(http://www.shoptronica.com/img/p/p.pilas-9v.sn-30.jpg)
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
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
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.