温控电风扇毕业论文Word文档下载推荐.docx
《温控电风扇毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《温控电风扇毕业论文Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。
2
脉宽调制方式来改变直流风扇电机的转速,最后再通过ST188测试风扇转速。
系统中设有自动调速和手动调速两种模式。
系统结构框图如图1-1:
图1-1系统结构框图
1.2方案论证
1.2.1单片机选择
方案一:
采用STC89C52作为系统的控制器。
STC89C52是一种高性能、低功耗CMOS8位微控制器,具有8K系统可编程Flash存储器。
该单片机算术运算功能
体强,软件编程灵活、自由度大,可通过软件编程实现各种算法和逻辑控制,并有积小、功耗低、技术成熟和成本低等优点。
方案二:
MC9S12XS128是”飞思卡尔”公司推出的S12系列微控制器中的一款增强型16位微控制器。
其集成度高,片内支援丰富,接口模块包括SPI、SCI、
[2]I2C、A/D、PWM等。
它在汽车电子、工业控制、中高挡机电产品等应用领域具有广泛的用途,但由于成本价高,编程操作工序复杂,体积还较大。
基于以上分析拟订方案一,由STC89C52作为控制核心,对检测信号进行处理和显示、电机控制。
1.2.2温度传感器选择
DS18B20数字温度传感器。
DS18B20是美国DALLAS半导体公司继DS1820之后新推出的一种改进型智能温度传感器。
该器件温度分辨力极高,而且在对温度进行实时采集后直接输出数字量,简化了系统程序设计。
又由于该温度传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力强,误差较小。
热敏电阻。
通过热敏电阻感应外界温度,采集会数据后通过模数转换模块AD0809进行转换后送入单片机进行处理。
由于随着外界的温度升高,热敏电阻并不是呈线性变化,采集后会有误差,而且程序上处理麻烦。
再者,功耗较大、
3
占用空间大,不符合设计要求。
基于以上分析拟订方案一,用DS18B20作温度采集模块。
1.2.3电机驱动模块选择
采用多个三极管驱动。
三极管的主要特性是放大,三极管组成的级数愈多,放大的倍数愈大。
而且三极管成本价又低,体积小,不需要任何程序处理。
但是,一个三极管放大的倍数不能达到驱动电机的理想效果,设计中至少要2个以上,而且三极管易温漂,这样一来电路参数比较繁琐,参数易变。
采用达林顿管ULN2003驱动。
ULN2003具有带负载能力强、温度范围宽、电流增益高、工作电压高的特点,常用于各种电磁阀、步进电机、伺服电机等功率较大的器件上。
且不用设计任何电路参数。
方案三:
采用LM298驱动电机。
LM298内部含有2个H桥,可以实现电机四种不同的转动方式,并且驱动的效果较ULN2003效果好。
但是在程序的编写上要比后者复杂,电路组成也相对复杂些,加之成本又高于ULN2003,故舍去掉。
基于以上分析拟订方案二,采用达林顿管ULN2003作为信号处理模块。
1.2.4显示模块选择
采用四位LED七段数码管。
数码管具有:
低损耗、低能耗、低压、耐老化、寿命长,对外界的环境要求较低。
同时,数码管显示信息少,动态扫描占用太多CPU资源等。
采用液晶显示屏LCD1602。
液晶显示屏具有轻薄短小、功耗小、无辐射危险,平面直角显示以及影象稳定不闪烁,画面效果好,可视面积大,显示信息
[10]量大、抗干扰能力强等特点。
基于以上分析拟订方案二,采用液晶显示屏LCD1602作显示器。
1.2.5测速模块选择
采用红外对管ST188测速。
ST188是采用高发射功率红外光电二极管以及高灵敏度光电晶体管组成,检测距离可调整,范围大,4-13mm即可用,采用的是非接触检测方式,连接电路简单。
同时结合LM393电压比较器,在因为手工制作的码盘影响测量精度的情况下有所改善。
采用光码盘测速。
测速原理和ST188一样,其测速的精度比ST188测速精度较高,但是其成本相对较高,安装也没有ST188方便。
在此系统中,也完全不用高精度测速。
4
基于以上分析拟定方案一,采用ST188作为测速模块。
1.3系统各模块最终方案
根据以上分析,结合器件和设备等因素,确定如下方案:
(1)采用STC89C52单片机作为中央控制器,分别对DS18B20、LCD液晶显示、模式选择、ST188、PWM波产生进行控制。
(2)速度检测模块选择ST188进行速度测量。
(3)显示模块采用LCD1602,实时显示温度、档位、转速。
(4)采用ULN2003芯片驱动直流电机。
2硬件的设计与实现
2.1系统硬件模块介绍
温控风扇系统主要是通过DS18B20采集外界实时温度后经单片机处理风扇电机的转速,达到理想温控效果。
系统总体分为:
单片机最小系统、电源电路、温度采集电路、显示电路、电机驱动电路等部分。
系统电路原理图和PCB图如图2-1和图2-2所示:
图2-1系统电路原理图
5
图2-2PCB图
2.2单片机最小系统
温控风扇系统是以单片机STC89C52来作为最小系统的控制器。
STC89C52具有以下标准功能:
2个数据指针,三个16位定时器/计数器,8K字节Flash,32位I/O口线,256字节RAM,一个6向量2级中断结构,片内晶振及时钟电路,看门狗定时器,全双工串行口。
电路原理如图2-3所示。
U11939XTAL1P0.0/AD038P0.1/AD137P0.2/AD21836C3XTAL2P0.3/AD3351nFP0.4/AD434P0.5/AD533C1P0.6/AD69321nFRSTP0.7/AD721C2P2.0/A8221nFP2.1/A923P2.2/A102924PSENP2.3/A11C43025R1ALEP2.4/A123126EAP2.5/A1327P2.6/A1410k281nFP2.7/A15110P1.0/T2P3.0/RXD211P1.1/T2EXP3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716P1.6P3.6/WR817P1.7P3.7/RD
AT89C52
图2-3单片机最小系统原理图
STC89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。
6
2.3电源电路
由于直流电机驱动模块中,需要用到12V的电压,所以其决定了系统中的供电需要12V及以上的电源供电。
单片机是系统的控制核心,需要单独的5V电源供电。
基于上诉情况,对于需要得到不同的电压值,采用三段集成稳压芯片LM7812和LM7805来实现。
综上所述,电源模块电路图如图2-4所示:
图2-4电源电路
2.4温度传感器电路
系统的设计中,采用了DS18B20来采集温度,它直接可以把所检测到的温度短时间内转化成数字。
2.4.1DS18B20简介
具有负压特性,即当电源极性接反时,传感器不会因为发热而烧毁,但是不能正常工作;
用户可以自设定非易失性报警的上下限值;
有支持多点组网的功能,多个DS18B20可并联在惟一的三线上,实现多点的测温;
通过编程可实现9~12位数字读数的方式,温控风扇系统采用了该器件系统默认的12位表示方式,对应的可分辨温度分别为0.5?
、0.25?
、0.125?
、0.0625;
可以用数据线来供电,电压范围为:
+3.0~+5.5V;
测温范围为:
-55~+125?
固有测温的分辨率为0.5?
并且可在1S内把温度变换成数字;
在使用中不需要任何的外围元件;
DS18B20温度传感器只有三根外引线:
单线数据传输总线端口DQ,外供电源线VCC,共用地线GND;
独特的单线接口方式当DS18B20和微处理器连接的时候仅需要一条线即可以实现微处理器与DS18B20的双向通讯。
其具体电路接线图如图2-5所示。
7
图2-5温度传感器电路
2.4.2温度存储方式以及温度的计算
DS18B20用9位存储温度值,负温度S=0,正温度S=1,最高位为符号位,例如FF92H为-55?
,如图2-6所示:
图2-6DS18B20温度存储方式
DS18B20用12位存储温度值,负温度S=0,正温度S=1,最高位为符号位,例如FC90H为-55?
,如图2-7所示:
图2-7DS18B20温度存储方式
2.5显示模块电路
LCD1602是工业字符型液晶,能够同时显示16×
2即32个字符。
LCD1602模块内部的字符发生存储器(CGROM)已存储包括:
日文假名、常用的符号、英文字母的大小写和阿拉伯数字等160个不同的点阵字符和图形。
LCD1602与单片机连接电路如图2-8所示,其中15脚和16脚是液晶显示器的对比度调整端,接地电源的时候对比度最高,接正电源的时候对比度最弱,一般在
8
实际使用时可通过一个10K的电位器调整对比度,在此图中为Proteus中的仿真图未接电位器。
由于单片机内部P0口没有上拉电阻,输出的电平不能直接负载液晶,
1VSS需要人为在电路中接入上拉电阻,将P0口电平拉高后,再驱动负载。
2VDD3VEE4RS5LCD1RW6ELM016L7D08D19D210D311D412D513D614D7
RP11U119392XTAL1P0.0/AD0383P0.1/AD1374P0.2/AD218365XTAL2P0.3/AD3356P0.4/AD4347P0.5/AD5338P0.6/AD69329RSTP0.7/AD721RESPACK-8P2.0/A8U222P2.1/A9323VCCP2.2/A1017.022924图2-8LCD1602与单片机连接电路DQPSENP2.3/A1113025GNDALEP2.4/A123126EAP2.5/A1327DS18B20P2.6/A1428P2.7/A152.6电机驱动电路110P1.0P3.0/RXD211P1.1P3.1/TXD312在温控风扇系统设计中,涉及到风扇电机的调速,但是单片机的I/O口输出的P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1716功率不足以驱动直流电机,所以需要外加驱动电路来实现此项功能。
在前面的方案P1.6P3.6/WR817P1.7P3.7/RDAT89C51论证中选择了达林顿管体系芯片ULN2003作为驱动芯片,此芯片外接电路十分简单,不需要额外的辅助器件,单片机I/O口输出经过ULN2003输出就能直接拖动起电机。
电路图如图2-9所示。
+12v
C1
U3100uF+88.89COM1161B1C2152B2C3143B3C4134B4C5125B5C6116B6C7107B7C
ULN2003A
图2-9电机驱动电路
2.7速度检测电路
温控风扇的速度检测是由ST188来实现的,设计中采用ST188使系统形成反馈,和系统驱动电动机产生的转速进行调整,从而实现更好的控制。
ST188采用的是非接触检测方式,其外形图和内部电路如图2-10所示:
9
图2-10ST188外形图和内部电路
如图2-10,左边是光电二极管的外形图,由发射二极管和接收管组成,右图为内部的电路示意图。
A、K是红外发射二极管的正负极,C、E是接收管的正负极。
只要A极接高电平、K极接低电平,红外发射管就能发出红外线。
就可以在传感器加上外围电路来检测接收管的信号,进而确定是否接受到反射回来的红外线。
在此设计中,电机上安装一个图有黑、白两种颜色的码盘,当红外线照射的在黑线上的时候,由于黑色是吸收光线的,所以反射回去的光很少,而使得三极管收到的光较弱;
而当红外线照射到白线的时候,由于白色能够反射大部分的光,所以三极管收受到的光就较强。
两种光的强弱就能够使得检测电路输出不同的电压,这个电压被送入LM393电压比较器,在LM393中与电位器调节出的电压进行比较形成脉冲,该脉冲作用于单片机的P3_5口,通过单片机的内部定时/计数器计数,最终计算出风扇的转速。
3软件的设计与实现
系统的运行程序采用C语言编写,采用模块化设计,整体程序由主程序和、温度采集、PWM波、液晶显示以及电机控制等子程序模块组成。
3.1主程序流程图
主程序对各模块进行初始化,而后调用温度采集、模式选择、产生PWM波、显示模块。
主程序流程图如图3-1所示:
10
图3-1系统主程序流程图
3.2温度采集子程序
3.2.1DS18B20的工作流程
单片机控制DS18B20温度传感器完成温度转换工作要经过三个步骤:
初始化、ROM操作指令、存储器操作指令。
单片机所用的系统频率为12MHz。
根据DS18B20数字温度传感器进行初始化时序、读时序和写时序分别可编写成3个子程序:
初始化子程序、写子程序、读子程序。
流程图如图3-2所示:
图3-2DS18B20部分流程图
11
3.2.2ROM与存储器操作命令
在DS18B20的使用中运用到了一些指令,具体指令如表3-1所示:
表3-1ROM与存储器操作命令
3.3PWM波子程序
WM波来驱使电机以不同由于需要电机产生不同的转速,所以则需要不同的P
转速转动。
PWM波是一种不同频率的方波,所以在设计时采用定时器来产生不同频率的PWM波。
程序大致过程可以分为系统中断模块初始化和定时器产生所需要的PWM波,流程图如图3-3所示:
图3-3生成PWM波流程图
PWM的周期设为40ms,PWM的低电平时间为40ms,定时器T0选择工作方式1,设定PWM的单位时间为1s。
3.4显示子程序
为了让系统有一个有好的界面,在系统设计时,采用了LCD1602作为显示器件。
在液晶屏上显示了系统设计的名称、实时的温度值、电机的转速和当前温度下
12
风扇所处的档位。
部分指令如表3-2所示:
表3-2LCD1602部分指令
3.5速度检测程序
3.5.1ST188反射式红外光电传感器
T188反射式红外光电传感器,检测不同档位时电机的转速。
速度检测使用的是S
流程图如图3-4所示:
图3-4速度检测流程图
上图为速度检测的流程图,ST188设为每200ms读一次数,即每200ms记录由于风扇ST188所检测到的脉冲数,然后再对于计时的变量清零,再显示出脉冲数,最后又返回主程序。
3.5.2PID控制
PID是一个闭环的控制算法,温控风扇系统就是由ST188检测转速反馈给单片机形成反馈。
(1)PID是个由比例(P)、积分(I)、微分(D)构成的控制算法,但是并不
13
是必须同时都具备这三种算法,可以是:
P控制、PI控制、PD控制、PID控制。
比例(P),可以反应系统的当前的误差,当系数大时可以加快调节来减小误差,但是如果系数过大就会使得系统的稳定性下降,使系统输出存在有稳态误差。
积分(I),反应出系统误差的累计,可以消除系统的稳态误差,积分作用的强弱取决于时间的积分,时间越长积分作用越弱。
它使控制器输出的稳态误差进一步的减小直至0为止,而与上面的比例控制结合后可以使得系统达到稳定后无稳态误差。
微分(D),可以反应系统误差的变化率,它能够预测出误差变化的趋势,能够超前的控制,可以改善系统的动态性能,它的缺点是对于噪声有放大作用,所以不能过多的进行微分调节,且微分控制不能够单独使用,需要和另外两种控制结合使用形成PD或是PID控制。
(2)PID有三种常用的算法,分别是:
位置式算法、增量式算法、微分先行式算法。
温控风扇系统采用的是位置式PID算法:
将测到的速度与理想中的速度进行比较得到一个偏差ek,且算出这次的偏差和上次偏差的差eek,给定一个值,当偏差大于这个值时,则给满的占空比进行加速;
当偏差小于这个值并大于0时,则根据ek及eek来调整占空比进行加速;
若这个偏差为负时,则电机停止转动。
具体流程如图3-5所示:
图3-5PID控制算法流程图
14
3.6系统开发软件
系统编程采用KEILC51软件。
KeilC51是美国KeilSoftware公司开发的51系列兼容单片机C语言的软件开发系统,与单片机汇编语言相比,C语言语句简单灵活,编写的函数模块可移植性强,因而易学易用,效率高。
随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言的发展,单片机的开发软件也在不断发展,Keil软件是目前使用较多的MCS-51系列单片机开发的软件。
系统使用界面如图3-6所示
图3-6KEIL使用界面图
4软件测试和硬件测试
4.1软件测试
软件的测试中,结合于Proteus仿真软件完成,根据之前的各模块进行初始化设置,在编写程序前,要先对各个模块分别进行调试,并编写各部分的子程序。
测试DS18B20时,首先要检测初始化时否完成,再检测转换的温度是否正确,因为DS18B20是读一个字节写一个字节;
测试PWM时同过示波器观察产生的波形是否正常,也可通过示波器观测编码器产生的波形是否正常,有无丢失脉冲的现象也可由示波器观测到;
还要测试LDC1602的显示,刚开始的时候设置的扫描太快导致最后显示是数字在不停的闪烁,后来把扫描时间改成较长时间后则可以清楚的显示,然后就是观察采到的数据是否正常,黑线是否稳定。
系统测试仿真图如图4-1所示:
15
图4-1Proteus仿真图
4.2硬件的测试
4.2.1硬件实物图
首先是对硬件电路的电源部分,传感器部分以及驱动部分进行调试,电源部分的调试主要看其输出电压是否满足要求;
稳压芯片是否正常工作,一个稳压芯片输出12V电压,一个输出5V电压;
给一个恒定PWM占空比,观察电机是否会转;
用万用表检测从单片机输出的电流通过ULN2003后是否有扩大;
以及LCD1602的显示是否正常显示,如果显示不正常则需要更换对比度调节的电阻。
根据设计要求,最后制作的硬件实物如图4-2、图4-3所示:
图4-2硬件实物图
16
图4-3硬件实物图
4.2.2数据测试结果
经过数十次的调试,并仔细检查硬件电路的完整性,完成了系统设计要求,达到了温度检测范围的要求,并使检测结果精确到了0.1?
,风扇能够自启自停,并自带5个不同档位的风速。
同时系统还设置了手动模式,可以手动对于风速的调整,也可以根据现场实时温度自动调整风速得到理想中的风速。
实验实测图如图4-4和图4-5所示:
图4-4实验实测图
图4-5实验实测图
实测结果如表4-1所示:
17
表4-1测试结果
如上表所示,总共检测了11次,其中可以了解到:
手动模式共有5个档位,调节档位就是调节PWM波的占空比,当占空比越大时风扇转动得越快,当占空比为0时,风扇停止转动;
自动模式共有4个档位,自动模式是根据检测环境的温度来自动调节风扇的转速,当温度大于20?
时风扇开始转动,在20?
-26.5?
、27?
-32?
、33?
-39?
、大于40?
时分别为1到4档,而当温度小于20?
时风扇自动停止转动。
5结论
设计从节能、经济、实用的角度出发,以STC89C52单片机来控制一个简易温控风扇系统。
上文详细的介绍了整个制作过程中的方案论证、硬件原理、软件控制流程。
在整个制作过程,在导师的细心指导以及同学的帮助下经过不懈的努力,终于完成了对温控风扇的设计,实现了温度精确检测,风扇的自起自停,手动、自动调节风扇转速,同时可以检测速度功能的设计。
查找了元器件的资料,设计出了具体电路,并确定了主要参数,再根据单片机课程知识,对软件部分的理解,画出了程序流程图,最后完成了原理图的绘制,完成了整个设计。
在设计的过程中,也遇到了很多的问题,如在风扇电机驱动方面,开始时没有找到一个合适的方案来实现目标,先是自己在网上找了一些三极管驱动
18
电机电路,但最终没有实现,后又改为达林顿管来驱动,并得到了较好的效果。
在电机驱动PWM脉冲产生的过程中,由于以前单片机定时中断学习不好,在此次设计中遇到了不少麻烦,最终在查阅了相关书籍后总算做出来了。
还有这次是第一次接触使用温度传感器,对DS18B20的工作模式和一些时序更是一无所知,连资料上的时序也读不懂,在经过咨询同学后现在终于做出来了。
这一次的课题具有很强的综合性,它不但涉及到模拟部分和数字部分的设计,还要将单片机,物理等若干课程相结合,并需要自己查找大量的资料才能完成此次设计。
其实这个设计在很多方面还有待提高,但由于时间以及资金的问题而有所局限。
通过这样一次毕业设计,有了一次电子电路设计的全新体验。
通过查找资料,设计,绘图等,在实践过程中,学到了不少知识,增强了自学能力,同样加深了对电子学科的认识。
19
[参考文献]:
[1]李全利.迟荣强.单片机原理及接口技术[M].北京:
高等教育出版社,2004.1
[2]卓晴.黄开胜,邵贝贝.学做智能车----挑战“飞思卡尔”杯[M].北京:
北京航空航天大学出
版社,2006
[3]张伟等(ProtelDXP高级应用(北京(人民邮电出版社,2002
[4]华成英.童诗白.模拟电子技术基础[M].北京:
高等教育出版社,2007.4
[5]龚尚福.朱宇.微机原理与接口技术[M].西安:
西安电子科技大学出版社,2007.1
[6]孙传友.孙晓斌.感测技术基础[M].北京:
电