分享一种STM32单片机空调温度控制系统设计方案

发布者:HarmonySpirit最新更新时间:2025-08-01 来源: elecfans关键字:STM32  单片机 手机看文章 扫描二维码
随时随地手机看文章

一、功能简介

本项目使用Proteus8.12仿真STM32单片机控制器,使用继电器加热/保温模块、数码管模块、按键模块、电机驱动模块等。


主要功能:

系统运行后,LCD1602显示温度和空调启动温度阈值及工作模式;当检测温度高于设置的温度阈值,空调变频器会随温度升高速度加快,可通过SW1开关切换自动和手动模式,当系统处于手动模式时,K1和K2用于调节变频器转动速度;当系统处于自动模式时,K1和K2用于设置温度阈值。


主要功能如下:

(1)温度检测;

(2)LCD1602显示;

(3)自动/手动控制变频器转速。


二、软件设计

//系统初始界面显示

void sys_open_show(void)

{

lcd1602_clear();

lcd1602_show_string(0,0,'Temp: C');

lcd1602_show_string(0,1,'TempH: C');

lcd1602_show_string(11,1,' Auto');

}

//系统数据获取

void sys_data_get(void)

{

static u8 i=0;

while(1)

{

//温度获取

i++;

if(i%5==0)

sys_ctrl.temp=DS18B20_GetTemperture()*10;

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]='�';

lcd1602_show_string(5,0,buf);

//温度阈值显示

lcd1602_show_nums(6,1,sys_ctrl.temph,2,0);

//手动状态显示

if(sys_ctrl.auto_flag)lcd1602_show_string(11,1,'Manul');

else lcd1602_show_string(11,1,' Auto');

break;

}

}

//系统数据设置

void sys_data_set(void)

{

u8 key=0;

key=KEY_Scan(0);

//自动/手动模式

if(AUTO_PIN==0)

sys_ctrl.auto_flag=0;

else

sys_ctrl.auto_flag=1;

//自动模式下

if(sys_ctrl.auto_flag==0)

{

//加

if(key==KEY1_PRESS)

{

sys_ctrl.temph++;

if(sys_ctrl.temph>99)sys_ctrl.temph=0;

}

//减

else if(key==KEY2_PRESS)

{

sys_ctrl.temph--;

if(sys_ctrl.temph<0)sys_ctrl.temph=99;

}

}

//手动模式下

else

{

//加速

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.temph10 && sys_ctrl.temp10+20)

sys_ctrl.gear=1;

else if(sys_ctrl.temp>=sys_ctrl.temph10+20 && sys_ctrl.temp10+40)**

sys_ctrl.gear=2;

else if(sys_ctrl.temp>=sys_ctrl.temph10+40 && sys_ctrl.temp10+60)

sys_ctrl.gear=3;

else if(sys_ctrl.temp>=sys_ctrl.temph10+60 && sys_ctrl.temp10+80)**

sys_ctrl.gear=4;

else if(sys_ctrl.temp>=sys_ctrl.temph10+80)*

sys_ctrl.gear=5;

}

//如果温度低于阈值,风扇停止

else

sys_ctrl.gear=0;

pwm_set_duty(sys_ctrl.gear20);//占空比*

}

}

//应用控制系统

void appdemo_show(void)

{

u8 i=10;

sys_parm_init();//系统参数初始化

KEY_Init();

DS18B20_Init();

ctrl_pin_init();

lcd1602_init();//LCD1602初始化

dc_motor_init();

pwm_init(100-1,800-1);

pwm_set_duty(0);//占空比

pwm_out_sta(1);//PWM使能输出

dc_motor_dir_ctrl(0);

//读取温度数据,等待稳定

while(i--)

{

//温度获取

*sys_ctrl.temp=DS18B20_GetTemperture()10;

delay_ms(100);

}

sys_open_show();//系统初始界面显示

while(1)

{

sys_data_get();//系统数据获取

sys_data_show();//系统数据显示

sys_data_set();//系统数据设置

sys_fun_ctrl();//系统功能控制

}

}

三、实验现象

图片

图片

图片


关键字:STM32  单片机 引用地址:分享一种STM32单片机空调温度控制系统设计方案

上一篇:STM32电源低功耗管理有哪几种呢?
下一篇:LL库中常见关键字__STATIC_INLINE

推荐阅读最新更新时间:2026-03-24 15:56

27-基于51单片机空调温度控制系统
具体实现功能 系统由STC89C51单片机+LCD1602液晶显示屏+L298N控制模块+直流电机+DS18B20温度传感器构成。 具体功能: (1)实现L298N对电机的控制,利用LCD1602直接、清晰明了的显示温度; (2) 基于测得的温度实现对电机转速的控制(利用电机模拟空调变频系统); (3)在自动模式下,温度越高,占空越高,转数越快。手动模式下,通过按键可以实现电机转速的控制。 设计背景 近些年来,随着空调行业的迅速发展,极大的占领了市场。与风扇相比,空调有强大的制冷功能,可以快速有效地降低环境温度。然而,空调也存在不少问题,例如,夏天吹时间长了容易得空调病,室内和室外温度不平衡容易热感冒;同时,由于
[单片机]
27-基于51<font color='red'>单片机</font>的<font color='red'>空调</font><font color='red'>温度</font><font color='red'>控制系统</font>
一种汽车空调温度控制系统的设计
随着无线通信、信息传感技术的迅猛发展和日渐成熟, 通过信息传感设备和网络将物品联接成物联网, 以实现物品的自动识别、定位、跟踪、监控和管理为目标的服务已成为可能。物联网技术在国民经济中的应用越来越广泛, 近年来引起学术界和工业界的广泛重视, 目前已成为全球的热点问题, 许多国家都将物联网的发展提高到国家级的战略高度, 本文就是从物联网的角度出发提出一种以GSM 无线网络为基础, 通过温度传感器, 将用户手机、汽车空调组合成一个小型物联网的应用设计。现代汽车中的空调一般是利用手工进行控制的,空调只有等到司机进入驾驶室才能开启或关闭,这就使得在炎热的夏天或寒冷的冬天, 刚进入车内时由于空调没有开启,人会感觉到异常的燥热或寒冷,因此
[工业控制]
一种汽车<font color='red'>空调</font><font color='red'>温度</font><font color='red'>控制系统</font>的设计
什么是stm32单片机
stm32f103c8t6单片机是高校学生使用的最频繁的单片机了,被广泛的应用在课程设计,电子设计大赛,毕业设计中。其拥有非常优异的性能,同时价格低廉,参考资料多,是广大学生非ban必选的mcu。 单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已 。 或许大家有经常听起过最小系统板这个词儿,那么什么是最小系统板呢?其实最小系
[单片机]
陈老师告诉你STM32单片机的DMA怎么使用
DMA技术的运用合乎真香定律,是提高单片机CPU程序执行效率的常用方法之一,但是在其运用前须要对很多的寄存器进行初始配置,对新手不够友好,今天我以串口为例,来带大家梳理一下DMA的运用方法,理清概念之间的关系,帮助大家更好的掌握和运用DMA技术. ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得口令陈老师/// 串口是单片机最常用的外设,一般可用于达到多机的通讯功能.(串口USART1在单片机内部的位置如下图1处所示),CPU是控制和计算核心(如下图2处所示),DMA也能够认为是一个内部的控制器,(如下图3处所示)
[单片机]
STM32单片机的内存分布详解(1)
STM32具有和PC机类似的结构组成。那么我们平时听到的RAM和ROM就相当于PC的内存条和硬盘,当然了PC的硬盘和单片机的ROM也并不是所谓的只读,只不过以前的技术原因很难做到多次读写,因为最初的存储器是纸带、熔丝或者其他一次性存储器,因此只能读取,也就是ROM,当然那时候也不需要持续的修改。随着技术的革新,这些最初的ROM慢慢的增大内存、增加写功能、提高读写速度。而ROM的叫法也一直延续下来。 扩展一下,为什么ROM也可以写,不用ROM当RAM呢?因为ROM还是太慢了,读取可还行(比如F7、H7就支持QSPI运行程序),写就是肉眼可见级别的延迟了。所以RAM这种需要高速读写的还是让SRAM、SDRAM、DDR等
[单片机]
STM32单片机的Bootloader详解(2)
之前我们说到了Bootloader,有了它我们就可以方便的下载和运行新的程序,但是这也意味着别人也可以抄你的板子,用仿真器读出来你的程序,从而复制你的完整产品功能。所以你还需要学会对产品加密。 加密和破解是个比较那个的话题了。怎么说呢?有的东西不该收费、不该限制那么破解就是合理的,比如黑客们就看不惯某些网站企图垄断收费,某些软件企图限制网速收费。当然了,大多数人都是出于需求考虑选择的破解或者是盗版。总不能需要编辑个文档就买一套Word吧,总不能学个单片机花数十万买MDK和AD授权吧。一定程度上这些也是大多数人需求。这里关于故意引导用户习惯养成、低价 盗版挤压垄断软件市场垄断等等的话题我们就不谈了。 那么如果
[单片机]
【Linux】GCC+Makefile打造正点原子stm32单片机开发环境
arm-none-eabi-gcc+stlink-tool+Makefile 正点原子精英STM32F103ZET6开发板采用V3.5库的头文件 下载固件库:https://www.st.com/content/ccc/resource/technical/software/firmware/48/ab/e5/17/0d/79/43/74/stsw-stm32054.zip/files/stsw-stm32054.zip/jcr:content/translations/en.stsw-stm32054.zip 解压得到STM32F10x_StdPeriph_Lib_V3.5.0 新建文件夹:stm32,stm32/lib,s
[单片机]
STM32 - 软件设置单片机重启
__set_FAULTMASK(1);//关闭总中断 NVIC_SystemReset();//请求单片机重启 执行NVIC_SystemReset()函数不允许被打断,所以关总中断
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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