探测器显示
微五科技CF5010RBT60 开发板试用体验+ 气体报警器项目 上期我们总结了关于CF5010RBT60开发板试用体验,本篇我给大家分享一个使用CF5010RBT60开发板做的一个气体报警器项目原型。 一、气体浓度检测原理 目前国内市场上气体报警器检测的气体种类很多,大体分易燃易爆的可燃性气体,对人身体有毒有害的毒性气体,以及氧气和二氧化碳气体居多,我们今天重点讲述家用可燃气体报警器的设计。 可燃气体报警器所用的气体浓度传感器分为半导体类,催化燃烧类,电化学式,非色散红外(NDIR )类和激光类,目前这几类传感器都在报警器中有使用。半导体类的传感器主要适用于家用可燃气体报警器,优点试成本低廉,报警点稳定,催化燃烧式的主要使用在工商业报警器上,优点是线性度高,适合定量的分析环境可燃气体的浓度,但是以上两个类型的传感器有一个共同的缺点就是容易受到硅、硫等化合物以及醚类污染,使气体传感器失去活性(即传感器中毒),所以近年来,很多报警器都使用了红外或激光传感器来检测气体浓度,他们的优点是不中毒,免标定,抗冲击等,缺点是成本高,所以在一些高端的应用领域使用光学传感器。电化学式主要应用于毒性气体和氧气的检测。 本篇我们重点讲述半导体和催化燃烧式的气体报警器的设计。 从《智能传感器技术》第10张上,我们可以看到关于可燃气体传感器半导体类和催化燃烧式传感器的检测原理。 file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps17.jpg 1、半导体可燃气体传感器检测原理图: file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps2.jpg 将VRL的电压配置在3.3V以内,即可使用CF5010RBT60上的12位AD采到气体反应的电压变化值。我们提前标定好报警点的浓度,当气体反应达到报警浓度时,报警器即可发出报警提示信息。当传感器采集到的电压为0V时表示传感器损坏了。 2、催化燃烧式可燃气体传感器检测原理图: file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps3.jpg 催化元件是由黑白原件组成,使用时需要对黑白原件匹配电阻电路,图中的VR 用来调整零点。匹配电路也可以通过pwm 信号控制,可以达到自动调零的目标。黑白原件的公共端输出到AD 上作为传感器故障检测信号,电桥输出的差分信号通过仪表放大器放大后,送入AD 采样,根据传感器的线性特点,报警器整机做好后,再进行零点标定和量程点标定,即可方便的计算出实时的气体浓度。 二、气体报警器原理框图 file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps4.jpg
三、元器件选型 主控单元我们采用电子发烧友的CF5010RBT60 开发板上面带有一个指示灯,作为报警灯,同时也可以作为声音的输出端口。开发板上有两个按键,可以配合使用进行报警器的标定操作和平时功能测试键使用。 显示器件我们采用1.8寸的OLED显示器,标准的I2C接口,可以外挂外部的E2prom。
控制部分可以任意指定两个端口驱动三极管,采用继电器输出即可。 传感器信号部分,可以选择半导体或者催化燃烧传感器,因为两类传感器的信号最终都是模拟电压信号,我们暂时使用电位器代替。故障信号也使用电位器代替。 file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps7.jpg file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps8.png 物联网可以使用开发板上的串口进行测试,直接驱动一款NB-IOT或者4G模块进行云平台通讯。 电源可以选择使用J-link 电源暂时替代。这样我们的报警器的硬件资源基本完成了,可以进行程序设计和调试。 file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps9.jpg 四、程序设计 鉴于我们使用的硬件环境,我们利用现有的有限硬件给大家编写一个基本的报警器程序模型,我这里抛砖引玉,具体细化的功能大家可以再进行延伸。 报警器的程序流程图如下: file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps10.jpg file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps11.jpgfile:///C:UsersAdministratorAppDataLocalTempksohtml7308wps12.jpg 程序调试过程中,我们使用了AD转换模块和I2C模块,显示器采用I2C总线的OLED,我们调试了显示,意味着我们也就完成了AT24C64的存储器调试,将来的报警信息存储即可存储在AT24C64,时钟芯片选择I2C总线的PCF8563T,即可存储报警的时间信息。这样我们的程序即可基本完成报警器的几乎所有功能,按照以上的流程图即可完成报警器的程序设计,笔者编写的基础模型程序调试过程如下图:
file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps13.jpg file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps14.jpg file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps15.png file:///C:UsersAdministratorAppDataLocalTempksohtml7308wps16.jpg 程序源代码见附件 五、输出控制 报警器一般的输出信号有声音输出 ,报警灯光输出,继电器干接点输出和12V有源脉冲输出出了硬件电路驱动稍有不同外,软件全部是控制某个单片机端口高低电平输出,所以程序相对简单,硬件电路不再赘述。
|