摘 要: 本设计是由STC89C51单片机控制,采用DS18B20温度传感器、人体红外传感器模块和数码管设计而成的智能温控风扇系统。该系统通过脉冲宽度调制,实现了风扇系统在有人的情况下依据当前温度区间自动启停以及调节风扇转速等功能。该设计具有功耗低,实用性强等特点。
关键词: STC89C51;智能控制;温度控制;人体感应
中图分类号: TP368.1 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.12.032
本文著录格式:梁娟. 基于单片机的智能温控风扇系统[J]. 软件,2019,40(12):146149
An Intelligent Temperature Control Fan System Based on the Microcontroller
LIANG Juan
(East fujian agriculture and forestry university college of computer science Fuzhou 350715)
【Abstract】: This designs an intelligent temperature control fan system which is controlled by STC89C51 single-chip microcomputer, DS18B20 temperature sensor, human infrared sensor module and digital tube. This system through pulse width modulation, the functions of automatic starting and stopping of fan system according to the set temperature range and adjusting speed are realized. The design has the characteristics of low power consumption and strong practicability.
【Key words】: STC89C51; Intelligent control; Temperature control; Human induction
0 引言
现代生活中,电子技术的发展日新月异,因各种电子设备在工作时都会产生热量,从而影响到电子机械的生产以及人们的日常生活,所以单片机的温度控制等功能就显得尤其重要。目前,基于单片机控制的系统种类繁多,在单片机的使用过程中,为达到精准控制判断的效果,需要对温度实时采样的测量功能进行不断改善。
本文设计的温控风扇系统,主要采用型号为STC89C51的单片机作为控制器。在温度采集模块,选用了型号为DS18B20的集成温度传感器,并使用LED八段数码管显示温度和风扇的档位。首先将温度传感器采集的环境温度发送给单片机系统,其次采用人体红外传感器探测环境周围是否有人活动,从而实现风扇电机的自动启动或停止,并且风扇电机的速度可以根据单片机所确定的温度区间而自动
改变风速[1]。该设计主要是根据环境温度在不同的温度区间时,单片机输出不同的PWM脉宽的方式来控制風扇电机的转速,从而实现了智能温控风扇的设计,为现代社会人们的生活和生产带来了更多便利,符合当代节能减排的社会要求[2]。
1 系统整体设计方案
该系统在对环境温度的测量和采集方面,选用型号DS18B20的集成温度传感器,能够以数字信号的格式输出给单片机处理。温度和风扇档位用LED八段数码管进行显示,并通过PWM速度调节,当温度低于设定温度的下限时,电机停止工作;当温度在上限和下限之间时,电动机低速运转;当温度高于上限时,电机全速运转。并在预设温度范围的前提下,添加HC-SR501人体红外传感器模块判断周围是否有人在活动,自动实现电路的通断。系统的结构框图如图1所示。
图1 系统框图
Fig.1 The system block diagram
2 系统硬件设计
该系统主要包括单片机核心控制模块、温度传感模块、人体感应模块、独立按键模块、显示模块等几个部分。
2.1 单片机最小系统
电源、晶振电路和复位电路是单片机的最小系统。单片机最小系统图如图2所示。
图2 系统复位与晶振电路
Fig.2 System reset and crystal oscillator circuit
本设计所选用的AT89C51单片机需要5V的供电系统,可以使用USB口输出的5V直流直接供电。供电电路在40引脚和20引脚位置上。
XTAL1和XTAL2用于连接石英晶体和微调电容[3]。电容器C1为10 μF,C2和C3为30 pF,电阻器R6为10 k,晶体振荡器为12 MHz。当按下按钮开关S1时,将重置系统。
2.2 温度采集电路
温度测量功能是通过DS18B20数字温度传感器内部计数时钟实现的,温度寄存器中16位二进制形式的值就是被测的温度值。通过主机发送存储器读命令先读取低位,再读取高位。由于温度振荡器的抛物线特性的影响,其内用斜率累加器进行补偿[4]。在本系统中将DS18B20与单片机的P3.5口进行连接实现温度的采集。其与单片机的连接如图3所示。
图3 温度采集电路
Fig.3 Temperature acquisition circuit
2.3 温度设置按键电路
本系统设有3个独立按键:S1、S2和S3,一端连接SCM的P1.0、P1.1、P1.2,另一端引脚接地,在按键按下时,产生低电平,使P1口作出反应,完成温度的设定,等系统上电后,以查询的方式确定各按键状态,进行设置。其接线图如图4所示。
图4 温度设置按键电路
Fig.4 Temperature setting key circuit
2.4 数码管显示电路
本系统温度显示模块选用了共阴极4位数码管,其中LED显示的第一位实现了设定温度“H”“L”以及当前风扇档位“0”“1”“2”的显示;LED显示的第二位固定显示“—”;LED显示的第三第四位,实现了设定温度与实时温度的显示[5]。在 设计时,为使单片机的P0口能够输出高低电平, P0口需接一个1K的上拉电阻。数码管的位选引 脚为S1~S4,它们与单片机的P2.1~P2.4相连接,只要单片机引脚输出低电平,就能选中与引脚对应的数码管位。显示电路与单片机引脚的连接图如图5所示。
图5 数码管显示电路
Fig.5 Display circuit of LED
2.5 风扇电机驱动与调速电路
本系统中风扇电机的速度是根据单片机输出的PWM脉冲控制实现的[6]。按键控制设置温度范围,由单片机通过P2.7口输出的PWM脉冲控制中速、高速两档转速,从而实现电机转速与启停的自动控制。风扇电机的一端接PNP三极管集电极,另一端接地。电机驱动及调速电路图如图6所示。
图6 风扇电机驱动与调速电路
Fig.6 Fan motor drive and speed control circuit
2.6 人体红外感应电路
在本系统中,人体红外感应模块OUT脚接单片机P3.5引脚,风扇的启动和停止由其高低电平输出控制[7]。采用重复触发方式,从人体出现并保持活动,到离开前期间,感应模块一直输出高电平,直到人离开后才延时将高电平变为低电平[8]。人体红外感应电路如图7所示。
3 系统软件设计
主程序需要实现的函数功能有系统初始化、各子模块初始化、温度读取及温度显示功能,按键扫描功能,温度处理判断功能和风扇电机控制功能。
本程序的流程图如图8所示。
图7 人体红外感应电路
Fig.7 Infrared induction circuit of human body
图8 主程序流程图
Fig.8 The main program flow chart
4 系统调试及结果分析
本系统采用C语言进行编写,在KeiluVision5环境下对程序进行编译,调试。KeilC51是美国KeilSoftware公司开发的51系列兼容单片机C语言的软件开发系统,它拥有丰富的库函数,提供了强大的集成开发调试工具,可以大大提高程序编辑调试的效率,高级语言的优势在大型软件的开发中尤为突出[9]。
仿真工具采用Proteus ISIS。Proteus有4个功能模块:智能原理图设计、完善的电路仿真功能、实用的PCB设计平台以及独特的单片机协同仿真功能。它不仅能实现各种类型电路(模电、数电、模数混合)的设计与仿真,而且能为SCM应用系统提供方便的软、硬件设计和系统操作的虚拟仿真[10]。
连接好原理图后,将编译好的程序加载进去。通过设置最低温度20℃,最高温度30℃,最后根据系统所要实现的功能进行分步仿真。
将温度传感器的温度调节到19℃,单击开始按钮,触发人体感应按钮,系统开始模拟,可观察到风扇并未转动,如图9所示。
图9 温度为19℃时仿真效果图
Fig.9 Simulation effect diagram at 19℃
当温度传感器的温度调节到25℃时,单击开始按钮,触发人体感应按钮,系统开始模拟,待一段时间稳定后,观察到风扇在慢速轉动,如图10所示。
图10 温度为25℃时仿真效果图
Fig.10 Simulation effect diagram at 25℃
当温度传感器的温度设置为32℃时,单击开始按钮,触发人体感应按钮,系统开始模拟,观察到此时风扇全速转动,如图11所示。
图11 温度为32℃时仿真效果图
Fig.11 Simulation effect diagram at 32℃
在仿真环境中,风扇转速随温度的增大而加快。本设计设置了3个工作温度区间,当环境温度<下限温度时,风扇未启动;当下限温度<环境温度<上限温度时,风扇慢速转动;当环境温度>上限温度时,风扇快速转动。
5 结论
本系统的控制核心为STC89C51单片机,DS18B20集成数字温度传感器用于监测环境温度,并根据环境温度的变化实现风扇的不同转速。通过LED数码管连续显示设定数据和系统实时状态数据,实现了基于单片机的智能温控风扇的设计。
本系统可以扩展到各种系统的电机控制,可实现不同的电机速度调节。在生产和生活中,该系统既可用于日常的风扇控制,为生活带来便利,也可以用于工业生产中,从而实现智能化自动控制。总之,该系统的设计和研究对社会生产和生活可提供便利。
参考文献
[1]赵静. 基于单片机的温度控制系统的研究[J]. 科学与财富, 2017(17): 7-11.
[2]李学龙. 使用单片机控制的智能遥控电风扇控制器[J]. 电子电路制作, 2003, 9: 13-15.
[3]陈洁鉴, 吴建文. 基于单片机的温度监控系统[J]. 电子元器件与信息技术, 2019(2): 25-30.
[4]许姗主. 传感器技术及应用[M]. 北京: 清华大学出版社, 2017: 43-52.
[5]胡全. 51单片机的数码管动态显示技术[J]. 信息技术, 2009, 13: 25-26.
[6]蓝厚荣. 单片机的PWM控制技术[J]. 工业控制计算机, 2010, 23(3): 97-98.
[7]梁烁, 刘文怡, 历智强, 等. 基于热释电探测器的人体红外感应单元设计[J]. 仪表技术与传感器, 2019(4): 29-32.
[8]李萌. 智能楼道照明节电控制系统的设计[J]. 电子制作, 2014(10): 49-50.
[9]薛红, 李宇宙, 倪雪. 红外解码液晶显示设计的Proteus仿真[J]. 电子世界, 2012(11): 88-90.
[10]刘勇, 李海. 基于Proteus的电子基础课程实践教学模式改革[J]. 赤峰学院学报(自然科学版), 2013(02): 247-248.