仿真图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,蜂鸣器电路不工作。
下图检测到甲醛浓度是0.110mg/m3,大于等于报警值,三极管导通,蜂鸣器报警
3.程序设计
程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL库版本编写的,有注释可以结合讲解视频理解。
关键字:STM32 proteus仿真
引用地址:
基于STM32的甲醛浓度检测报警proteus仿真设计
推荐阅读最新更新时间: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还是很容易的。无源晶振相对便宜一些,要求不是非常高的话也足够了。 对
[单片机]
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
[单片机]
关于Stm32学习中的惨痛教训
芯片擦除成功,但板子不能运行 没有出现 Application running 原因如图所示 左上方的Reset and Run 没有勾选。 操作路径为: options for target --- Utilities ---- Setting 即可 关键步奏 就正常了; 小结: 当出现 一定是bsp_key.h文件中缺少#include“stm32f10x.h” 当出现 说明 digitalToggle 函数没有定义好。如果你觉得定义过了,那木一定是极细微的错误,例如多写了、少写了、错写了一个字母(就这样小错误会让你心烦气躁;浪费大量的时间)。
[单片机]
外部晶体振荡器被旁路的原理和原因
单片机的外部晶振稳定,受温度,湿度等环境因素影响比内部振荡器小,精度比较高。而且当设计需要降低功耗时,比如说便携式仪表等,就需要外设晶振,因为内部振荡器不能根据需要停止,而外部晶振可以适时停止,从而进入休眠状态,降低功耗。 晶振被旁路原理 ”晶振/时钟被旁路“ 是指将芯片内部的用于外部晶体起振和功率驱动等的部分电路和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均关闭,同时
[单片机]
意法半导体更新TouchGFX软件,增加视频功能丰富STM32用户体验
意法半导体更新TouchGFX软件,增加视频功能,丰富STM32用户体验 2021 年 11月5日,中国——意法半导体发布了最新版的STM32* 微控制器 (MCU)图形界面开发软件TouchGFX Version 4.18,新增了视频播放功能,改进了多名开发者协同开发工具,支持新的 X-NUCLEO 显示板。 通过可以播放 Motion-JPEG (MJPEG) 视频文件,TouchGFX为家庭自动化产品、穿戴设备、医疗设备和工业传感器等小型设备带来了更多产品力,实现丰富的功能,例如,用户操作指南或有趣的启动和暂停屏幕,提升图形用户界面的视觉效果。开发人员可以使用自己的 MJPEG 文件或从软件提供的电影示例中选择
[嵌入式]