Detector de incendios con Arduino y el sensor KY-026

Detector de incendios con Arduino y el sensor KY-026
Actualizado el 19 enero, 2022   0 comentarios

El módulo KY-026 es un sensor de llama que permite detectar un fuego gracias a un sensor óptico sensible a la radiación emitida por la llama. El sensor puede detectar fuentes de luz en el rango de una longitud de onda entre 760 nm a 1100 nm. El ángulo de detección es de 60º y la distancia de detección entre 40 y 80 cm.

Es un módulo barato que puede ser influenciado por la iluminación interior, por tanto, la fiabilidad y sensibilidad de este sensor no permiten considerarlo como un dispositivo de seguridad auténtico, pero sí nos vale para realizar experimentos con él. Tales como encender un LED o hacer sonar una alarma al detectar la llama de un mechero o de una vela.

Este módulo tiene una salida digital y otra analógica, y consta de un potenciómetro para ajustar su sensibilidad.

Indice:

Para probar el funcionamiento del sensor

Diagrama de conexión:

Conectar la salida analógica de la placa (A0) al pin A0 del Arduino, cable de color fucsia. La salida digital (D0) al pin 3 del Arduino, cable color amarillo. Conectamos el cable de alimentación, rojo, y el cable de tierra, negro.

Esquema de conexión con Arduino para probar el sensor KY-026

Código:

int led = 13;       // LED de la placa arduino
int digitalPin = 2; // Pin digital del módulo
int analogPin = A0; // Pin analógico del módulo
int digitalVal;     // valor digital
int analogVal;      // valor analógico

void setup(){
  pinMode(led, OUTPUT);
  pinMode(digitalPin, INPUT);
  Serial.begin(9600);
}

void loop(){
  // lectura del pin digital
  digitalVal = digitalRead(digitalPin); 
  if(digitalVal == HIGH){     // si hay llama
    digitalWrite(led, HIGH);  // encender LED
  }else{
    digitalWrite(led, LOW);   // apagar LED
  }

  // lectura del pin analogico
  analogVal = analogRead(analogPin); 
  Serial.println(analogVal); // mostrar el valor por el monitor serial

  delay(100);
}

Con este código leeremos los valores analógico y digitales. La señal digital será ALTA cuando el sensor detecte el fuego, y por tanto encenderá el LED de la placa Arduino, mientras que estará apagado cuando no detecte la llama. Con el potenciómetro que incluye el sensor podemos aumentar la sensibilidad si giramos en sentido de las agujas del reloj, o disminuir la sensibilidad si lo hacemos en sentido contrario.

Para visualizar los valores de la señal analógica podemos utilizar el serial Plotter de Arduino IDE.

Valores de la señal analógica al acercar una llama al sensor

Puede apreciarse que los valores aumentan cuando la llama se aleja del sensor, mientras que disminuyen cuando esta se acerca.

Hacer sonar una alarma al detectar una llama

Con este proyecto crearemos un dispositivo con el sensor KY-026 que haga sonar una alarma al detectar un incendio.

Material necesario:

  • Arduino UNO o similar
  • Módulo KY-026
  • Buzzer
  • Cables

Esquema de conexión:

El buzzer lo conectamos al pin 11 de la placa, cable rojo y al GND. Conectaremos el pin de alimentación del sensor al de 5V de la placa Arduino, el de tierra al GND y el pin A0 al pin analógico A0 del Arduino

Esquema de conexión del sensor KY-026 con Arduino y un buzzer

Código:

int buzzer = 11;      // pin para el zumbador
int valorSensor = 0;  // variable para almacenar el valor proveniente del sensor

void setup(){
  Serial.begin(9600);
  pinMode(buzzer, OUTPUT);  // configurar como salida
}

void loop(){
  valorSensor = analogRead(A0);  // leo el valor del sensor
  Serial.println(valorSensor);
  // activa el buzzer para un valor menor de 500
  if (valorSensor < 500){
    digitalWrite(buzzer, HIGH);
    delay(100);
    // Desactiva el buzzer
    digitalWrite(buzzer, LOW);
    delay(50);  
  }
}

En la línea 1 indicamos que el pin 11 de la placa Arduino esta conectado al buzzer y en la 2 creamos una variable para guardar el valor que leerá el sensor.

En la función setup() indicamos que el pin 11 funcionará como salida.

En la línea 10 procedemos con la lectura del sensor que guardamos en la variable valorSensor y procedemos a comprobar con un if si supera el umbral indicado, si este es superado indicamos que suene la alarma (HIGH) durante 100 milisegundos, desactivamos el buzzer (LOW), esperamos 50 milisegundos y se vuelve a repetir el proceso loop().

Encender un LED al detectar una llama con el sensor KY-026

En este caso utilizaremos un LED para indicar la detección de una llama, utilizaremos el pin digital, D0, con el que solo tenemos que leer HIGH o LOW. HIGH encenderá el LED, con LOW apagará el LED. En el proyecto anterior con el buzzer se utilizó el pin analógico, que nos da un rango de valores, por tanto, en la programación utilizamos una comprobación antes de hacer sonar la alarma. En este caso, al utilizar 1 ó 0, el proceso es más sencillo, directamente encenderemos al detectar la llama.

Material necesario:

  • Arduino UNO o similar
  • Módulo KY-026
  • Protoboard
  • LED
  • 1 resistencia
  • cables

Esquema de conexión:

Esquema de conexión de Arduino con el sensor KY-026 para encender un LED al detectar fuego
int led = 11;
int digitalPin = 2;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(digitalPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(led, digitalRead(digitalPin));
}

En las dos primera líneas indicamos los pines que se van a utilizar. En la función setup() indicamos el pin del LED como salida y el pin del sensor como entrada.

En la función loop() leemos el sensor, si detecta llama (HIGH), enciende el LED. Si no detecta la llama, dará una señal de LOW, el LED permanecerá apagado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*
*
*