Así como el proyecto anterior vamos a detectar una llama con el Arduino, pero en este caso vamos a utilizar el módulo sensor de llama en vez del Triodo receptor infrarrojo, es más fácil de utilizar ya que no debemos hacer mayores conexiones, ni tampoco utilizar resistencias pull down, ya que el sensor ya está listo para funcionar. al igual que el proyecto anterior es un proyecto bastante simple y muy fácil de hacer y de entender su código.
Modulo Sensor de Llama
En el proyecto anterior explicamos que es un sensor de llama, por lo que aquí solo vamos a hablar del módulo. Como dije anteriormente el módulo sensor de llama ya está listo para conectarse, hay diferentes modelos, entre ellos los hay con un pin digital y uno análogo y otros sólo con uno digital, en nuestro caso vamos a utilizar el que sólo trae la salida digital.
Especificaciones:
- Sensible a ondas entre 760 – 1100 nm.
- Posee un LED de alimentación.
- Posee un LED de salida.
- Ángulo de detección de 60°.
- Tensión de funcionamiento 3.3-5V
- Salida digital – D0
- Potenciómetro para ajustar la sensibilidad.
- Comparador LM393.
Componentes
En el diagrama vemos el sensor Keyestudio KY-026, el cual es un sensor de llama con dos pines de alimentación G y + y dos pines de salida, uno análogo AO y uno digital DO, en mi caso voy a utilizar un sensor que solo tiene el pin DO, el GND y el VCC, es el que está arriba del diagrama. Este sensor solo tiene salida digital, es decir solo nos devolverá un 1 cuando no hay señal de la llama y un 0 cuando está en presencia de una llama
Podríamos utilizar un portoboard para poner todos los componentes pero en este caso no veo la necesidad, por lo que conectaremos todo directamente a nuestra placa de Arduino. Lo primero que vamos a conectar son los 3 cables al sensor de llama, la tierra de sensor a la tierra del Arduino, el VCC del sensor a los 5V del Arduino y por ultimo el pin DO del sensor al pin 7 del Arduino.
El buzzer irá conectado al negativo y al pin digital 11.
Este tipo de módulos trae un potenciómetro para cambiar la sensibilidad de nuestro sensor de llama, se puede ajustar según las necesidades del proyecto.
Código
const int llama= 7; const int Beep = 11; int valor = 1; void setup() { pinMode(Beep, OUTPUT); pinMode(llama, INPUT); Serial.begin(9600); } void loop() { valor = digitalRead(llama); Serial.println(valor); if (valor == 1) { digitalWrite(Beep, HIGH); } else { digitalWrite(Beep, LOW); } delay(500); }
Comenzaremos a revisar el código, primero vamos a ver las declaraciones de las variables.
const int llama= 7; // constante en la que conectaremos el sensor const int Beep = 11; // constante que usaremos para conectar el buzzer int valor = 1; // variable que usaremos para capturar el valor del sensor
Declaramos 2 constantes del tipo entero, la primera const int llama= 7
, que para facilitar el código utilizaremos la constante llama en vez de usar el pin 7, en la segunda const int Beep = 11
donde estamos diciendo que usaremos el pin digital 11 del Arduino para conectar el buzzer y por último int valor = 1
, que será la variable que usaremos para capturar el valor de nuestro sensor de llama, la inicializamos en 1 ya que el sensor devuelve un 1 cuando no hay presencia de llama.
En la función setup:
pinMode(Beep, OUTPUT); pinMode(llama, INPUT); Serial.begin(9600);
En la línea pinMode(Beep, OUTPUT)
establecemos que el pin 11 es un pin de salida, luego en pinMode(llama, INPUT)
establecemos que el pin 7 es un pin de entrada y por último Serial.begin(9600)
donde inicializamos la comunicación serial a una velocidad de 9600 baudios.
Y en la función loop:
valor = digitalRead(llama); Serial.println(valor); if (valor == 0) { digitalWrite(Beep, HIGH); } else { digitalWrite(Beep, LOW); } delay(500);
Lo primero que vemos en el loop es que a la variable valor le asignamos la lectura del sensor de llama valor = digitalRead(llama)
, luego para monitorizar enviamos por serial el valor de la variable «valor» Serial.println(valor)
, lo cual podríamos hacer desde el monitor serial.
Ahora encontramos una condicional if (valor == 0), donde preguntamos que si el valor que nos envía el sensor de llama es igual a 0, entonces haga sonar el buzzer digitalWrite(Beep, HIGH)
, de lo contrario lo mantiene apagado digitalWrite(Beep, LOW)
.
Nota
Si de tiene un sensor de llama con salida análoga se puede utilizar esa salida y el código del proyecto anterior Proyecto 13 – Sensor de llama. Sólo deben hacer las conexiones correctas que coincidan con el código.
Resumen
Al encender el Arduino tenemos un sensor de llama que cuando detecta una llama cerca, hace sonar un buzzer o zumbador y deja de sonar en su ausencia.
Podrían también conectar un led al pin 8 por ejemplo y hacer que se encienda también en la presencia de la llama, hagan el intento y pueden compartir sus proyectos en la sección de comentarios. En un proyecto posterior le agregaremos una bomba de agua para que apague el fuego, algo así.
Tengo fallas en el buzzer no da el sonido sera que me lo hace un nuevo video ….para un detector de incendios con 3 pines para arduino uno
Hola Javier.
Si estamos hablando del proyecto 14, módulo sensor de llama, en la publicación está toda la información para la realización del proyecto, como el diagrama de conexiones, el código explicado paso a paso y al final del código hay un video explicando el ensamble del mismo. En este video se ve perfectamente el uso del sensor de detección de llama, que tiene 3 pines, los dos de alimentación y la salida digital del sensor.
Espero haberte ayudado.