Instalar un sensor para fuego en la cocina puede ser muy útil para usted. Una pequeña flama puede desencadenar una efectiva alarma y el rango de la misma puede llegar a 20cm. Este pequeño sistema de alarma contra fuego puede evitar variados accidentes, entonces ¿Por qué no realizarlo?
Componentes necesarios:
- 1× Modulo Digital Buzzer.

- 1× Sensor de fuego.
Pin Out de conexión:
Modulo Digital Buzzer —>Pin digital 8 de Kit Intel® Edison con tarjeta Arduino Breakout
Sensor de fuego —> Pin análogo 0 Kit Intel® Edison con tarjeta Arduino Breakout
Código de programación Arduino:
floatsinVal;
inttoneVal;
voidsetup(){
pinMode(8, OUTPUT); //Configuración de pin 8 digital como salida.
Serial.begin(9600); //Inicia comunicación serial a 9600 baudios.
}
voidloop(){
intsensorValue = analogRead(0); //Lee el valor analógico de pin A0
Serial.println(sensorValue); //Envía por serial el valor del sensor leído.
delay(1);
if(sensorValue < 1023){ // Si el valor del sensor es menor a 1023, significa que existe presencia de fuego y se inicia sonido por Buzzer.
for(intx=0; x<180; x++){
sinVal = (sin(x*(3.1412/180))); //Cambia de grado a radian usando función sin()
toneVal = 2000+(int(sinVal*1000)); //Se crea frecuencia de sonido para Buzzer.
tone(8, toneVal); //Inicia sonido por Buzzer
delay(2);
}
} else{ // Si el valor del sensor es mayor que 1023, no existe presencia de fuego y se apaga el sonido saliente por Buzzer.
noTone(8); //Apagar sonido saliente por Buzzer.
}
}
Después de completar todos los pasos anteriores, trata de colocar una flama cerca del sensor de fuego y verifica si el buzzer comienza a funcionar
Fundamentos del ejemplo (entrada analógica – salida digital):
El sensor de fuego es un dispositivo de entrada analógica para detectar el fuego, el buzzer es un dispositivo de salida de sonido e Intel Edison es el controlador del sistema.
Revisión del código de programación Arduino:
Nota que existen dos variables:
float sinVal;
int toneVal;
La variable Float sinVal almacena los cambios de seno de la onda en grados. La onda sonora describe el fuego con una repetitiva oscilación, entonces podemos crear una frecuencia de sonido. Po lo tanto, debemos convertir sinVal a toneVal, lo cual crea un sonido adecuado para el buzzer de salida.
El sensor de fuego es el dispositivo de entrada, entonces nosotros necesitamos leer el valor análogo proveniente desde el pin usado por el sensor.
La sintaxis se debe escribir de esta forma: analogRead (pin);
Con esta sintaxis se leerán los valores que provienen desde el pin análogo especificado.
El kit Arduino Intel Edison incorpora 6 entradas análogo-digital de 10-bit cada una.
Esto quiere decir que ingresara un voltaje entre 0 a 5v por el pin análogo y lo mapeara a un valor entre 0 y 1023. Por ejemplo, el valor análogo 512 corresponde a 2.5V.
La función sin() calcula el seno del ángulo (en radianes). El resultado puede ser entre -1 y 1. Para evitar el valor negativo, debemos limitar los grados entre 0 y 180.
Nosotros realizamos esto usando la siguiente declaración:
for(int x=0; x<180; x++){}
La función sin() utiliza radianes como unidad de entrada, por lo cual debemos realizar una conversión de valores. Multiplicando la función con 3.1415/180 podemos convertir de grados a radianes:
sinVal = (sin(x*(3.1412/180)));
Después de convertir la variable sinVal a toneVal podemos construir una frecuencia apta para el buzzer:
toneVal = 2000+(int(sinVal*1000));
Existe un punto importante aquí, el cual es como convertir un dato float (flotante) en int (entero). La variable con nombre sinVal es del tipo float (flotante) y para usar init() se debe realizar la siguiente conversión:
int(sinVal*1000)
sinVal multiplicado por 1000 y posteriormente le suma 2000 resultados a toneVal. Posteriormente toneVal puede ser usado como frecuencia para el buzzer. Despues de eso, puedes hacer funcionar el buzzer con la siguiente instrucción:
tone(8, toneVal);
Conversemos sobre el tono sonoro:
tone(pin,frequency)
Esta instrucción es usada para generar una onda cuadrada con una frecuencia específica en un pin de Arduino:
Pin: pin de Arduino por el que sale el tono.
Frequency: La frecuencia del tono se mide en Hertz
tone(pin,frequency,duration)
Pin: el pin en el que se generar el tono.
Frequency: La frecuencia del tono se mide en Hertz
Duration: la duración del tono en milisegundos (opcional).
noTone(pin)
Esta instrucción detiene la generación de una onda cuadrada provocada por tone().