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().
Preguntas frecuentes
¿Qué componentes necesito para el sensor de fuego con Intel Edison?
Cuatro cosas: un módulo digital buzzer, un sensor de fuego, un shield de expansión para entradas y salidas, y un kit Intel Edison con tarjeta Arduino Breakout.
¿Cómo se conectan el sensor de fuego y el buzzer?
El módulo digital buzzer va al pin digital 8 de la tarjeta Arduino Breakout, y el sensor de fuego al pin analógico 0. El sensor es una entrada analógica y el buzzer una salida digital.
¿Cuál es el alcance del sensor de fuego?
El rango de detección llega hasta unos 20 cm. Es suficiente para que una pequeña llama dispare una alarma efectiva, que es la idea de instalar este tipo de sensor en un lugar como la cocina.
¿Cómo detecta el código la presencia de fuego?
Leyendo el valor analógico del pin A0 con analogRead. Si ese valor es menor que 1023 significa que hay presencia de fuego y se activa el sonido del buzzer; si es mayor, no hay fuego y el buzzer se apaga con noTone.
¿Por qué el código usa una función seno para el sonido?
Para generar una frecuencia de sonido variable en lugar de un tono plano. La variable sinVal almacena los cambios del seno de la onda en grados y se convierte en toneVal, que es el valor de frecuencia que se envía al buzzer con la función tone.
Aprende esto en un curso
Si prefieres verlo en vivo y con alguien que resuelva tus dudas, estos cursos presenciales de MCI Educación cubren el tema de este tutorial:
- Domina la Raspberry Pi: Sistemas y Conectividad — nivel intermedio, 18 horas presenciales en Santiago
- uPython y Electrónica Creativa con Raspberry Pi Pico — nivel inicial, 15 horas presenciales en Santiago



