基于小凌派烟雾报警功能的实现

描述

烟雾检测传感器使用的是MQ-2烟雾传感器。MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。

使用MQ-2烟雾传感器来检测周围环境烟雾浓度,再通过小凌派开发板采集信号。因为采集的信号是电压值所以通过adc转换成数字信号。这里有个需要注意的地方RK2206的ADC默认参考电压是内部2.4v所以初始化ADC时通过配置soc_con29 寄存器改成外部3.3v参考电压。

参考代码

 

小凌派

 

读取ADC电压

 

小凌派

 

计算ppm值

阻值R与空气中被测气体的浓度C的计算关系式

log R = mlog C + n (m,n均为常数)

传感器的电阻计算

Rs = (Vc/VRL-1) X RL

Vc为回路电压,VRL是传感器4脚6脚输出电压,RL是负载

 

小凌派

 

ppm值校准

 

小凌派

 

因为使用的是无源蜂鸣器,所以通过pwm驱动蜂鸣器报警。

pwm初始化

 

小凌派

 

pwm 启动

 

小凌派

 

pwm停止

 

小凌派

 

蜂鸣器报警控制,需要报警时启动pwm,不需要报警时停止pwm

 

小凌派

 

整个模块初始化

 

小凌派

 

创建一个任务处理函数

这里需要注意的是ppm校准需要提前测试,再把值写死到代码里。

还有需要注意的是mq2传感器需要预热,即提前通电大约半分钟到一分钟左右。用手放在传感器外壳感觉微微发热即可。如果不预热就开始测量其测量值会偏差很大,而且会随着加热而变化。

 

小凌派

 

最后创建一个任务调用上面处理函数即可。

烧写程序后通过串口打印结果

小凌派

当检测到烟雾超过设定值时蜂鸣器报警响起。低于设置值时蜂鸣器停止报警。这样基于小凌派的烟雾报警功能就实现了。

  审核编辑:彭菁
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分