风扇模拟器实验设计论文修正版.docx
- 文档编号:23224431
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:36
- 大小:605.82KB
风扇模拟器实验设计论文修正版.docx
《风扇模拟器实验设计论文修正版.docx》由会员分享,可在线阅读,更多相关《风扇模拟器实验设计论文修正版.docx(36页珍藏版)》请在冰豆网上搜索。
风扇模拟器实验设计论文修正版
攀枝花学院综合设计(论文)
风扇控制器模拟
学生姓名:
杜炳海
学生学号:
200910501006
院(系):
电气信息工程学院
年级专业:
2009级电气工程与自动化1班
指导教师:
刘衍平
二〇一二年五月
摘要
温控风扇在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产中大型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能CPU风扇等。
本文设计了基于单片机的温控风扇系统,采用单片机作为控制器,利用温度传感器DS18B20作为温度采集元件,并根据采集到的温度,通过一个达林顿反向驱动器ULN2803驱动风扇电机。
根据检测到的温度与系统设定的温度的比较实现风扇电机的自动启动和停止,并能根据温度的变化而自动改变风扇电机的转速,同时用LED八段数码管显示检测到的温度与设定的温度。
关键词单片机、DS18B20、温控、风扇
ABSTRACT
Athermostaticallycontrolledfaninproductionandpeople'sdailylifeiswidelyusedinmodernsociety,suchasthefanintheindustrialproductionoflarge-scalemechanicalcoolingsystemandnowitiswidelyusedonlaptopcomputersintelligentCPUfanandsoon.Designedamicrocontroller-basedtemperaturecontrolledfansystem,theuseofSCMasthecontroller,temperaturesensorDS18B20temperatureacquisitioncomponents,andtemperaturecollectedbythereverseofaDarlingtondrivetheULN2803drivefanmotor.Accordingtothetemperaturedetectedbythetemperatureandsystemsettingstoachievetheautomaticstartandstopofthefanmotor,androottemperaturechangesautomaticallychangethefanmotorspeed,LEDeightoutdigitaldisplaytemperatureandthesetofdetectedthetemperature。
KeywordsSinglechipmicrocomputer,DS18B20,thermostatically,fan
目录
摘要
ABSTRACT
第一章整体方案设计2
1.1前言2
1.2系统整体设计2
1.3方案论证3
1.3.1温度传感器的选择3
1.3.2控制核心的选择4
1.3.3温度显示器件的选择4
1.3.4调速方式的选择5
第二章软件设计6
2.1程序设置6
2.2用KeilC51编写程序7
2.3用Proteus进行仿真8
2.3.1Proteus简介8
2.3.2本设计基于Proteus的仿真8
2.3.3本实验基于proteldxp的pcb版制作13
第三章系统调试14
3.1软件调试14
3.1.1按键显示部分的调试14
3.1.2传感器DS18B20温度采集部分调试14
3.1.3电动机调速电路部分调试14
3.2系统功能15
3.2.1系统实现的功能15
3.2.2系统功能分析15
结论16
参考文献17
致 谢18
附录1:
程序代码19
第一章整体方案设计
1.1前言
在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热风扇、工业生产中大型机械中的散热风扇以及现在笔记本电脑上广泛使用的智能CPU风扇等。
而随着温度控制技术的发展,为了降低风扇运转时的噪音以及节省能源等,温控风扇越来越受到重视并被广泛的应用。
在现阶段,温控风扇的设计已经有了一定的成效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制。
随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。
它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。
它的设计为现代社会人们的生活以及生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。
本文设计了由ATMEL公司的8052系列单片机AT89C52作为控制器,采用DALLAS公司的温度传感器DS18B20作为温度采集元件,并通过一个达林顿反向驱动器ULN2803驱动风扇电机的转动。
同时使系统检测到得环境温度以及系统预设的温度动态的显示在LED数码管上。
根据系统检测到得环境温度与系统预设温度的比较,实现风扇电机的自动启停以及转速的自动调节。
1.2系统整体设计
本设计的整体思路是:
利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理,在LED数码管上显示当前环境温度值以及预设温度值。
其中预设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。
同时采用PWM脉宽调制方式来改变直流风扇电机的转速。
并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。
系统结构框图如下:
图1.1系统构成框图
1.3方案论证
本设计要实现风扇直流电机的温度控制,使风扇电机能根据环境温度的变化自动启停及改变转速,需要比较高的温度变化分辨率以及稳定可靠的换挡停机控制部件[1]。
1.3.1温度传感器的选择
在本设计中,温度传感器的选择有以下两种方案:
方案一:
采用热敏电阻作为检测温度的核心元件,并通过运算放大器放大,由于热敏电阻会随温度变化而变化,进而产生输出电压变化的微弱电压变化信号,再经模数转换芯片ADC0809将微弱电压变化信号转化为数字信号输入单片机处理。
方案二:
采用数字式的集成温度传感器DS18B20作为温度检测的核心元件,由其检测并直接输出数字温度信号给单片机进行处理。
对方案一,采用热敏电阻作为温度检测元件,有价格便宜,元件易购的优点,但热敏电阻对温度的细微变化不太敏感,在信号采集、放大以及转换的过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其自身电阻对温度的变化存在较大误差,虽然可以通过一定电路来修正,但这不仅将使电路变得更加复杂,而且在人体所处环境温度变化过程中难以检测到小的温度变化。
故该方案不适合本系统。
对于方案二,由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转化等电路的误差因数,温度误差变得很小,并且由于其检测温度的原理与热敏电阻检测的原理有着本质的不同,使得其温度分辨力极高。
温度值在器件内部转化成数字量直接输出,简化了系统程序设计,又由于该温度传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力强,因此该方案适用于本系统。
1.3.2控制核心的选择
在本设计中采用AT89C52单片机作为控制核心,通过软件编程的方法进行温度检测和判断,并在其I/O口输出控制信号。
AT89C52单片机工作电压低,性能高,片内含8k字节的只读程序存储器ROM和256字节的随机数据存储器RAM,它兼容标准的MCS-51指令系统,单片价格也不贵,适合本设计系统。
1.3.3温度显示器件的选择
方案一:
应用动态扫描的方式,采用LED共阴极数码管显示温度。
方案二:
采用LCD液晶显示屏显示温度。
对于方案一,该方案成本很低,显示温度明确醒目,即使在黑暗空间也能清楚看见,功耗极低,同时温度显示程序的编写也相对简单,因而这种显示方式得到了广泛应用。
但不足的地方是它采用动态扫描的显示方式,各个LED数码管是逐个点亮的,因此会产生闪烁,但由于人眼的视觉暂留时间为20MS,故当数码管扫描周期小于这个时间时人眼不会感觉到闪烁,因此只要描频率设置得当即可采用该方案。
对于方案二,液晶显示屏具有显示字符优美,其不仅能显示数字还能显示字符甚至图形,这是LED数码管无法比拟的。
但是液晶显示模块的元件价格昂贵,显示驱动程序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。
1.3.4调速方式的选择
方案一:
采用数模转换芯片DAC0832来控制,由单片机根据当前环境温度值输出相应数字量到DAC0832中,再由DAC0832产生相应模拟信号控制晶闸管的导通角,从而通过无级调速电路实现风扇电机转速的自动调节。
方案二:
采用单片机软件编程实现PWM(脉冲宽度调制)调速的方法。
PWM是英文PulseWidthModulation的缩写,它是按一定的规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调节方式,在PWM驱动控制的调节系统中,最常用的是矩形波PWM信号,在控制时需要调节PWM波得占空比。
占空比是指高电平持续时间在一个周期时间内的百分比。
在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为100%时,转速达到最大[2]。
用单片机I/O口输出PWM信号时,有如下三种方法:
(1)利用软件延时。
当高电平延时时间到时,对I/O口电平取反,使其变成低电平,然后再延时一定时间;当低电平延时时间到时,再对该I/O口电平取反,如此循环即可得到PWM信号。
在本设计中应用了此方法。
(2)利用定时器。
控制方法与
(1)相同,只是在该方法中利用单片机的定时器来定时进行高低电平的转变,而不是用软件延时。
应用此方法时编程相对复杂。
(3)利用单片机自带的PWM控制器。
在STC12系列单片机中自身带有PWM控制器,但本系统所用到得AT89系列单片机无此功能。
对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是D/A转换芯片的价格较高,与其温控状态下无级调速功能相比性价比不高。
对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而言,采用PWM用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低成本,能够充分发挥单片机的功能,对于简单速度控制系统的实现提供了一种有效的途径。
综合考虑选用方案二。
第二章软件设计
2.1程序设置
程序设计部分主要包括主程序、DS18B20初始化函数、DS18B20温度转换函数、温度读取函数、键盘扫描函数、数码管显示函数、温度处理函数以及风扇电机控制函数。
DS18B20初始化函数完成对DS18B20的初始化;DS18B20温度转换函数完成对环境温度的实时采集;温度读取函数完成主机对温度传感器数据的读取及数据换算,键盘扫描函数则根据需要完成初值的加减设定;温度处理函数对采集到的温度进行分析出理,为电机转速的变化提供条件;风扇电机控制函数则根据温度的数值完成对电机转速及启停的控制。
主程序流程图如图3.1.1:
图2.1.1主程序流程图
2.2用KeilC51编写程序
KeilC51是美国KeilSoftware公司开发的51系列兼容单片机C语言的软件开发系统,与单片机汇编语言相比,C语言在不仅语句简单灵活,而且编写的函数模块可移植性强[9],因而易学易用,效率高。
随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前使用较多的MCS-51系列单片机开发的软件。
KeilC51软件不仅提供了丰富的库函数,而且它强大的集成开发调试工具为程序编辑调试带来便利,在开发大型软件时更能体现高级语言的优势。
在使用时要先建立一个工程,然后添加文件并编写程序,编写好后再编辑调试。
KeilC51的使用界面如图2.2.1。
图2.2.1KeilC51的使用界面
2.3用Proteus进行仿真
2.3.1Proteus简介
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件。
Proteus软件有十多年的历史,在全球广泛使用,它不仅和其它EDA工具一样有原理布图、PCB自动或人工布线及电路仿真的功能,而且更重要的功能是,他的电路仿真是互动的,可以根据仿真实时观察到得现象验证设计的正确性及准确性并及时改变程序代码、原理图连接以及元件属性等。
它还能配合系统配置的虚拟仪器来显示和输出,如示波器、逻辑分析仪等[10],效果很好。
Proteus有4个功能模块:
智能原理图设计、完善的电路仿真功能、独特的单片机协同仿真功能以及实用的PCB设计平台。
其内部元件库含有丰富的元件,支持总线结构以及智能化的连线功能;支持主流CPU(如ARM、8051/52、AVR)及其通用外设模型的实时仿真等,为单片机的开发应用等带来极大的便利。
软件使用的主界面如图3.3.1。
图2.3.1Proteus使用界面
2.3.2本设计基于Proteus的仿真
首先启动Proteus软件并建立一工程,然后根据原理图调出相应的原件,再根据要求改变各原件的属性并把各个原件按原理图连接起来。
在原理图绘制连接好后再把编译好的程序加载到其中[11]。
最后根据系统要实现的功能分步进行仿真[12]。
把温度传感器DS18B20温度设置为26.4摄氏度,用键盘S2调节系统预设的温度为22摄氏度。
点击开始按钮,系统开始仿真,待一段时间稳定后,观察到此时风扇直流电机的转速为+14.2r/s,如图2.3.2所示。
图2.3.2Proteus仿真效果图一
当把温度传感器DS18B20温度设置为28.4摄氏度,用键盘S2调节系统预设的温度为22摄氏度。
点击开始按钮,系统开始仿真,待一段时间稳定后,观察到此时直流风扇电机的转速为+23.3r/s,如图2.3.3所示。
图2.3.3Proteus仿真效果图二
当把温度传感器DS18B20温度设置为33.4摄氏度,用键盘S2调节系统预设的温度为22摄氏度。
点击开始按钮,系统开始仿真,待一段时间稳定后,观察到此时直流风扇电机的转速为+32.0r/s,如图2.3.4所示。
图2.3.4Proteus仿真效果图三
在上一步仿真的基础上(温度传感器DS18B20温度设置为33.4摄氏度,系统预设的温度为22摄氏度),用键盘S2调节系统预设温度至34摄氏度,此时可知系统预设温度大于温度传感器检测到的温度,观察到直流风扇电机的转速逐渐变慢,最后转速变为0,符合系统要实现的功能,如图2.3.5所示。
图2.3.5Proteus仿真效果图四
通过以上仿真可以看出,直流风扇电机在系统设定温度一定的情况下,其转速随着环境温度(温度传感器检测到的温度)的增加而增大。
当环境温度低于系统预设的温度时,风扇自动停止运转,实现了系统所设计的功能。
当然,在此没有实现风扇直流电机的无级调速,本系统实现的是电机在随环境温度变化的四个等级的速度变化,环境温度在一定小范围内变化风扇电机转速是不变的,只有超过了设定的某一界限时转速才会变化。
2.3.3本实验基于proteldxp的pcb版制作
首先启动protel新建一个工程,然后建立原理图文件并且给每个元件添加合适的封装,最后更新到pcb板。
在pcb视图下可以完成对rom的布局和布线操作。
因为实验室条件有限所以本次实验用单层布线,布线时候一定要注意和实际情况保持一致,尽量做到经济和可行原则。
当布线完成后可以制作电路板,这里不多说明。
Proteldxp2004下风扇原理图:
图2.3.6protel风扇原理图
Protel2004pcb文件图
图2.3.7protelpcb文件图
第三章系统调试
3.1软件调试
3.1.1按键显示部分的调试
起初根据设计编写的系统程序:
程序的键盘接口采用P1口,数码管显示采用P0口控制LED的断码,P2口控制LED的位码,从而实现键盘功能及数码管的显示。
经过编译没有出错,但在仿真调试时,数码管显示的只是乱码,没有正确的显示温度,按键功能也不灵,当按下键时,显示并不变化。
经过查找分析,发现键盘扫描程序没有没有按键消抖部分,按键在按下与松手时,都会有一定程度的抖动,从而可能使单片机做出错误的判断,导致按键条件预设温度时失灵,甚至根本不能工作。
因此必须在按键扫描程序中加入消抖部分,即在按键按下与松手时加入延时判断,以检测键盘是否真的按下或已完全松手。
数码管不能正确的显示,主要是因为所以数码管的段码都由P0口传送,而数码管显示又采用了动态扫描的方式,但在程序中却没有设置显示段码的暂存器,导致当P0口传送段码时发生混乱,不能正确识别段码。
应在系统中加入锁存器,或是在程序中设定存储段码的空间。
在键盘加入了消抖程序,数码管显示程序中加入了段码的存储空间后,数码管能够正常的显示,按键也能够工作,达到了较好的效果。
3.1.2传感器DS18B20温度采集部分调试
由于数字式集成温度传感器DS18B20的高度集成化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制电机的精度和稳定提供了可能。
软件设计采用P3.1口为数字温度输入口,但是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。
通过软件设计,实现了对环境温度的连续检测,由于硬件LED个数的限制,只显示了预设温度的整数部分。
在温度转换程序中,为了能够正确的检测并显示温度的小数位,程序中把检测的温度与10相乘后,再按一个三位的整数来处理。
如把24.5变为245来处理,这样为程序的编写带来了方便。
3.1.3电动机调速电路部分调试
在本设计中,采用了达林顿反向驱动器ULN2803驱动直流电机,其可驱动八个直流电机,本系统仅驱动一个。
软件设置了P3.1口输出不同的PWM波形,通过达林顿反向驱动器ULN2803驱动直流电机转动,通过软件中程序设定,根据不同温度输出不同的PWM波,从而得到不同的占空比控制风扇直流电机。
程序实现了P3.1口的PWM波形输出,当外界温度低于设置温度时,电机不转动或自动停止转动;当外界温度高于设置温度时,电机的转速升高或是自动开始转动,且外界温度与设置温度的差值越大,电机转速越高,即占空比增加。
在本系统中风扇电机的转速可实现四级调速。
通过温度传感器检测的温度与系统预设温度值的比较,实现转速变换。
当检测到的温度比预设的温度每增加5摄氏度时,风扇电机转速增加一级。
3.2系统功能
3.2.1系统实现的功能
本系统能够实现单片机系统检测环境温度的变化,然后根据环境温度变化来控制风扇直流电机输入占空比的变化,从而产生不同的转动速度,亦可根据键盘调节不同的设置温度,再由环境温度与设置温度的差值来控制电机。
当环境温度低于设置温度时,电机停止转动;当环境温度高于设置温度时,单片机对应输出口输出不同占空比的PWM信号,控制电机开始转动,并随着环境温度与设置温度的差值的增加电机的转速逐渐升高。
系统还能动态的显示当前温度和设置温度,并能通过键盘调节当前的设置温度。
3.2.2系统功能分析
系统总体上由五部分来组成,既按键与复位电路、数码管显示电路、温度检测电路、电机驱动电路。
首先考滤的是温度检测电路,该部分是整个系统的首要部分,首先要检测到环境温度,才能用单片机来判断温度的高低,然后通过单片机控制直流风扇电机的转速;其次是电机驱动电路,该部分需要使用外围电路将单片机输出的PWM信号转化为平均电压输出,根据不同的PWM波形得到不同的平均电压,从而控制电机的转速,电路的设计中采用了达林顿反向驱动器ULN2803,实现较好的控制效果;再次是数码管的动态显示电路,该部分的功能实现对环境温度和设置温度的显示,其中DS18B20采集环境温度,按键实现不同设置温度的调整,实现了对环境温度和设置温度的及时连续显示。
结论
本次设计的系统以单片机为控制核心,以温度传感器DS18B20检测环境温度,实现了根据环境温度变化调节不同的风扇电机转速,在一定范围能能实现转速的连续调节,LED数码管能连续稳定的显示环境温度和设置温度,并能通过两个独立按键调节不同的设置温度,从而改变环境温度与设置温度的差值,进而改变电机转速。
实现了基于单片机的温控风扇的设计。
本系统设计可推广到各种电动机的控制系统中,实现电动机的转速调节。
在生产生活中,本系统可用于简单的日常风扇的智能控制,为生活带来便利;在工业生产中,可以改变不同的输入信号,实现对不同信号输入控制电机的转速,进而实现生产自动化,如在电力系统中可以根据不同的负荷达到不同的电压信号,再由电压信号调节不同的发电机转速,进而调节发电量,实现电力系统的自动化调节。
综上所述,该系统的设计和研究在社会生产和生活中具有重要地位。
参考文献
[1]李学龙.使用单片机控制的智能遥控电风扇控制器[J].电子电路制作,2003,9:
13—15.
[2]蓝厚荣.单片机的PWM控制技术[J].工业控制计算机.2010,23(3):
97—98
[3]郭天祥.新概念51单片机C语言教程[M].北京:
电子工业出版社.2009.342—344
[4]胡汉才.单片机原理及其接口技术[M](第2版).北京:
清华大学出版社.2004.49—77.
[5]胡全.51单片机的数码管动态显示技术[J].信息技术,2009,13:
25—26
[6]李钢,赵彦峰.1-Wire总线数字温度传感器DSI8B20原理及应用[J].现代电子技术,2005,28(21):
77—79.
[7]马云峰.单片机与数字温度传感器DS18B20的接口设计[J].计算机测量与控制,2007,10(4):
278—280.
[8]王会明,侯加林.智能电风扇控制器的研制[J].电子与自动化,1998,5(4):
25—26.
[9]谭浩强.C程序设计[M](第三版).北京:
清华大学出版社.2005.37—65.
[10]孙号.Proteus软件在设计电子电路中的应用[J].仪表技术,2009,8:
74—75
[11]楼俊军.基于Proteus和Keil的单片机演奏乐曲的实现[J].科技信息,2010,23:
第50页
[12]王文海,周欢喜.用Proteus实现51单片机的动态仿真调试[J].IT技术,2006,20:
10—11
[13]丁建军,陈定方,周国柱.基于AT89C51的智能电风扇控制系统[J].湖北工学院学报,2003,18
(2):
60—63.
[14]王会明,侯加林.智能电风扇控制器的研制[J].电子与自动化,1998,5(4):
25—26.
[15]刘进山.基于MCS-51电风扇智能调速器的设计[J].广州:
电子质量,2004,10(10):
71.
[16]YUQihao,CHENGGuodong,NIUFuju
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 风扇 模拟器 实验设计 论文 修正
![提示](https://static.bdocx.com/images/bang_tan.gif)