news 2026/7/7 21:01:28

记录嵌入式学习心得2:烟雾报警器项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
记录嵌入式学习心得2:烟雾报警器项目

1.任务目标:检测烟雾浓度,达到一定浓度后响起警报并打开风扇。可以控制临界值的大小,并在lcd1602上显示临界值和当前烟雾值。
2.所需模块:lcd1602,继电器(模拟风扇),蜂鸣器,烟雾模块MQ-2,STM32板,两根杜邦线(模拟按键)。

项目框图

左边输入,MQ-2模拟输入电压,经ADC后通过DMA转运到内存,按键1和按键2按下分别上升临界值和下降临界值。右边输出,lcd1602上显示当前烟雾值和临界值,当烟雾值大于当前临界值时打开蜂鸣器并打开风扇,当烟雾值小于当前临界值时关闭蜂鸣器并关闭风扇。

总体思路:
封装每个模块,包括Key,ADC,lcd1602,Fan,Beep。在主函数中依次测试每个模块,查看是否有接线错误,引脚配对。
监测按键,如果按下则对应改变临界值。
将DMA转运到内存的值拿出来作烟雾的值。
通过比较烟雾值和临界值对应设置开关蜂鸣器和风扇。

#注意事项:
1.ADC有对应的转运通道,此例中的使用PB0接入,应该走第8通道。

2.ADC_DMA转运的时候,需要设置一个uint32_t * 型的地址来接收数据,但是我们需要的烟雾值是浮点型float。可以通过在ADC模块中设置中间变量,先把数据接收下来,然后再重新封装一个返回值是float的函数。在主函数中调用新封装的函数即可。

3.需要让lcd1602显示一个变化的值,可以重新封装一个函数,输入一个变量值,在函数中定义一个数组,调用sprintf函数,将变量值赋到数组中,显示这个数组即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 22:55:34

发那科A06B-1409-B153 伺服电机详细介绍

核心性能参数强化分析A06B-1409-B153 伺服电机的额定功率3kW设计采用磁场饱和优化技术,在保持紧凑体积的同时实现功率密度提升40%。稀土永磁体采用钕铁硼N52UH级材料,剩磁强度达1.45T,配合6极分数槽集中绕组设计,使扭矩波动进一步…

作者头像 李华
网站建设 2026/7/7 17:49:05

6、网络安全威胁与防护策略

网络安全威胁与防护策略 在网络环境中,安全威胁无处不在,了解这些威胁并掌握相应的防护策略至关重要。本文将详细介绍常见的网络安全威胁以及对应的防护方法。 1. ICMP 相关威胁与防护 早期的 ICMP 实现存在一些漏洞,例如“死亡之 ping(Ping of Death)”。攻击者通过发…

作者头像 李华
网站建设 2026/7/7 15:26:57

17、小型ISP网络的QoS设置、网络构建与防火墙配置

小型ISP网络的QoS设置、网络构建与防火墙配置 1. QoS基本设置 在网络管理中,QoS(Quality of Service,服务质量)的设置至关重要。以下是为不同类型的流量分配带宽的基本设置: - 远程数据库应用开发者流量 :为远程开发者分配至少总带宽的1/8。 #Remote DB applicati…

作者头像 李华
网站建设 2026/7/7 4:29:41

基于SpringBoot的智能旅游行程规划系统的设计与实现_f3t4o913

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/7/7 18:49:56

年终总结时,才发现一年忙忙碌碌,成长却有限?

年底了,你是不是也这样? 翻完全年日历—— 会议开了200场,微信回了3万条,项目跑了十几个, 可坐下来写年终总结时,手停在键盘上,愣是敲不出一句“我今年到底长进了啥”。不是没干活,是…

作者头像 李华
网站建设 2026/7/7 18:51:26

LobeChat会话持久化机制揭秘:数据安全有保障吗?

LobeChat会话持久化机制揭秘:数据安全有保障吗? 在构建现代AI对话系统时,一个常被忽视却至关重要的问题浮出水面:如何让用户与大模型的每一次交互都不再“随风而逝”?尤其是在使用如LobeChat这类开源聊天界面时&#x…

作者头像 李华