基于STM32的甲醛浓度检测报警proteus仿真设计

发布者:心愿达成最新更新时间:2024-09-11 来源: elecfans关键字:STM32  proteus仿真 手机看文章 扫描二维码
随时随地手机看文章

仿真图proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0083

1.主要功能

功能说明:

1、以STM32单片机和控制核心设计甲醛浓度检测报警设计;

2、通过液晶屏LCD1602和串口上位机显示甲醛浓度,MV表示检测值,ALM表示报警值;

3、可以通过按键设置甲醛浓度ALM报警值大小。

4、监测甲醛浓度大于报警值时蜂鸣器报警电路导通,蜂鸣器报警。

5、默认监测到甲醛浓度高于0.100mg/m3蜂鸣器报警。

主要硬件设备:STM32F103单片机

资料下载链接:

https://docs.qq.com/doc/DS0FkcGdVRlFGcVhN

以下为本设计资料展示:


2.仿真设计

本实验利用STM32单片机的ADC、GPIO、定时器等资源,将软、硬件有机地结合起来,使得系统能够正确地进识别输入模拟甲醛传感器的AD值,LCD1602能够正确地显示,蜂鸣器根据气体浓度报警值工作。需注意的是,proteus是没有MQ-3等甲醛浓度传感器的,本设计使用滑动变阻器模拟甲醛浓度变化,不能直接用于实物设计,有需要的需跟据实物调试。

本测试如下所示:

仿真运行情况:

开始仿真后LCD1602实时显示检测到的甲醛浓度,可以通过滑动变阻器改变测量值。可通过按键设置报警值浓度,按下设置键进入设置模式,通过设置+调高报警值,通过设置-调低报警值。蜂鸣器报警电路在甲醛浓度高于报警值时启动,有嘟嘟报警声,低于不启动。

下图检测到气体浓度是0.090mg/m3,低于报警值0.100mg/m3,蜂鸣器电路不工作。

7c9135f4-53ca-11ee-a25d-92fbcf53809c.jpg

下图检测到甲醛浓度是0.110mg/m3,大于等于报警值,三极管导通,蜂鸣器报警

7cbf57a4-53ca-11ee-a25d-92fbcf53809c.jpg


3.程序设计

程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL库版本编写的,有注释可以结合讲解视频理解。

7cee5c16-53ca-11ee-a25d-92fbcf53809c.jpg

7d0d1f48-53ca-11ee-a25d-92fbcf53809c.jpg


关键字:STM32  proteus仿真 引用地址:基于STM32的甲醛浓度检测报警proteus仿真设计

上一篇:STM32单片机的堆栈深入解析
下一篇:STM32串口的发送和接收

推荐阅读最新更新时间:2024-11-10 10:34

STM32外部晶振电的主时钟方案
STM32的时钟源 STM32F103有两种主时钟方案,一个是依靠内部RC振荡器的HSI(内部高速时钟),另一个是HSE(外部高速时钟)。 内部高速时钟源(HSI) 看数据手册,内部的HSI是由ST出厂时校准过的,但是精度并不高,在0到70℃下误差范围达到 -1.3%到2%,即便是在标准的25℃下,也有 -1.1%到1.8% 的误差(如下图)。 对于高波特率的异步串口通讯,或者需要高精度定时的场合(如:需要跑积分算法的时候),用HSI就有隐患,甚至根本达不到设计要求。 外部高速时钟源(HSE) 为了更高的时钟精度,就要用HSE做主时钟源,起码做到30ppm还是很容易的。无源晶振相对便宜一些,要求不是非常高的话也足够了。 对
[单片机]
<font color='red'>STM32</font>外部晶振电的主时钟方案
stm32 系统嘀嗒(SysTick) 定时器
系统嘀嗒校准值固定为9000,当系统嘀嗒时钟设定为9MHz(HCLK/8的最大值),产生1ms时间基准。 在3.5 的库中 void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource) 位于 misc.c 文件中 然后在core_cm3.h 文件中,定义了一个内联函数,完成定时配置,中断开启,定时器开启的功能。 /* ################################## SysTick function ############################################ */ #if (!defined (__Vendo
[单片机]
STM32中的SysTick时钟源来自哪里?
有位朋友在后台大概问了这样一个问题:STM32的SysTick时钟源是来自Cortex系统定时器吗? 引伸: 为什么STM32CubeMX中Cortex系统定时器可选择1分频(和8分频)? 1写在前面 看到这个问题,我在想,这位朋友可能没有认真看手册,同时也存在一个误区。 我顺便也搜索了一下,网上很多文章都说到:SysTick时钟源是来自Cortex系统定时器,就是那个有8分频的时钟 但是,我们实际应用中,SysTick时钟源真的是来自这个Cortex系统定时器吗? 2 SysTick时钟初始化代码 不管是使用标准外设库,还是HAL库,你初始化SysTick,都会调用内核中的SysTick_Config函数。 比如: Sy
[单片机]
<font color='red'>STM32</font>中的SysTick时钟源来自哪里?
关于Stm32学习中的惨痛教训
芯片擦除成功,但板子不能运行 没有出现 Application running 原因如图所示 左上方的Reset and Run 没有勾选。 操作路径为: options for target --- Utilities ---- Setting 即可 关键步奏 就正常了; 小结: 当出现 一定是bsp_key.h文件中缺少#include“stm32f10x.h” 当出现 说明 digitalToggle 函数没有定义好。如果你觉得定义过了,那木一定是极细微的错误,例如多写了、少写了、错写了一个字母(就这样小错误会让你心烦气躁;浪费大量的时间)。
[单片机]
关于<font color='red'>Stm32</font>学习中的惨痛教训
外部晶体振荡器被旁路的原理和原因
单片机的外部晶振稳定,受温度,湿度等环境因素影响比内部振荡器小,精度比较高。而且当设计需要降低功耗时,比如说便携式仪表等,就需要外设晶振,因为内部振荡器不能根据需要停止,而外部晶振可以适时停止,从而进入休眠状态,降低功耗。 晶振被旁路原理 ”晶振/时钟被旁路“ 是指将芯片内部的用于外部晶体起振和功率驱动等的部分电路和XTAL_OUT引脚断开,这时使用的外部时钟是有源时钟或者其他STM32提供的CCO输出等时钟信号,直接单线从XTAL_IN输入,这样即使外部有晶体也震荡不起来了 只有在使用外部时钟的时候是被旁路,注意不是晶体振荡器,也就是说当使用外部提供的时钟时(如使用有源振荡器),必须设置这个控制位旁路上述内置振荡器;可以理解
[单片机]
基于STM32单片机低功耗模式机制详细解析
本文主要解读STM32低功耗模式的机制,并不侧重STM32低功耗的程序实现,而且借助STM32固件库实现STM32低功耗会变的非常简单。 一、STM32芯片性能 使用芯片型号:stm32f030f4,CORTEX-M0.封装TSSOP20. 运行模式:内部时钟(HSI),系统时钟频率采用48MHZ。 工作电压:3.3V 芯片具体参数如下: 二、芯片功耗 功耗: 芯片工作模式: 工作模式:外设正常运行,内核CPU及SRAM供电,未使用外设的时钟默认关闭。 睡眠模式:只有CPU停止工作,各个外设正常工作,依靠任何中断/事件唤醒。 停机模式:1.8V供电区域时钟被停止,内部HSI,PLL,外部时钟HSE均关闭,同时
[单片机]
基于<font color='red'>STM32</font>单片机低功耗模式机制详细解析
意法半导体更新TouchGFX软件,增加视频功能丰富STM32用户体验
意法半导体更新TouchGFX软件,增加视频功能,丰富STM32用户体验 2021 年 11月5日,中国——意法半导体发布了最新版的STM32* 微控制器 (MCU)图形界面开发软件TouchGFX Version 4.18,新增了视频播放功能,改进了多名开发者协同开发工具,支持新的 X-NUCLEO 显示板。 通过可以播放 Motion-JPEG (MJPEG) 视频文件,TouchGFX为家庭自动化产品、穿戴设备、医疗设备和工业传感器等小型设备带来了更多产品力,实现丰富的功能,例如,用户操作指南或有趣的启动和暂停屏幕,提升图形用户界面的视觉效果。开发人员可以使用自己的 MJPEG 文件或从软件提供的电影示例中选择
[嵌入式]
意法半导体更新TouchGFX软件,增加视频功能丰富<font color='red'>STM32</font>用户体验
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved