当前位置: 首页 > news >正文

记录嵌入式学习心得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函数,将变量值赋到数组中,显示这个数组即可。

http://www.cnnetsun.cn/news/62905.html

相关文章:

  • MYSQL的学习
  • 8、延迟执行与虚拟零调制解调器驱动解析
  • 7、Linux 网络安全与防火墙配置全解析
  • 基于springboot和vue的校园二手书交易系统_w387km94
  • 基于SpringBoot的艺术作品展示平台 艺术家在线交流系统 关注z50di044
  • C#AI系列(6): C#离线实现高效OCR
  • 山东高校申请专利的难点
  • 淄博市发明专利与实用新型专利的转换
  • 基于Python的河南天气数据分析与可视化
  • 【Linux系统编程】(十五)揭秘 Linux 环境变量:从底层原理到实战操作,一篇吃透命令行参数与全局变量!
  • 轨道交通专业相关证书推荐
  • PaperXie AI毕业论文写作功能深度拆解:从选题到成稿,一个被低估的学术效率加速器如何重塑你的科研流程
  • 2026年,你希望公司更离不开你,还是你更离不开公司?
  • YOLOv10优化:注意力魔改 | 新颖的卷积轴向注意力和谱空间注意力助力涨点,适用高分辨率场景,2025.12
  • 35、gawk调试器命令全解析
  • 41、gawk扩展功能全解析
  • Java Web 核心全解析
  • 7、远程服务安全攻防全解析
  • 18、网络安全防护:psad与fwsnort的应用与集成
  • 30、深入探索fwknop:安全访问与防护机制详解
  • 31、编程技巧与实用程序解析
  • 38、深入探索 gawk 扩展开发:性能优化与功能定制
  • 数据结构之递归-如何巧妙利用递归函数的返回值
  • 46、深入探索编程符号、函数与操作:从基础到高级应用
  • 论AI时代下 “马扁” 子的趋势分析(一)
  • 7天拿下微软PowerBI证书真的太香了
  • JSP中如何设计大文件上传的交互界面与用户体验?
  • wangEditor粘贴ppt幻灯片转存网页兼容处理
  • 从 paperxie 到工具矩阵:AI 开题报告工具如何帮你突破 “学术启动瓶颈”?
  • 工具矩阵:开题报告写作的 “规范效率工具箱”——9款 AI 工具的场景化适配实践