Proyecto 13 – Sensor de llama

El proyecto de hoy es uno un poco más práctico, vamos a utilizar el Arduino y un sensor de llama para alertarnos de la presencia de llamas o flamas. Es un proyecto bastante simple y muy fácil de hacer y de entender su código.

¿Qué es un sensor de llama?

Sensor de llama
Sensor de llama

En nuestro caso utilizaremos un sensor de llama infrarrojo (triodo receptor infrarrojo), el cual es un dispositivo que puede detectar las existencia de combustión por el tipo de luz que se emite en la misma. Al existir la combustión se libera energía en forma de calor y en forma de luz. Esta luz emite ciertos valores en el espectro ultravioleta y el espectro infrarrojo, los últimos son los que vamos a registrar con nuestro sensor.

Es uno de los sensores más vendidos y se encuentran en una gran variedad de dispositivos, tales como los hornos a gas, calentadores a gas, calefacción, etc. En los dispositivos mencionados anteriormente, que normalmente funcionan a gas, es muy importante que se sepa cuando no hay llama o flama para cortar el suministro de gas y así evitar una fuga de mismo y una psible explosión. Aunque también existen sensores de gases, que se pueden utilizar para este control, estos los veremos en proyectos posteriores.

Normalmente lo sensores más sencillos son los mas económicos y son que detectan ultravioleta o infrarrojos.

Componentes

  • Arduino UNO o placa compatible
  • Protoboard o placa de pruebas
  • Sensor de llama (Infrared receiving triode )
  • Resistencia de 470KΩ
  • Cables o Jumpers
  • Buzzer o zumbador activo
Proyecto 13 - Detector de llama
Proyecto 13 – Detector de llama

En el diagrama podemos vemos que utilizaremos solo el pin análogo A0 y el pin digital 8. Lo primero que haremos será llevar 5V y GND del Arduino al protoboard. El pin más corto del sensor es el negativo (cátodo) pero irá conectado al protoboard al 5V, el pin positivo (ánodo) irá conectado al pin A0 del Arduino y a su vez con una resistencia al GND del protoboard.
El buzzer ira conectado al negativo y al pin digital 9.

Conexión Triodo
Conexión del sensor

Según los cálculos la resistencia R1 debería ser de un valores de 500kΩ y dado a que no tengo una, he usado una resistencias de 470KΩ, esto para poder tener lecturas más claras en el pin A0 del Arduino. Para mayor claridad dejo también el diagrama esquemático:

Diagrama esquemático del detector de llamas

Código

const int llama= A0;
const int Beep = 9;
int valor = 0;


void setup()
{
    pinMode(Beep, OUTPUT);
    pinMode(llama, INPUT);
    Serial.begin(9600);
}

void loop()
{
    valor = analogRead(llama);
    Serial.println(valor);
    if (valor >= 600)
    {
        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= A0;  // constante en la que conectaremos el sensor
const int Beep = 9;   // constante que usaremos para conectar el buzzer
int valor = 0;        // variable que usaremos para capturar el valor del sensor

Declaramos 2 constantes del tipo entero, la primera const int llama= A0, que para facilitar el código utilizaremos la constante llama en vez de usar el pin A0, en la segunda const int Beep = 9 donde estamos diciendo que usaremos el pin digital 9 del Arduino para conectar el buzzer y por último int valor = 0, que será la variable que usaremos para capturar el valor de nuestro sensor 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 9 es un pin de salida, luego en pinMode(llama, INPUT) establecemos que el pin A0 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 = analogRead(llama);
    Serial.println(valor);
    if (valor >= 600) 
    {
        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 = analogRead(llama), luego para monitorizar enviamos por serial el valor de la variable «valor» Serial.println(valor).

Ahora encontramos una condicional if (valor >= 600), donde preguntamos que si el valor que nos envía el sensor de llama es superior o igual a 600, entonces haga sonar el buzzer digitalWrite(Beep, HIGH), de lo contrario apagarlo digitalWrite(Beep, LOW).

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.


Deja un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.