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