
在公共场所,比如酒店,建筑物和其他地方都配备了火灾报警器,那么它如何感知火灾? 众所周知,当火灾爆发时,会有特别强烈的红外线,该设备可以通过红外线探测火灾。 火焰传感器是机器人专门用来搜寻火源的传感器,当然火焰传感器也可以用来检测光线的亮度,只是本传感器对火焰特别灵敏。火焰传感器利用红外线对对火焰非常敏感的特点,使用特制的红外线接受管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号,输入到中央处理器中,中央处理器根据信号的变化做出相应的程序处理。

| 引脚名称 | 描述 |
|---|---|
| G | GND(电源输入负极) |
| V | VCC(电源输入正极) |
| D | 数字信号引脚 |
| A | 模拟信号引脚 |
供电电压:3.3V / 5V
连接方式:PH2.0端子线
安装方式:双螺丝固定

示例程序:点击下载
//火焰传感器s引脚接D4,火焰传感器A接A0(如需要检测火焰传感器模拟值);无源蜂鸣器接D6口;
int FlamelDigitalValue;//定义数字变量,读取火焰数字值
int FlamelAnalogValue;//定义数字变量,读取火焰模拟值
int BuzzerPin=6;//定义数字常量,无源蜂鸣器接数字6口
void setup(){
Serial.begin(9600);//设置串口波特率
pinMode(4, INPUT);//设置火焰传感器数字引脚为输入
}
void loop(){
FlamelAnalogValue = analogRead(A0);//读取火焰传感器模拟值
FlamelDigitalValue = digitalRead(4);//读取火焰传感器数字值
Serial.print("FlamelAnalogValue:");
Serial.print(FlamelAnalogValue);//打印火焰传感器模拟值
Serial.print(" FlamelDigital Data:");
Serial.println(FlamelDigitalValue);//打印火焰传感器数字值
if (FlamelDigitalValue == 0) {//判断火焰传感器是否检测到火焰 检测到火焰 蜂鸣器报警
pinMode(BuzzerPin, OUTPUT);//设置无源蜂鸣器模块引脚为输出
tone(BuzzerPin,196);//蜂鸣器响起
delay(2000);//延时2s
} else {
pinMode(BuzzerPin, OUTPUT);
noTone(BuzzerPin);//蜂鸣器停止
}
}
示例程序:点击下载

准备配件:
电路接线图:


视频教程:点击查看

通过实验,我们可以观察到当火焰传感器检测到火焰时,串口输出低电平0,蜂鸣器响起;当没有检测到火焰时,串口输出高电平1,蜂鸣器不响。火焰传感器的模拟值会根据火焰大小和离火焰的距离的近远而变小;当读取的模拟值小于阀值时输出低电平,如果大于阀值则输出高电平。阀值大小可以通过调节可调电阻的大小来调节。