【Proteus仿真】【STM32单片机】智能温控风扇设计


一、功能简介

本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。

系统运行后,LCD1602显示传感器检测的温度值;
默认以自动模式运行,若按下K4键切换为手动模式,此时可以
通过K1和K2控制风扇加减速,风扇档位共5档(0-5)。当再次按下K4键切换为自动模式;自动模式下,实时检测温度值,当温度高于上限且在2C范围内,以3档运行。当温度高于上限且在4C范围内,以4档运行。当温度高于上限且在6C范围内,以5挡运行。当温度高于上限且超过6C范围,以5档运行且蜂鸣器报警。若温度在上下限范围内,风扇以2档运行。若温度低于下限,风扇停止。可通过K3键进入阈值设置,K1和K2调节。
主要功能如下:
1、温度检测与LCD显示
2、超上限温度越高风扇越快
3、低下限风扇停止
4、温度阈值设置
5、超限报警


二、软件设计

/*
作者:嗨小易(QQ:3443792007)
*/





//系统初始界面显示
void sys_open_show(void)
{
	lcd1602_clear();
	lcd1602_show_string(0,0,"Tp:    C");
	lcd1602_show_string(14,0,"Au");
	lcd1602_show_string(0,1,"TL:  C");
	lcd1602_show_string(10,1,"TH:  C");
}

//系统数据获取
void sys_data_get(void)
{
	static u8 i=0;

	while(1)
	{
		//温度获取
		i++;
		if(i%1==0)
		{
			TIM_Cmd(TIM3,DISABLE);//关闭定时器
			sys_ctrl.temp=DS18B20_GetTemperture()*10;
			TIM_Cmd(TIM3,ENABLE);//打开定时器
		}		

		break;
	}	
}

//系统数据显示
void sys_data_show(void)
{
	u8 buf[5];

	while(1)
	{
		//温度显示
		buf[0]=sys_ctrl.temp/100+0x30;
		buf[1]=sys_ctrl.temp%100/10+0x30;
		buf[2]='.';
		buf[3]=sys_ctrl.temp%100%10+0x30;
		buf[4]='\0';
		lcd1602_show_string(3,0,buf);

		//温度阈值显示
		lcd1602_show_nums(3,1,sys_ctrl.templ,2,0);
		lcd1602_show_nums(13,1,sys_ctrl.temph,2,0);

		//阈值闪烁指示
		switch(sys_ctrl.mode)
		{
			case 1://温度下限
				lcd1602_show_string(3,1,"  ");
				delay_ms(50);
				lcd1602_show_nums(3,1,sys_ctrl.templ,2,0);
				break;
			case 2://温度上限
				lcd1602_show_string(13,1,"  ");
				delay_ms(50);
				lcd1602_show_nums(13,1,sys_ctrl.temph,2,0);
				break;
		}

		//档位显示
		lcd1602_show_nums(10,0,sys_ctrl.gear,1,0);
		
		//手动状态显示
		if(sys_ctrl.auto_flag)lcd1602_show_string(14,0,"SD");
		else lcd1602_show_string(14,0,"Au");

		break;			
	}
}

//系统数据设置
void sys_data_set(void)
{
	u8 key=0;
	
	key=KEY_Scan(0);
	//自动手动模式设置
	if(key==KEY4_PRESS)
	{
		sys_ctrl.auto_flag=!sys_ctrl.auto_flag;
	}
	//阈值模式设置
	else if(key==KEY3_PRESS)
	{
		sys_ctrl.mode++;
		if(sys_ctrl.mode>2)sys_ctrl.mode=0;
	}
	//阈值设置模式下,K1和K2加减
	if(sys_ctrl.mode!=0)
	{
		//加
		if(key==KEY1_PRESS)
		{
			switch(sys_ctrl.mode)
			{
				case 1://温度下限
					sys_ctrl.templ++;
					if(sys_ctrl.templ>99)sys_ctrl.templ=0;
					break;
				case 2://温度上限
					sys_ctrl.temph++;
					if(sys_ctrl.temph>99)sys_ctrl.temph=0;
					break;
			}	
		}
		//减
		else if(key==KEY2_PRESS)
		{
			switch(sys_ctrl.mode)
			{
				case 1://温度下限
					sys_ctrl.templ--;
					if(sys_ctrl.templ<0)sys_ctrl.templ=99;
					break;
				case 2://温度上限
					sys_ctrl.temph++;
					if(sys_ctrl.temph<0)sys_ctrl.temph=99;
					break;
			}	
		}	
	}
	//手动模式下,档位调节
	if(sys_ctrl.auto_flag==1)
	{
		//加速
		if(key==KEY1_PRESS)
		{
			sys_ctrl.gear++;
			if(sys_ctrl.gear>5)sys_ctrl.gear=5;
		}
		//减速
		else if(key==KEY2_PRESS)
		{
			sys_ctrl.gear--;
			if(sys_ctrl.gear<0)sys_ctrl.gear=0;
		}		
	}
}

//系统功能控制
void sys_fun_ctrl(void)
{
	//手动模式下,速度控制
	if(sys_ctrl.auto_flag==1)
	{
		pwm_set_duty(sys_ctrl.gear*20);//占空比	
	}
	//自动模式下,速度控制
	else
	{
		//如果温度高于上限,温度越高,风扇越快
		if(sys_ctrl.temp>=sys_ctrl.temph*10)
		{
			if(sys_ctrl.temp>=sys_ctrl.temph*10 && sys_ctrl.temp<sys_ctrl.temph*10+20)
				sys_ctrl.gear=3;
			else if(sys_ctrl.temp>=sys_ctrl.temph*10+20 && sys_ctrl.temp<sys_ctrl.temph*10+40)
				sys_ctrl.gear=4;
			else if(sys_ctrl.temp>=sys_ctrl.temph*10+40)
			{
				sys_ctrl.gear=5;
				//高于设定值则蜂鸣器报警
				if(sys_ctrl.temp>=sys_ctrl.temph*10+60)	
				{
					beep_alarm(100,20);
				}
			}
					
		}
		//如果温度低于下限,风扇停止
		else if(sys_ctrl.temp<=sys_ctrl.templ*10)
			sys_ctrl.gear=0;
		//温度在阈值范围内,风扇以固定速度运行
		else 
			sys_ctrl.gear=2;
		pwm_set_duty(sys_ctrl.gear*20);//占空比
	}	
}

//应用控制系统
void appdemo_show(void)
{
	u8 i=10;
	sys_parm_init();//系统参数初始化
	KEY_Init();
	BEEP_Init();
	DS18B20_Init();
	lcd1602_init();//LCD1602初始化
	//读取温度数据,等待稳定
	while(i--)
	{
		sys_ctrl.temp=DS18B20_GetTemperture();
		delay_ms(100);	
	}
	dc_motor_init();
	pwm_init(100-1,800-1);//初始时,PWM占空比为0
	pwm_set_duty(0);
	dc_motor_dir_ctrl(0);
	sys_open_show();//系统初始界面显示

	while(1)
	{
		sys_data_get();//系统数据获取
		sys_data_show();//系统数据显示
		sys_data_set();//系统数据设置
		sys_fun_ctrl();//系统功能控制		
	}
}



三、实验现象

演示视频: https://space.bilibili.com/444388619

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

STM32单片机智能窗帘控制系统程序Proteus仿真全套资料
01-04
单片机本科设计有需要加微信15930962598, (1)实时监测温度、光照强度和烟雾浓度等参数,并将数据显示在屏幕上。 (2)根据设定的温度和光照阈值,自动调节窗帘的开闭状态。 (3)当监测到室内烟雾浓度超过阈值时,...
基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料).zip
11-07
基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料)
115-基于stm32单片机DS18B20智能温控风扇控制系统Proteus仿真+程序源码
STM32_C51的博客
08-23 2049
资料编号:115一:功能介绍1、采用stm32单片机+LCD1602+ds18b20温度传感器+按键+蜂鸣器+电机,制作一个多功能可显示温湿度、光照强度的可调时钟闹钟;2、通过按键设置温度阈值,LCD1602显示设置的温度阈值;3、当ds18b20检测温度大于设置阈值,蜂鸣器进行报警提醒,风扇自动打开进行散热;4、LCD1602显示ds18b20采集的温度、和设置的温度阈值;二:仿真演示视频+程序...
智能温控风扇设计毕业论文.doc
04-17
智能温控风扇设计毕业论文
毕设项目 基于stm32智能温控风扇设计与实现
最新发布
Travers132的博客
03-30 1073
Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目基于stm32智能温控风扇设计与实现大家可用于 课程设计 或 毕业设计🧿毕设项目分享:见文末!DS18B20 是美国 DALLAS 半导体公司继 DS1820 之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比, 它能够直接读出被测温度并且可根据实际要求通过简单的编程实现 9~12 位的数字值读数方式。1602 液晶也叫 1602 字符型液晶, 它是一种专门用来显示字母、 数字、 符号等的点阵型液晶模块。
基于STM32智能风扇_STM32F103_stm32智能风扇_STM32PWM风扇_stm32风扇模块_hcsr501
09-10
基于STM32单片机智能风扇,PWM输出 具有HCSR501模块的人体感应功能 DHT11的温度读取功能
C语言开发基于stm32智能风扇系统源码.zip
06-05
C语言开发基于stm32智能风扇系统源码。C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码。C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码。C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码。C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32智能风扇系统源码C语言开发基于stm32
基于STM32单片机DS18B20温度监控报警proteus仿真设计
weixin_52733843的博客
08-24 4846
开始仿真:LCD屏显示实时温度和检测值,同时工作指示灯点亮。注意,此PCB仿真绘制而来,没做实物验证,仅供参考。注意,此原理仿真绘制而来,没做实物验证,仅供参考。当温度超过上限值时LED红灯报警,风扇开始转动;Proteus仿真版本:proteus 8.9。温度过高时启动继电器控制的风扇,实现自动保护。实时温度大于监测值,马达转动,红灯亮起。
基于stm32智能风扇
m0_73582419的博客
12-08 1501
基本功能:按键控制风扇档位,蓝牙控制,LCD显示频率和占空比。频率,就是周期的倒数;占空比,就是高电平在一个周期内所占的比例。在上中,频率F的值为1/(T1+T2),占空比D的值为T1/(T1+T2)。通过改变单位时间内脉冲的个数可以实现调频;通过改变占空比可以实现调压。占空比越大,所得到的平均电压也就越大,幅值也就越大;占空比越小,所得到的平均电压也就越小,幅值也就越小。
【毕业设计】基于stm32智能温控风扇设计与实现 - 物联网 单片机
m0_71572576的博客
06-30 1万+
Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目基于stm32智能温控风扇设计与实现大家可用于 课程设计 或 毕业设计单片机-嵌入式毕设选题大全及项目分享:https://blog.csdn.net/m0_71572576/article/details/125409052随着科技的日新月异,智能家居逐渐走入普通家庭,风扇作为基本的家用电器也将成为智能家居的一部分。这里介绍的是以STM32单片机为控制单元并结合嵌入式技术设计的一款具有温控调速、液晶显示温度等信息的智能风扇。经过前期设计、制作
基于STM32的多功能温控风扇设计
qq_44987481的博客
06-30 9403
本文设计了一种基于智能室内温度控制的自动调速风扇。以STM32系列单片机为核心主控板,通过程序代码驱动和使用温度传感器模块实现对环境温度的实时监测,并可以实时显示环境温度。同时,可以设置温度检测的上下警告值,根据需求自行调节。
基于STM32标准库智能风扇设计
weixin_44110278的博客
08-19 1617
基于STM32标准库智能风扇设计
基于STM32智能风扇系统
热门推荐
huying7664的博客
06-29 1万+
STM32F103为核心,结合红外遥控、人体感应、蓝牙数据传输等模块,实现风扇的启动、正反转、多级调速等功能,并通过物理按键、红外遥控以及手机APP三种不同的控制方式控制风扇实现各种功能。......
STM32单片机风扇控制系统设计程序代码.zip
05-06
STM32单片机风扇控制系统,这个是大二学习stm32来进行仿真锻炼的,当时也发现了问题(仿真中io口读取电平失败),查找了很多,才发现是proteus8.6的毛病,存在BUG,据说8.9版本能正常使用,但太大了,就没去安装,...
proteus仿真--STM32读取DHT11温湿度传感器并显示在数码管上
07-02
作品:proteus仿真--STM32读取DHT11温湿度传感器并显示在数码管上 使用材料:STM32F103、DHT11温湿度传感器、数码管 平台:proteus 和 keil 技术实现:利用单片机读DHT11的温湿度数据,并且显示到数码管上 资源...
基于STM32 DS18B20温度控制系统(proteus仿真+源程序).rar
06-25
(1)本系统采用STM32单片机作为主控器; (2)DS18B20采集温度值,送到液晶1602显示; (3)按键设置温度上下限。 (4) 实际测量温度小于下限,加热继电器启动,实际测量温度大于上限,降温继电器启动,实际温度...
48、基于51单片机红外遥控智能温控风扇系统设计
ENGLISH_HHZ的专栏
03-11 3767
STC89C52是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内4bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置用8位中央处理器(CPU)和Flash存储单元,功能强大。STC89C52单片机可灵活应用于各种控制领域。
PID温控实验平台搭建(一)——PID基础知识介绍
qq_35953617的博客
11-16 3999
最近,我突发奇想去翻阅了一些我本科期间所做的一些小项目,发现都挺有意思的!希望通过我的讲解文章可以帮助你们少走一些弯路!今天,我要分享的是一个PID温控实验平台的搭建,这是一个系列文章,手把手地教你学习和认识PID算法,了解这种算法在温度控制中的应用。由于我知识有限,如果出现一些错误,希望大家可以帮助我指出来,我们一起学习进步!!!
基于STM32温控风扇
wfch0的博客
11-22 560
设计是基于STM32温控风扇,主要实现以下功能: 温度控制风速,四个挡位,停止、低速、中速、高速 按键可切换模式,可手动切换挡位,四个挡位,停止、低速、中速、高速 按键设置温度值,包括停止温度,低速温度,中速温度、高速温度 显示屏显示温度值、风速挡位值、模式 标签:STM32、OLED12864、加热杀菌、清洁调节 题目扩展:智能空调系统、智能风扇系统
Proteus仿真stm32单片机与从设备进行基于Modbus RTU协议的RS485通信案例
05-03
Proteus仿真 STM32 单片机与从设备进行基于 Modbus RTU 协议的 RS485 通信,可以分为以下几个步骤: 1. 安装 STM32 库和 Modbus RTU 库 在 Proteus 中选择 Components -> Pick from Libraries,搜索并安装 STM32 库和 Modbus RTU 库。 2. 搭建仿真电路 在 Proteus 中搭建 STM32 单片机和从设备的仿真电路,其中需要注意以下几点: - 将 RS485 收发器的 DE 和 RE 引脚连接到单片机的 GPIO 引脚上; - 为了方便调试,可以在单片机的 USART1 引脚上连接虚拟示波器。 3. 编写 STM32 单片机的程序 在 Keil 等软件中编写 STM32 单片机的程序,实现 Modbus RTU 协议的 RS485 通信。具体实现过程可以参考以下步骤: - 配置 USART1 串口的波特率、数据位、停止位等参数; - 配置 GPIO 引脚的输入输出模式; - 实现 Modbus RTU 协议的数据帧发送和接收函数; - 在主函数中调用发送和接收函数,实现主设备与从设备之间的通信。 4. 仿真测试 在 Proteus 中进行仿真测试,可以使用虚拟示波器查看串口波形,以验证通信是否正常。 需要注意的是,由于 Proteus 中的 RS485 收发器并不支持硬件流控制,因此在实际应用中需要根据需要进行修改。同时,还需要根据实际情况调整 Modbus RTU 协议的数据帧格式和 CRC 校验等参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 【Proteus仿真】【51单片机】蔬菜大棚温湿度控制系统设计 35987
  • 【51单片机】LD3320A语音识别控制设计 14277
  • 【51单片机】SG90舵机控制 13797
  • 【Proteus仿真】【51单片机】简易信号发生器设计 11852
  • 【51单片机】MPU6050陀螺仪控制舵机设计 10091

分类专栏

  • 【Proteus仿真】【STM32单片机】趣味项目设计 86篇
  • 【Proteus仿真】【51单片机】趣味项目设计 85篇
  • 【Proteus仿真】【Arduino单片机】趣味项目设计 51篇
  • 【STM32单片机】趣味项目设计 32篇
  • 【51单片机】趣味项目设计 11篇
  • 【LVGL应用开发--基于STM32】 2篇

最新评论

  • 【Proteus仿真】【STM32单片机】光照强度检测系统

    2301_77308727: 光照强度不是嘞可嘶吗?为什么显示的是百分比

  • 【Proteus仿真】【51单片机】交通灯控制系统设计

    2401_84179292: 151行key报错是什么原因啊

  • 【Proteus仿真】【51单片机】拔河游戏设计

    m0_75156521: 你好,各个元件的名称是什么

  • 【Proteus仿真】【STM32单片机】基于STM32的智能家居控制系统

    2303_78771242: 你有了吗

  • 【Proteus仿真】【STM32单片机】基于STM32的智能家居控制系统

    2303_78771242: 我也想要

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 【Proteus仿真】【STM32单片机】井盖安全检测装置设计
  • 【Proteus仿真】【51单片机】井盖安全检测装置设计
  • 【Proteus仿真】【Arduino单片机】坐姿矫正提醒器设计
2024年36篇
2023年183篇
2022年50篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源姓雷起什么名字好彤含国语动画片优购物网bootcamp驱动带符号游戏起名大全电影桥五行属金的广告公司起名qq另类表情王小波起名餐饮门店给宝宝起名字大全上官敌可复制的万能空白昵称名典起名的八画字起名公司起名字大全免费2021公司个性起名豪门世家之重生鸡宝宝生辰八字起名家好月圆插曲中式灯具起名大众网球焉栩嘉怎么读地产公司起名大全免费致我们单纯的小美好小说重生之1979pointless起名大全下载软件网上怎么起名大全淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化