概述
本文将通过使用火焰传感器与Arduino UNO组成一个简单的火灾报警系统。该火焰传感器是基于IR的火焰传感器,通过红外线感应是否存在火焰,若存在火焰,火焰传感器传达高电平信号到Arduino UNO主板上,触发蜂鸣器,LED灯不断闪烁红黄光两种光;若不存在火焰,LED灯仅发出黄光。
本文需要的组件:
- Arduino UNO开发板
- 火焰传感器
- 无源蜂鸣器
- 双色LED灯
- 连接导线
主要组件工作原理:
火焰传感器
火焰传感器:由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。不同燃烧物的火焰辐射强度、波长分布有所差异,但总体来说,其对应火焰温度的近红外波长域及紫外光域具有很大的辐射强度,根据这种特性可制成火焰传感器.
远红外火焰传感器
功能用途:远红外火焰传感器可以用来探测火源或其它一些波长在700纳米~1000纳米范围内的热源。在机器人比赛中,远红外火焰探头起着非常重要的作用,它可以用作机器人的眼睛来寻找火源或足球。利用它可以制作灭火机器人、足球机器人等。
原理介绍:远红外火焰传感器能够探测到波长在700纳米~1000纳米范围内的红外光,探测角度为60,其中红外光波长在880纳米附近时,其灵敏度达到最大。远红外火焰探头将外界红外光的强弱变化转化为电流的变化,通过A/D转换器反映为0~255范围内数值的变化。外界红外光越强,数值越小;红外光越弱,数值越大。
紫外火焰传感器
紫外火焰传感器可以用来探测火源发出的400纳米以下热辐射。原理介绍:通过下紫外光,可根据实际设定探测角度,紫外透射可见吸收玻璃(滤光片)能够探测到波长在400纳米范围以其中红外光波长在350纳米附近时,其灵敏度达到最大。紫外火焰探头将外界红外光的强弱变化转化为电流的变化,通过A/D转换器反映为0~255范围内数值的变化。外界紫外光越强,数值越小;紫外光越弱,数值越大。
无源蜂鸣器
无源蜂鸣器利用电磁感应现象,为音圈接入交变电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声,接入直流电只能持续推动振膜而无法产生声音,只能在接通或断开时产生声音。
线路连接图:
本文使用的完整代码:
const int flamePin = 8; //设置火焰传感器的数字引脚为8
const int ledPin = 13; //设置LED灯的数字引脚为13
const int buzzerPin=7; //设置蜂鸣器的数字引脚为7
//状态初始化
void setup()
{
pinMode(flamePin,INPUT);//将8号引脚设置为输入信号
pinMode(ledPin,OUTPUT);//将13号引脚设置为输出信号
pinMode(buzzerPin,OUTPUT);//将7号引脚设置为输出信号
Serial.begin(9600);//设置波特率为9600
}
//循环执行
void loop()
{
//读取火焰传感器的数字输出,高电平表示“1”,低电平表示“0”,以布尔值的形式储存在news变量中;
boolean news = digitalRead(flamePin);
if(news == 1)//感应到火焰!
{
Serial.println("Flame!");//串口监控器显示“Flame!”
digitalWrite(ledPin,HIGH);//将13号数字引脚的输出设置为高电平,LED灯点亮
tone(7,320,200);//将7号数字引脚的输出设置为320Hz频率,持续时间200毫秒,蜂鸣器触发
delay(1000);//停留1000毫秒
digitalWrite(ledPin,LOW);//将13号数字引脚的输出设置为低电平,LED灯熄灭
noTone(7);//
}
else
{
Serial.println("No Flame !");//串口监控器显示“flame!”
digitalWrite(ledPin, LOW);//将13号数字引脚的输出设置为低电平,LED灯熄灭
digitalWrite(buzzerPin, HIGH);//将7号数字引脚的输出设置为高电平,蜂鸣器关闭
}
delay(500); //停留500毫秒,进行下一次循环判断火焰传感器是否触发
}