当前位置:文档之家› 实验传感器之火焰篇

实验传感器之火焰篇

图6-1 ZIGBEE 调试底板2、20PIN 转接线一条和带USB 的J-Link 仿真器一个;图6-2 J-Link 仿真器3、转接板一个;图 6-3 转接板 4、9~12V 电源适配器2个;图6-4 电源适配器5、带普通USB 线的ZIGBEE 仿真器一个;图6-5 ZIGBEE 仿真器6、智能网关一台;图6-6 智能网关 7、ZIGBEE 模块两个; 图 5-7 ZIGBEE 模块8、火焰传感器一个;ZigBee 模块组合接口电源及开关开关按钮 显示屏普通USB 线10PIN 转接线电源开关电源传感器C 端口指示灯 2J-LINK 接口ZigBee_DEBUG 复位键节点按键拨码开关ZigBe 按键红外发射指示灯 1 ZigBee 复位键可调电阻 传感器A 端口传感器B 端口方口USB 线,另一端连接电上电指示灯 20PIN 转接线,另一端接转接板20PIN 转接线接口10PIN 转接线接口串口接口电源(上)和状态指示灯SD 卡 USB 下载数据线图 6-8 火焰传感器9、10PIN 转接线和传感器连接线各一条。

图6-9 转接线与传感器连接线6.4.2 软件部分1、Keil uVision4集成开发环境;2、JLINK 仿真器驱动;6.5.1 火焰传感器 火焰传感器:由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。

火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。

不同燃烧物的火焰辐射强度、波长分布有所差异,但总体来说,其对应火焰温度的近红外波长域及紫外光域具有很大的辐射强度,根据这种特性可制成火焰传感器。

根据火焰的光特性,目前使用的火焰传感器有三种:一种是对火焰中波长较短的紫外光辐射敏感的紫外传感器;另一种是对火焰中波长较长的红外光辐射敏感的红外传感器;第三种是同时探测火焰中波长较短的紫外线和波长较长的红外线的紫外/红外混合传感器。

具体根据探测波段可分为:单紫外、单红外、双红外、三重红外、红外\紫外、附加视频等火焰传感器;根据防爆类型可分为:隔爆型、本安型 。

6.5.2 模块介绍,如图6-8所示1、 尺寸:35mm X 宽11mm X 高14mm2、 主要芯片:LM393、火焰检测探头3、 工作电压范围:DC 3-12V (默认5V )4、 工作电流:<1.6mA (5V )5、 特点:a 、 具有信号输出指示灯;b 、 单路信号输出,输出信号可以直接接单片机IO 口;c 、 OUT 口输出高低电平信号,高电平为3.8V ,低电平为0V ;d 、 灵敏度可调(精调),调节火焰检测范围;e 、 带固定安装孔,方便安装调试;f 、 电路板输出OUT 标识为开关量,可直接接单片机IO 口,无火焰时输出高电平指示灯灭,有火焰时输出低电平,指示灯亮,响应时间<2μs ;g 、 用于火焰检测,可检测760纳米~1100纳米范围内的热源,火焰探测角度为45°范围; 6.5.3 火焰传感器工作原理电路中用到,火焰传感器电路、信号放大电路、单片机系统、状态显示系统构成。

其基本工作原理:经过信号放大电路,火焰传感器电路将感受到红外光程度以高低电平形式输出至单片机系统, 由状态显 实验知识6.5 +5V 输入TTL 信号输出 GND 输入输出信号指示灯,低有效火焰感应探头模拟信号输出灵敏度调节旋钮,顺时针增大火焰传感器工作框图如图6-10:图6-10 电路工作框图6.5.4 火焰传感器的硬件电路图电路中,火焰传感器电路如图6-11:图6-11 火焰传感器硬件图1、烧好ZIGBEE 和智能网关程序。

(如果没有动传感器ZIGBEE 和网关的程序,那么此步骤可以跳过;如果动了,详细下载过程可参考“传感器实验之环境搭建.doc ”文档,这里恕不赘述。

)2、将火焰传感器接到传感器A 端口。

可以在图6-1所示中找到传感器A 端口的位置,对应原理图上的J4,如图6-11所示,切勿把传感器位置装错了3、连接好外围硬件电路,如图6-12所示。

(这个连接过程当中很多的卡槽,千万别把卡槽卡装反了,不然很容易烧坏J-Link 。

)图 6-12 外围硬件连接示意图4、将仿真器USB 连接入PC 机,插好电源,并打开开发实验箱上的电源开关和启动按钮,跳到网关显示界面,然后点击功能键进入,如6-13图所示。

图 6-13 网关显示界面5、找到传感器实验图标如图6-14所示,点击进入传感器实验显示界面如6-15图所示。

图6-14 传感器实验显示程序 图6-15 网关传感器显示界面6、新建一个文件夹命名为“火焰传感器”,并在该文件夹下创建一个“RVMDK “文件夹(存放工程用);7、然后在“RVMDK ”文件夹下新建一个“OBJ ”文件夹(用来存放编译输出信息);8、在“传感器实验/实验例程/实验6 传感器之火焰篇/code ”文件夹下找到“rsc ”文件夹,把它复制到到“火焰传感器”文件夹下,即与“RVMDK ”文件夹并列;9、启动Keil μVision4;10、单击菜单栏的“Project ”,选择“New uVision Project ”,新建一个工程,命名为“FALME ”; 11、保它存在刚建立好的“火焰传感器”里面的“RVMDK “文件夹下; 12、右键“Target 1”,选择“Manage Components ”选项;13、把“Target 1”修改为“FALME ”,把Source Group1”改命为“Starup ”并创建六个Groups ,分别是“user ”“usart ”“lib ”“led ”“sensor ”“key ”。

如图6-16所示;14、然后给每个Group 分别在添加好对应的.c 文件,(.c 文件在刚刚复制过来的“rsc ”文件夹里面),火焰传感器电路信号放大电路单片机系统状态显示系统实验步骤 6.6 转接板,这样类似的卡槽千万别装反了,不然可能烧坏J-Link ,左边直接用USB 线连接电脑ZIGBEEN 调试底板和ZIGBEEN 模块电源20PIN 连接线传感器链接10PIN 连接线点击这进入功能界面图6-16 文件示意图15、单击工具栏的“Rebuid”图标,直到编译没有警告和错误,如果有就根据警告和错位,进行修改程序;16、点击工具栏的“Target Options”,选择“Output”,把输出文件位置设置在“OBJ”下,并且设置有hex输出;17、点击工具栏的“Target Options”配置好J-Link;18、打开ZIGBEE地板上的电源开关,点击“LOAD”进行程序烧写验证;(以上建工程详细过程可以参考实验二)19、验证:用打火机打燃放在火焰传感器探测头前,观察显示屏上状态的变化;20、验证完毕后,退出J-Link仿真界面,关闭Keil μVision4软件;关闭硬件电源,捡收好硬件设备,并整理桌面;{case SENSOR_FLAME: //判断火焰传感器GetSensorData(data); //采集数据break;default:no_sensor = 0;break;}return no_sensor;}从这个函数不难看出,这里有1个字节的传感器型号。

所以传感器还要获取只有五个字节的数据,其中包括一个字节的符号。

void GetSensorData(u8* data){data[0] = 0;data[1] = 0;data[2] = !SENSOR2_IN(); //读取传感器输出值data[3] = 0;data[4] = 0;}分析:这便是传感器采集的五个字节的数据。

从图6-20不难看出,当火焰靠近传感器的时候,STM32采集进来的是低电平信号,此时LED被点亮。

这里特别需要注意的是,这里我们为了保持网关平台采集信号的一致性,也就是高电平触发报警,所以这里的信号必须进行取反处理;所以火焰传感器使用data[2] = !SENSOR2_IN(),进行数据采集,其中SENSOR2_IN();的宏定义为((Sensor_IO_PORT->IDR&Sensor_IO_PIN2)>>Sensor_IO_NUM2);其本质也就是采集PB7口的电平变化情况来判断火焰检测的状态。

TTL输出图6-20火焰传感器的原理图6.8.2串口发送数据函数void USART2_Senddata(u8* str){u8 i,checksun_xor=0,checksun_add=0;u8 ct = 10;str[0] = 0xff;//数据接头1str[1] = 0x55; //数据接头2//*********** 数据校验 *************//for(i=0;i<ct-2;i++){checksun_xor ^=str[i];checksun_add +=str[i];}str[8] = checksun_xor;str[9] = checksun_add;//********** 数据发送**************//while( ct-- != 0){USART_SendData(USART2, *str++);while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);}分析:这里发送的数据一共是10个字节,前面两个字节是FF、55,这两个字节是ZIGBEE与网关数据传送的接头,第三个字节是传感器的类型,然后就是传感器采集函数的那五个字节的数据,最后两个字节就是校验。

思考题:1.修改程序,当检测到火焰时使用D5亮来指示火焰的发生。

相关主题