news 2026/3/13 17:28:13

记录嵌入式学习心得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/3/12 22:53:27

Qt 入门实战(三):对象树与控件生命周期

在前两篇博客中,我们讲了 Qt HelloWorld 的两种实现方式,并顺便提到了 控件的生命周期 和 为什么没有 delete 也不会内存泄漏。 这一篇我们专门聊聊 Qt 的核心机制之一:对象树(Object Tree)。一、对象树是什么 对象树本…

作者头像 李华
网站建设 2026/3/13 7:23:09

5、设备通信控制与线程同步技术解析

设备通信控制与线程同步技术解析 1. 设备通信与控制 在设备通信与控制领域,sysctl 是一个关键概念。通过 SYSCTL_ADD_* 宏创建的 sysctl 必须连接到父 sysctl,这可通过将 SYSCTL_STATIC_CHILDREN 或 SYSCTL_CHILDREN 作为父参数来实现。 SYSCTL_STATIC_CHILDREN 宏 :当连…

作者头像 李华
网站建设 2026/3/3 14:25:09

10、使用iptables进行NAT和数据包处理

使用iptables进行NAT和数据包处理 1. 连接跟踪助手模块 在网络环境中,对于一些特定协议,如FTP、IRC、TFTP、Amanda备份协议以及SCTP协议等,有相应的连接跟踪助手模块来提供支持,这些模块分别是IP_NF_FTP、IP_NF_IRC、IP_NF_TFTP、IP_NF_AMANDA和IP_NF_CT_PROTO_SCTP。若要…

作者头像 李华
网站建设 2026/3/13 3:05:07

DAY12@浙大疏锦行

笔记和作业使用bayes_opt库的流程1.# 定义目标函数def knn_cv_score(n_neighbors, weights, metric):"""输入KNN参数,返回交叉验证平均准确率参数说明:- n_neighbors: 近邻数(整数,贝叶斯优化会自动处理浮点转整数…

作者头像 李华
网站建设 2026/3/13 9:50:42

基于SpringCloud的美食分享交流平台_olf9xynq

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

作者头像 李华
网站建设 2026/3/12 18:43:06

快速排序(分治思想)算法

我来为你写一个Python版本的快速排序,使用分治策略,当子数组大小小于等于 n/16 时不再递归: import random import sys from typing import List, Tuple from collections import dequedef quick_sort_recursive(arr: List[int]) -> List[…

作者头像 李华