基于arduino开发板的火焰传感器+蜂鸣器+rgb灯
概述
本文将通过使用火焰传感器与Arduino UNO组成一个简单的火灾报警系统。该火焰传感器是基于IR的火焰传感器,通过红外线感应是否存在火焰,若存在火焰,火焰传感器传达高电平信号到Arduino UNO主板上,触发蜂鸣器,LED灯不断闪烁红黄光两种光;若不存在火焰,LED灯仅发出黄光。
本文所需的传感器
火焰传感器
无源蜂鸣器
4引脚rgb灯
arduino开发板
公母线诺干
面包板一个
传感器的工作原理
1.火焰传感器
火焰传感器:由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。不同燃烧物的火焰辐射强度、波长分布有所差异,但总体来说,其对应火焰温度的近红外波长域及紫外光域具有很大的辐射强度,根据这种特性可制成火焰传感器。
2.无源蜂鸣器
无源蜂鸣器利用电磁感应现象,为音圈接入交变电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声,接入直流电只能持续推动振膜而无法产生声音,只能在接通或断开时产生声音。
连接线路图
使用代码
参考:https://blog.csdn.net/Romeo_tune/article/details/90703974
如何插入一段漂亮的代码片
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 == 0)//感应到火焰!
{
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毫秒,进行下一次循环判断火焰传感器是否触发
}
效果
当没有火焰时,rgb灯为蓝色(自己选择一个颜色,有红,绿,蓝三种颜色可供选择)在火焰传感器下方点燃打火机时,蜂鸣器发出嘀嘀嘀警报声,rgb变为混光颜色,说明成功。