G022 Detector de Llamas

 ADM
Descripción

Todos estos electrodomésticos, y sus equivalentes industriales, incorporan por ley, un detector de llama, que pueda cortar el gas en cuanto detecte falta de llama.

Lo sensores más sencillos (y baratos), suelen ser del tipo de detectores de ultravioletas, o sensores de infrarrojos.
 
En un entorno normal, la ignición de una llama provoca una ionización potente de gases comunes (En realidad un plasma ionizado, similar al que ilumina una lámpara halógena), que generan un patrón típico de frecuencia en el rango del ultravioleta. El detector es un semiconductor sensible a este rango de frecuencias.

Cuando la llama se estabiliza, es relativamente sencillo detectar su espectro infrarrojo, con una fotorresistencia LDR, pero diseñada para ser específicamente sensible a un rango característico.

Nosotros vamos a usar un sensor muy sencillo y fácil de manejar que es un sensor infrarrojo de llamas. Funcionan detectando una longitud de onda especifica (de unos 760 nm) que son características de las llamas, aunque son relativamente fáciles de engañar y pueden dar falsos positivos con ciertas luces.

Este sensor se encuentra muy frecuentemente encapsulado con un soporte y un potenciómetro para ajustar la sensibilidad, por poco dinero. Incluso se vende en formato múltiple, con varias cabezas apuntando en distintas direcciones
 
Materiales
Placa de Arduino
4 Resistencias de 100
1 LED receptor de IR negro de 760nm
1 Buzzer o zumbador
Protoboard, Cables para conexiones y el cable USB para conectar arduino al PC y que sirve además de alimentación  


Esquema 

Hemos conectado un buzzer con el positivo al pin 9 de salida con PWM y su negativo a masa.

Luego hemos conectado el diodo IR detector en polarización inversa donde su cátodo va directamente al positivo y su anodo está en serie con 4 resistencia en serie de 100 ohmios cada una, que terminan en masa.  

Para que arduino pueda leer el detector, hemos conectado entre el diodo detector y la resistencia R1 a la entrada analógica A0 
 
Montaje


Código
El programa es de lo más simple. Solo tenemos que leer la caída de tensión en el divisor y mandar una señal acústica con el buzzer en cuanto el valor de la lectura en A0 sobrepase un cierto umbral.

Vamos a recuperar, además, la función Beep () que escribimos en la sesion Buzzers o zumbadores, para dar el tono de alarma cuando se detecte una llama

void setup()
   {
       pinMode(9, OUTPUT);
       Serial.begin(115200);
   }

void loop()
   {
       int v = analogRead(A0) ;
       Serial.println(v);
       if ( v > 10)
            beep(200) ;
   }
 
void beep(unsigned char pausa)
   {
       analogWrite(9, 20);
       delay(pausa);             // Espera
       analogWrite(9, 0);        // Apaga
       delay(pausa);             // Espera
   }
En el void setup() activamos el pin 9 como salida para el buzzer. 
En el void loop() creamos una variable a la que le asignamos el valor que lea en la entrada analógica A0 y que lo guarde. Luego si se cumple la condición de que el valor de la variable supere 10, ejecute la función beep que hemos desarrollado más abajo.

La función  beep recibe un valor tipo char, que es un entero, de cero a 255, en este caso 200 que es la pausa que se hará entre lo pitido y pitido del buzzer.

Lo que hace el programa es leer el pin A0 y si su valor sobrepasa un mínimo (para evitar los falsos positivos) llama a la función beep() para dar la alarma.

•  Nota: Normalmente hay que calibrar la sensibilidad del sensor. Para ello hay que ver que valores te devuelve en tu caso concreto y afinar este valor umbral, para que no esté pitando continuamente.

•  Los sensores en placa, suelen venir con un potenciómetro, que hay que ajustar para calibrar la sensibilidad el detector.

•  Tambien convendría modificar el programa, para que el tono de la señal se hiciese mas agudo cuanto mas alto sea el valor de lectura en A0
 

No hay comentarios:

Publicar un comentario