基于单片机的智能风扇控制系统设计.docx
- 文档编号:1949924
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:37
- 大小:2.57MB
基于单片机的智能风扇控制系统设计.docx
《基于单片机的智能风扇控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能风扇控制系统设计.docx(37页珍藏版)》请在冰点文库上搜索。
基于单片机的智能风扇控制系统设计
由于当今信息技术的高速发展,温度的测量与控制系统在工业和农业以及人们的日常活动中充当着一个日趋重要的角色,它对我们的日常生活具有诸多的影响,因此温度的采集以及其控制系统的开发与研究有十分重要的意义。
所以温度控制现在的社会中的生产制造对风扇的运用以及人们的生活和活动中都有应用和涉及,比如在大量的工业生产制造中生产机械的散热所需要用到风扇、又例如我们日常用的笔记本电脑上的CPU风扇、家庭日常生活中用的风扇等等。
伴随着我们的生活与活动中对温度需要精确控制的要求不断的增加,风扇的智能控制的应用也越发广泛,因此一件可以通过自身系统智能的对温度变化做出相应控制的智能风扇控制系统越来越成为发展的需要。
因此从此目的出发,我该篇论文介绍的主要是一类基于AT89C51单片机基础上的风扇根据温度智能调控速度的设计,本设计项目以AT89C51单片机为核心点,运用到能及时并且精确的采集环境温度的温度传感器电路,同时采用了双向晶闸管对电动机加以无级调速,通过将风扇的控制中加以智能控制技术,利用周围生活或者生产的环境中的温度对风扇进行温度控制。
并且可以通过收集到的外部温度,通过达林顿反向驱动装置来驱动风扇电机转动。
利用检测到的外界温度与人们一开始系统中设定温度来对风扇电机的启动和停止进行智能化得控制,同时能够根据环境温度的改变智能的改变风扇的转速,以实现对温度的控制要求。
同时我们还运用到LED数码管对检测到的温度与设定的温度进行显示,更有利于度温度控制的掌控,以实现对环境温度的智能控制,并做出相应的措施来控制温度变化。
-I-
目 录
1绪论 1
1.1研究背景 1
1.2国内外研究现状 1
1.3研究目的与意义 1
1.4本章小结 2
2系统总体设计 2
2.1设计要求 2
2.2系统方案规划 2
2.2.1硬件设计 3
2.2.2软件设计 3
2.3本章小结 4
3系统硬件设计 4
3.1系统器件简介 4
3.1.1DS18B20单线数字温度传感器 4
3.1.2达林顿电路 4
3.1.3AT89C52单片机概况 5
3.1.4LED数码管简介 6
3.2各部分电路设计 6
3.2.1开关复位与晶振电路 6
3.2.2独立键盘控制原理 7
3.2.3数码管显示电路 7
3.2.4温度采集电路 8
3.2.5风扇电机驱动和与之相应的调速电路 9
3.3本章小结 9
4系统软件设计 9
4.1程序设置 9
4.2温度传感器模块 10
4.3电机调速与控制子模块 12
5系统软件调试 13
-II-
5.1用KEILC51编写程序 13
5.2用PROTEUS进行仿真 14
4.5.1PROTEUS软件的使用 14
4.5.1本实物在PROTEUS上的仿真 15
5.3本章小结 20
6系统硬件调试 20
6.1实物的整体结构 20
6.2实物接入电源调试 20
6.3实物设定预设值调试 21
6.4实物运行工作调试 22
6.5本章小结 23
结论与展望 23
附录A:
系统原理图 26
附录B:
系统PCB图 27
附录C:
系统源程序 28
-III-
1绪论
1.1研究背景状况
在现如今的社会生活中,风扇的应用是十分广泛的,它在日常的生活和生产中有着十分重要的作用,例如在工业生产制造中的生产机械里的散热系统中对风扇的运用、又比如每个人的笔记本电脑上的散热风扇、家庭日常生活中用来降温的电风扇等。
而在温度控制方面的不断进步和控制的精准,所以我们可以将已经反向指向通过温度控制以达到更精准的控制技术来降低风扇工作刚才中的噪音和相应的无用功带来的电力资源的浪费,温度控制的风扇随着研究的深入以及科研究所的进步,这项技术的优越性将会被展示出来,可以适用在诸多场合和不同的环境中,给人们带来便捷。
在现在的研究成果中,温控风扇的研究水平研究达到了很高的程度了,风扇已经可以实现根据自身通过周围环境温度的改变进而智能的进行无级调速,这是该系统设计要实现的一个重要要求,简单来说就是在外界温度升到一风扇系统设定的最高值是它将自动启动风扇运转,同样的当外界温度降到相应的设定最低值时则自动停止风扇的转动,以此来实现通过温度对风扇智能化控制。
1.2国内外研究现状
目前风扇的发展趋势是节能、功能多样化,在外观和功能上追求个性化,像电脑控制、自然风、睡眠风、负离子功能这些本属于空调的功能,也被众多的风扇所使用,甚至还有增加照明、驱蚊等更多实用的功能。
温控风扇的研究使用很早就开始了,工业控制中最为普遍,笔记本中也使用的是温控小风扇。
目前的温控风扇研究最多的以单片机或基于FPGA/CPLD为控制核心,由于其运行速度快、性能稳定、数字化程度高、精度高、适应性强等特点,对电器的自动控制具有重要的意义和价值,除此以外还添加了一些其他的技术功能,使得风扇更加人性化,对风扇行业的发展大有裨益。
1.3研究目的与意义
近几年,伴随人们日常的生活以及科技水平的提高,家庭使用的电器化产品无论是在功能、样式等方面不断完善,并且都向着安全、实用、节能、健康、多功能等方面进行发展和研究。
同时电风扇因为其低廉的价格、低耗的用电量,以及其安装和使用中便利,所以中国农村的大部分地区以及一些校园里的教师办公室和宿舍中依旧将电风扇作为降温的工具。
但是现如今市场上的电风扇大多数采用的都是全硬件电路的风扇,其电路十分复杂而起且功能非常单一。
并且因为现在市场上的电风扇,大部分都是手动控制机械旋钮来调节转速和定时,经常会发生没有人时风扇依然工作运转,温度已经很低了仍然在工作。
因此,我们目的在于开发,设计一个新型的具有人体红外和温度传感系统来检测室内有无
5
人员以及室内温度。
然后通过程序,与传感器来自动控制电风扇工作与停止,以及工作时
转速的大小。
从而达到我们所预期的智能控制和节能环保的目的。
1.4本章小结
由于单片机的便捷,智能,高效,操作简便,使得其更容易被人们接受使用,所以就有许多以单片机作为核心控制来实现温度控制的系统也随之产生,例如通过单片机为核心实现的通过温度控制电机的系统。
该系统控制电机的自动启动和停止是通过对外界温度改变感应到的信号来实现控制的,并且可以使得风扇的转速根据环境温度的变化而进行相应的调整,这样就可以实现通过温度对风扇的智能化控制。
该研究和开发可以为人们的生活以及生产带来了更多便捷之处,使得我们不仅可以提高人们的生活品质、生产效益的同时还能为节能减排保护环境做出贡献。
2系统总体设计
2.1设计要求
本实物的设计采用了AT89C52单片机作为智能风扇的控制器,利用DS18B20温度传感器作为该设计的温度采集元件,同时利用达林顿反向驱动器ULN2803来驱使风扇电机的转动。
同时我们检测到的外界温度以及根据我们所需要而设定的温度都可以直接显示在数码管上。
系统通过检测到外界温度与系统预设温度的差别,来达到对电机的启动停止以及转速大小的智能控制。
2.2系统方案规划
本实物的总体方案和规划是:
通过DS18B20温度传感器对环境温度进行检测并且将相应的温度信息转化为数字温度信号传输给AT89C52单片机进行温度间差别的比对,同时也将外界温度和设定温度显示在数码管上。
其中设定的温度数值大小是以整数形式显示出来的,实时外界温度的温度大小显示上精确到一位小数。
并且该设计产品通过PWM脉宽调制方式来实现对直流风扇电机的转速加以控制。
系统结构框图如下:
温度显示
DS18B20
AT89C52
达林顿驱动电
路
直流电机
复位电路
晶振电路
图2.1系统构成框图
2.2.1硬件设计
本设计实物需要使用到的器件有AT89C52单片机、DS18B20温度传感器、LED共阴数码管、达林顿反向驱动器、直流电机。
其他小的元器件有:
电源,晶振,按键,拨码开关,电阻和电容等。
2.2.2软件设计
软件的程序设计主要包涵:
主程序设计,DS18B20的初始化函数和温度转换函数以及温度读取函数,还有键盘扫描的函数,数码管显示数据函数和温度处理函数以及对电机控制的函数。
DS18B20初始化函数的作用是对温度传感器做出初始化的实现;DS18B20温度转换函数是实现对环境温度数据的实时采集;温度读取函数是主机对温度传感器传输的数据的读取以及换算,键盘扫描函数则是实现对初值的加减设定;温度处理函数对检测到的实时温度进行分析处理解析,给电机转速的变化提供信息;风扇电机控制函数则是通过温度数值对电机转速和启停的进行控制。
2.3本章小结
本研究产品是要达到实现风扇直流电机的温度控制的要求,将风扇电机改造成能够根据环境温度的实时变化情况去实现启停及改变转速的自动控制,因此我们需要让这样的风扇达到一个较高的温度变化分辨率和稳定可靠的风扇换挡以及停机控制器件。
3系统硬件设计
3.1系统器件简介
3.1.1DS18B20数字温度传感器
我们该设计中用到的温度传感器是我们日常生活中经常使用的DS18B20温度传感器,该拥有体积小,器件成本低,抗干扰能力强,精度高,接线方便,封装成后可应用于多种场合等优势,因此被选作作为这次温控风扇的温度传感器,并且也十分适合运用到产品的设计中。
DS18B20主要特征有:
第一:
其适用的电压范围非常广泛,电压的范围在:
3.0~5.5V,并且在寄生电源方式下可由数据线供电。
第二:
其有着独特的接口方式,该温度传感器在与微处理器连接时只需要一条线即可完成微处理器与其的双向通讯。
第三:
它可以支持多点组网功能,因此可以实现多个温度传感器并联在唯一的三线上,实现组网多点测温。
第四:
它在使用中不需要其他外围元件,全部传感元件及转换电路集成在一个三极管的集成电路内。
第五:
其温度测量范围在-55℃~+125℃,在-10~+85℃时精度为±0.5℃可见范围非常广泛。
第六:
它可编程的分辨率为9~12位,相对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,因此可以实现温度的高精度测量。
第七:
它在9位分辨率时最久在93.75ms内就可以把相应的温度信号转换为数字信号,12位分辨率时最多在750ms内把温度值转换为数字信号,速度非常迅速。
第八:
测量结果直接输出数字温度信号,并且以"一线总线"串行传送给CPU控制中心,同时它还可以传递CRC校验码,使其具有很强的抗干扰和纠错能力。
第九:
电源极性接反时,芯片并不会因为发热而烧毁,
但不能正常工作,这样也避免了因为操作不当造成的器件损坏。
3.1.2达林顿电路
本设计实物是以单片机来实现对直流电机进行控制,因为单片机的I/O口上拉电流很微弱,灌电流也不过5~10mA,远不能胜任驱动风扇的功能故需要加驱动电路,为直流电机提供足够大的驱动电流。
传统的功率输出方式是使用继电器和晶体管。
在本系统驱动电路中,因为输出需要通过快速通断电来改变驱动功率,而继电器的反应速度相比电信号的变化显示过慢。
所以选用达林顿驱动器来驱动风扇直流电机。
3.1.3AT89C52单片机概况
AT89S52单片机是一种低电压高性能的8位CMOS微型控制器,拥有8K字节可在线编程的flash存储区。
它运用Atmel高密度非易失性的存储技术,可以兼容80C51的指令集和管脚。
该单片机上的flash支持ISP并且传统的flash编程器也可以对其进行重新编写程序。
通用的8位CPU以及可在线编程,使得其可以为我们提供了一个灵活、高效的嵌入式应用解决方案。
该类单片机主要特征:
第一:
兼容MCS-51指令,使其使用面更广,兼容性更高。
第二:
8K字节支持在线编程的Flash储存区,可以进行多次擦写,使其编程起来更为便捷。
第三:
工作电压在4.0V-5.5V,范围还是相当大。
第四:
256*8bit的片内RAM,空间比较充裕。
第五:
它有三个16Bit计数器和定时器。
第六:
该单片机中有8个中断源。
第七:
它拥有全双工UART串行通道。
第八:
该单片机可以在低电压模式和电源睡眠模式两种模式下工作。
第九:
其在电源睡眠模式下时,中断触发将返回原状态。
第十:
其拥有两个数据指针DP。
第十一:
该单片机可以采用FastProgrammingTime快速编程。
第十二:
其拥有着特有的电源关闭标志,并且该单片机是绿色包装,无铅和卤化物。
下图片为AT89C51封装实物图:
图3.1AT89C51单片机封装实物图
3.1.4LED数码管简介
我的这个设计实物选取的LED数码管是一个7段两位带小数点10引脚的LED数码管,
并且其引脚定义每一个笔划都是相对应一个字母并且表示DP是小数点。
它可以通过分时以达到轮流控制每个LED数码管的COM端,就可以使各个数码管依次轮流受控显示,这样就是动态驱动原理。
每个数码管的点亮时间为1ms~2ms,但是因为人的视觉暂留现象以及发光二极体具有的余辉效应,虽然实际上每位数码管并不是同时亮,但是只要其扫描的速度足够快,给人的现象就是一组稳定的显示数据,而且并不会有闪烁感,如此看来动态显示的效果和静态显示是相同的,这样就能够节省很多的I/O口,并且这样数码管的功耗更
低。
下表是数码管的选码表:
表2.1.17段LED的段选码表
显示字符
共阴极段码
共阳极段码
显示字符
共阴极段码
共阳极段码
0
3fH
C0H
8
7fH
80H
1
06H
F9H
9
6fH
90H
2
5bH
A4H
A
77H
88H
3
4fH
B0H
B
7fH
83H
4
66H
99H
C
39H
C6H
5
6dH
92H
D
3fH
A1H
6
7dH
82H
E
79H
86H
7
07H
F8H
F
71H
8EH
3.2各部分电路设计
3.2.1开关复位与晶振电路
在一个完整的单片机控制系统中我们必须要设计出相应的开关复位和晶振电路。
因为单片机自身需要复位,同时外部扩展的I/O接口电路也需要相应的复位开关,因此需要为该控制系统设计出一个同时拥有上电和复位按钮的系统同步复位电路。
在单片机上有
XTAL1和XTAL2主要用于连接单片机内部的OSC定时反馈回路的。
该实物中的复位开关和晶振电路如下图所示:
34
S1
+12 VR1 7805
VCC
J1
1
3
2
Vin Vout
GND
PWR2.5
SW-DPDT
Key4
1 4
2 3
4*4
C1 C2
470uF/25V 470uF/25V
C310uF
VCC
R91K
DS
图2.2.1 系统复位与晶振电路
3.2.2独立键盘的控制原理
键盘中有2个独立按键,其中一端是和单片机的P1.3和P1.4两个端口相连,另外一个端口接地。
在将系统通上电源后,独立键盘开始扫描子程序,并以查询为方式去确认各按键,并且完成对初值温度的设定。
其中按键与单片机相连的为加按键,每按一次就是对初始设定值进行一次加一,接地的按键为减按键,每按一次就是对初始设定值进行一减
一。
其接线图如下:
设
Ke y1
定
1
2
4
3
4*4
Ke y2
1
2
4
3
4*4
Ke y3
1
2
4
3
4*4
加减
3.2.3数码管显示电路
图2.2.2 独立键盘连接电路
本实物设计中的数码显示器主要用于对温度传感器检测到的实时温度进行检测和显
示的作用,它的精确程度达到0.1摄氏度,并且数码管的温度显示范围从0到99摄氏度;
数码管的后2位是用来显示系统设定出的初始温度值,并且其显示的温度值只能是整数,
范围也不能超过0到99摄氏度。
21 1 01
9 8
7
LED1LG5641BH
1 a
f 2 3 b
e d
bp
c g
4
1 2 3 4 5 6
Q18550
Q28550
Q38550
Q48550
220*8
VCC
R101K
R111K
R121K
R131K
图2.2.3 数码管显示电路
3.2.4温度采集电路
VCC
U2
VccDSGND
DS18B20
3
2
1
DS
图2.2.4 温度采集电路
DS18B20数字温度传感器的工作原理主要是通过它内部计数时钟周期来的效果,用来完成对温度测量功能。
它一方面可以将检测到的温度信号转化成数字信号传到单片机中与初始的设定值进行比对和处理,另一方面则是将检测到的温度信号转化成数字信号传递到数码显示管处,对实时温度进行准确的显示。
以下是其与单片机的图:
3.2.5风扇电机驱动和与之相应的调速电路
该实物设计中里首先从单片机的I/O口输出一个PWM的脉冲信号。
再利用达林顿反向驱动装置来带动直流风扇电机的转动同时实现对风扇转速的控制和调节。
利用键盘去设置温度值,再通过软件去编写单片机相应的控制程序,然后通过单片机输出的PWM脉冲信号,再通过三极管来驱动电机电路,以用来实现电机的启动停止和转速的控制。
当温度升高或者下降电机都会通过相应的信号和设定的等级比对做出转速提高或是下降的反应。
如果当环境的温度低于相应的设定温度时,电机就停止转动,但当温度又达到预设温度是,电机又会重新开始工作。
下图是电机驱动和调速电路的电路连接图:
VCC
Q58550
R141K
OUT
+12
Q78050
B1
+ A -
微型风扇
D1
Diode1N4007
达林顿驱动电路
图2.2.5 风扇电机驱动与调速电路
3.3本章小结
系统的硬件设计主要是单片机为处理中心,温度传感器为检测中心实现对外部环境温度的实时检测并传递到相应控制部门,数码显示管做为显示中心主要用于对测量得到的外界实时温度以及系统本身设定的初始温度进行直观的显示,最后再通过这些作用到相应的驱动电路和调速电路中去,则即可实现风扇的智能控制的效果。
4系统软件设计
4.1程序设置
该实物的软件方面的设计主要含有以下几个方面:
单片机上的主程序的编辑,温度传感器上需要设计的初始化函数,温度转换函数,其中温度传感器的初始化函数对其进行初始化的作用,温度转换函数用来实现将检测到的温度信号转换成数字信号的作用。
键盘中的键盘扫描函数是用于对初始值的加减的设定。
温度处理函数主要是用于单片机核心对采
主程序开始
调用键盘扫描
函数
程序初始化
调用数码管显
示函数
调用DS18B20初
始化函数
调用温度处理
函数
调用DS18B20温
度转换函数
调用风扇电机
控制函数
调用温度读取
函数
结束
集到的温度信号进行分析处理,以用来对电机转速进行控制。
风扇电机的控制函数则是通过处理过的温度数值对电机的启停和调速进行控制。
主程序流程图如下图所示:
4.2温度传感器模块
4.1.1主程序流程图
如下图4.2所示,初始化,ROM的操作指令以及存储器的操作指令组成了DS18B20温度传感器的温度转换工作,通过这三步来实现温度传感器的温度检测,传递等一系列功能。
开始
系统初始化
进行测温
设置参数
初始化DS18B20
启动DS18B20测
温
异常
内部判断
调用相应的控
制程序
调用相应的键
值处理程序
正常
调用读子程序
调用写子程序
输出显示
结束
图4.2温度传感器模块程序流程图
DS18B20芯片功能命令表如表2所示。
命令
说明
协议
READROMMATCHROMSKIPROMSEARCHROMALARMSEARCH
WRITESCRATCHPADREADSCRATCHPADCOPYSCRATCHPADCONVERTT
RECALLE
READPOWERSUPPLY
读取激光ROM64位匹配ROM
跳过ROM搜索ROM告警搜索
把字节写入暂存器地址2和3
读取暂存器和CRC字节
把暂存器内容拷贝到非易失性存储器中开始温度转换
把非易性存储器中的值召回存储器
读电源供电方式:
0为寄生电源,1为外电源
33H
55HCCHFOHECH4EHBEH48H
44H
B8HB4H
表2DS18B20功能命令表
4.3电机调速与控制子模块
该单片机控制系统中调速的方式采用的是双向可控硅过零触发方式来实现对速度的调控,因为该调控方式中分级明确,控制精度高,所以适合用于智能风扇控制系统中,下图是电机控制模块中断响应流程图如图4.3所示。
EX0中断
温度大于等于
下限值并且小于上限值
控制可控硅截
止
设置T0参数
启动定时
中断返回
T0中断
控制可控硅导
通
停止T0定时
中断返回
图4.3电机控制模块中断响应流程图
5.软件调试
5.1用KeilC51编写程序
KeilC51是一款主要用于51系列的单片机C语言的软件开发系统。
相比较单片机的汇编语言来说的话,C语言有其特有的便捷之处更适合51系列单片机的系统编写,因为它在语句简单便捷的同时,它的编写模块的可移植性更强了,所以跟容易被
大众接受和学习,使用起来效率更高。
目前来说 Keil是使用比较多的51系列单片机
的开发软件。
下图是KeilC51的使用界面,如图4.2.1。
5.2用Proteus软件进行仿真工作
5.2.1Proteus软件的使用
如下图是Proteus软件打开使用时的主界面,如图4.3.1。
图4.3.1Proteus使用主界面
5.2.2本实物在Proteus上的仿真
第一先启动Proteus软件然后创建一个新工程,然后通过原理图导出相应的元器件,再通过需要的要求对各原件的属性进行修改然后再按照原理图的连接方式再相应把各原件连接起来。
在根据原理图连接好再把编程好的程序加载到其中去。
最后根据系统要实现的功能一步步进行仿真。
第一:
将温度传感器上的检测到的温度设为26.4摄氏度,然后再用键盘将系统预设的
温度调节为22摄氏度。
随后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 风扇 控制系统 设计