找回密码
 立即注册

QQ登录

只需一步,快速开始

基础模块资料库

基于Arduino使用火焰传感器


产品用途

火焰传感器模块是基于红外接收管设计的传感器模块,可用于检测火焰或波长在760~1100纳米范围的光源,经常使用于灭火机器人中,探测角度60度左右。红外线接收管是将红外线光信号变成电信号的半导体器件;它的核心部件是一个特殊材料的PN结,和普通二极管相比,在结构上采取了大的改变,红外线接收管为了更多更大面积的接收入,电流则随之增大。

QQ截图20200418195802.jpg
(火焰传感器)

工作原理

红外接收管将光信号(不可见光)转换成电信号一般是接收、放大、解调一体头,红外信号经接收管解调后,数据 “0”和“1”的区别通常体现在高低电平的时间长短或信号周期上,单片机解码时,通常将接收头输出脚连接到单片机的外部中断,结合定时器判断外部中断间隔的时间从而获取数据。重点是找到数据“0”与“1”间的波形差别。一般与可见光、红外光谱匹配或配对于红外发射管使用,环境光照强的情况下,检测火焰,会有所干扰。

产品参数

  • 小板PCB尺寸:32mm*14mm
  • 探测角度60度左右,对火焰光谱特别灵敏
  • 灵敏度可调:蓝色数字电位器调节
  • 比较器输出,信号干净,波形好,驱动能力强,超过15mA
  • 配可调精密电位器调节灵敏度
  • 工作电压:3.3V-5V
  • 输出形式:DO数字开关量输出(0和1)和AO模拟电压输出
  • 设有固定螺栓孔,方面安装
  • 使用宽电压LM393比较器
  • 可以检测火焰或者波长在760纳米~1100纳米范围内的光源,打火机测试火焰距离为80cm,对火焰越大,测试距离越远

使用方法

  • 火焰传感器对火焰敏感,对普通光也是有反应的,一般用做火焰报警等用途;
  • 小板输出接口可以与单片机IO口直接相连;
  • 传感器与火焰要保持一定距离,以免高温损坏传感器,对打火机测试距离为80cm,对火焰越大,测试距离越远;
  • 小板模拟量输出方式和AD转换处理,可以获得更高的精度;
  • 当传感器检测到有火焰、阳光或红外光线时,要达到电位器设置的的阈值,绿色指示灯就会亮,DO并输出低电平(0-0.1V左右),绿色指示灯不亮,则DO输出3V左右的电压高电平。

接线方式

QQ截图20200418200018.jpg
(火焰传感器   反面)

火焰传感器   <------>   Arduino Nano
       VCC      <------>        3.3V/5V
        GND    <------>  GND
           DO    <------>  8

程序测试——读取检测有无火焰值
编写打印串口程序,观察火焰传感器检测到火源时,数值输出是多少。火焰传感器模块为数字传感器,所以,打印串口时,要使用数字输入管脚。

Mixly图形化编程程序

66.png
(串口打印程序)

串口监视器显示,火焰传感器检测到火源时,输出低电平,串口打印显示数值0。没有检测到火焰时,火焰传感器输出高电平,串口打印数值1。

77.png
(串口监视器显示)
程序实现代码

读取检测火焰值

  1. void setup(){
  2.   pinMode(8, INPUT);
  3.   Serial.begin(9600);
  4. }
  5. void loop(){
  6.   Serial.println(digitalRead(8));
  7. }
复制代码
火焰传感器基础小案例

当火焰传感器检测到火源时,蜂鸣器发出长鸣报警声,若火焰传感器没有检测到,蜂鸣器不发出声音。

接线方式
2.jpg
(无源蜂鸣器模块 低电平触发)

火焰传感器   <------>  Arduino Nano
       VCC      <------> 3.3V/5V
        GND    <------>  GND
        DO      <------>  8

蜂鸣器     <------>  Arduino Nano
   GND     <------>    GND
      I/O    <------>  9
       VCC  <------> 3.3V

Mixly图形化编程程序

该无源蜂鸣器模块为低电平触发,所以,当蜂鸣器处于低电平时,蜂鸣器发出声音,而高电平,则不发出声音。如果火焰传感器检测到火焰,输出低电平,,蜂鸣器发出声音,蜂鸣器为低电平,否则,火焰传感器没有检测到火焰,输出高电平时,蜂鸣器输出高电平,不发出声音。

88.png
(图形化程序)

程序实现代码

  1. void setup(){
  2.   pinMode(8, INPUT);
  3.   pinMode(9, OUTPUT);
  4. }
  5. void loop(){
  6.   if (digitalRead(8) == LOW) {
  7.     digitalWrite(9,LOW);
  8.   } else {
  9.     digitalWrite(9,HIGH);
  10.   }
  11. }
复制代码
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册