基于单片机的智能温控风扇设计论文文档格式.doc
《基于单片机的智能温控风扇设计论文文档格式.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能温控风扇设计论文文档格式.doc(32页珍藏版)》请在冰点文库上搜索。
摘要 I
关键字 I
Abstract I
Keywords I
1前言 1
1.1智能风扇概况 1
1.2STC89C52单片机简介 1
1.3课题研究的意义 2
2设计的任务和要求 2
2.1设计任务 2
2.2设计要求 2
3设计方案的选择和论证 2
3.1温度传感器部分 2
3.2控制部分 3
4系统设计 5
4.1系统框架设计 5
4.2控制部分原理 5
4.4.1DS18B20温度传感器的温度处理方法 5
4.4.2温度传感器和显示电路组成 7
4.4电机调速电路 7
4.4.1电机调速原理 8
4.4.2电机控制模块设计 8
5控制器软件设计 9
5.1主程序 9
5.2温度传感器模块和显示模块 10
5.3电机调速和控制子模块 12
参考文献 13
致谢 14
附录A 15
基于单片机的智能温控风扇设计
摘要
在日常生活中发现传统风扇的使用有些不方便的地方,比如在很多的地区昼夜温差大,人们睡觉时一般依靠风扇的定时功能,这样可能出现风扇因定时到了而关闭,但温度并没有降低很多,也有可能温度降低了很多但定时没有到,风扇还在转动。
为解决这个问题本文简绍了一种智能温控风扇系统,具有温度检测和显示功能,使用STC89C52单片机作为系统对风扇的转速进行控制。
此风扇设计两个档位,由单片机根据DS18B20温度传感器传来的数字信号进行控制,当温度高于上限值时,风扇较快转动;
当温度处于上限值与下限之间时,风扇较慢转动;
当温度低于下限时,风扇停止转动。
关键字
单片机;
智能控制;
温度传感器
The
Designof
Intelligent
Temperature
ControlledFan
Based
on
MCU
Abstract
There
are
some
inconvenient
places
in
the
use
of
traditional
fanin
daily
life,suchasmanyregionsofthetemperaturedifferencebetweendayandnight,peoplegenerallyrelyontimingfunctionoffan,thefanmaybeshutdownwhenthetimergoes,buttemperaturedidnotreducealotof,Inordertosolvethisproblem,thispaperintroducesafansystemcontrolledbytemperature,whichhasthefunctionoftemperaturedetectionanddisplay,andcontrolthespeedofthefanbyusingSTC89C52singlechipmicrocomputerasthesystem.
Thefandesigntwostalls,itiscontrolledbyMCUaccordingtotemperaturesensorDS18B20digitalsignal,whenthetemperatureishigherthantheupperlimitvalue,fanfastrotation;
whenthetemperatureisbetweenupperlimitandlowerlimits,fanslowermoving;
whenthetemperatureisbelowthelimit,fanstopsrotating
Keywords
MCU;
Intelligentcontrol;
Temperaturesensor
II
1前言
1.1智能风扇概况
虽然当今空调在不断的推广,使用越来越普及,但是电风扇并没有被淘汰,在市场上依然占有一席之地,它有着空调所不具备的优点,比如有些人对空调的使用有些不适应,出现一些所谓的空调病,而风扇的风比较温和,老少皆宜,而且风扇的价格比空调便宜很多,还节约电,使用和安装都非常的简单,这是风扇在市场上一直还有一席之地的主要原因。
随着科技的发展,电子产品越来越趋于智能化,智能化产品在人们生活中也越来越受欢迎,因此由微机控制的智能电风扇将深受人们的喜爱。
在人们的日常生活中,传统的风扇一般使用机械方式进行控制,功能比较少,一般只有手动调档和定时功能,到了季节交替时节昼夜温差大,白天温度高,电风扇应高转速、产生大风量,使人感到凉爽;
到了晚上,气温降低,当人入睡后,应该逐步减小转速,降低风量,以免使人感冒。
虽然电风扇都有调节不同档位的功能,但必须要人手动换档,如果人睡着了就无能为力,传统风扇就普遍采用的定时器关闭的做法,而这样也是有些不足,一方面是定时时间长短有限制,一般是一两个小时;
另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,如果增加定时器时间,而又非常的麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,可能使人感冒;
还有一个很大的不便,就是人们彻夜使用风扇时,晚间入睡以后温度会下降很多,风扇的转速不能自动变小,也可能使人感冒。
为了解决上述的问题,我们设计了这套智能温控风扇系统。
使用DS18B20来检测周围环境的温度,将数字信号传给52单片机进行处理,同时使用数码管显示此时的温度,并根据使用者设定的温度自动在相应温度时作出小风、大风、停机动作的智能控制。
1.2STC89C52单片机简介
STC89C52单片机的功能强大,而且功耗很低,成本低,在各种需要控制系统的地方能够灵活运用,片内具有4bytes能够反复擦写的只读存储器和128bytes的随机存取存储器,还有灵活的8位CPU和可编程flash,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统.
STC89C52单片机有如下基本功能功能:
具有4K的Flash快速存储器,128B的内部RAM,2个16位定时计数器,32个I/O口线,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
此外STC89C52单片机可以降到0Hz的静态逻辑操作,而且能够应用两种软件的省电工作模式。
空闲方式时停止CPU运作,却能够允许定时,RAM、计数器,串行通行口和中断系统继续运行。
掉电方式时能够保存RAM中的数据,但是振荡器会停止工作而且还会禁止其它所有的部件工作到下一个硬件的复位。
1.3课题研究的意义
在我们的日常生活中,有很多地方昼夜温差大,人们在熟睡时不方便调节风扇的档位大小,这时需要智能温控风扇系统,根据当时的温度自动调节风力大小或关闭,这与传统的风扇相比更人性化而且还节约用电。
当然在其他地方也可以广泛应用。
2设计的任务和要求
2.1设计任务
设计并制作一个基于单片机的智能温控风扇
2.2设计要求
本设计通过DS18B20对周围环境温度进行数据采集然后传给52单片机进行数据处理,使之形成一个随温度变化而自动做出相应动作的智能系统,这样风扇就能根据温度的变化而相应的自动变化档位,实现“温度高、风力大、温度低、风力弱”的性能。
此外,用户通过按键来实现各种功能的控制,设置电风扇停止工作时的温度,只要温度比所设温度低时,电风扇就会自动的关闭,如果温度变化高于这个温度时电风扇就会自动的重新启动。
本设计的重要内容如下:
(1)风扇的档位有高低两个,用户可以通过键盘设置温度的上下限值。
(2)当温度比所设温度下限值低时电风扇就会自动关闭。
(3)当温度在所设温度下限和上限之间时电风扇慢速转动。
(4)当温度高于所设温度上限值时电风扇快速转动。
3设计方案的选择和论证
3.1温度传感器部分
方案一:
用热敏电阻来设计温度传感器部分,首先把由温度变化而引起热敏电阻阻值的变化通过运大器放大、再把这个随温度变化的模拟信号通过AD转换芯片ADC0809变成数字信号供给单片机进行处理。
方案二:
用热电偶来设计温度传感器部分,外界温度的变化会引起热电偶内的电流,先用桥式电路进行整流,在用运算放大器放大电流信号,最后通过AD转换电路将模拟信号转变成数字信号传给单片机进行处理。
方案三:
用温度传感器DS18B20来设计温度传感器部分,因为传感器DS18B20集成元件把周围环境的温度转变成了数字信息直接送给单片机进行处理就行。
对于方案一而言,虽然热敏电阻的价格比较便宜,制作成本低,可是他对周围环境温度的变化不怎么敏感,而且在温度数据的采集、放大和转换时还会产生失真与误差,此外因为热敏电阻的R-T是非线性的关系,外界温度变化引起的阻值变化本来就存在误差,如果在增加电路来纠正误差,这样不但使电路复杂而且对外界环境的温度变化更加的不敏感。
所以放弃此方案。
对于方案二而言,虽然热电偶比方案一中的热敏电阻对温度的变化敏感一些,而且在失真和误差方面也有很大的提高,但热电偶温度检测范围可以从-50摄氏度到1600摄氏度,此范围太广,对本设计不合适,对温度的变化还需更敏感。
对于方案三而言,因为DS18B20是数字式的高集成温度传感器,特点就是集成化高,输出的又是数字信号,使得电路更加的简单,误差也更小,而且因为DS18B20检测温度在原理上与前两种方案有着本质的区别,这让它对温度的分辨力提高了很多。
而且温度的数值在器件内直接转换成了数字信号输出,这使得系统程的序设计计更加的简单,此外因为DS18B20使用了先进的单总线技术,这使得单片机的接口变的简单很多,而且有较强的抗干扰能力。
关于DS18B20的详细参数参看下面“硬件设计”中的器件介绍。
3.2控制部分
方案一:
用热电偶或者热敏电阻将外界环境温度的变化转变成电信号的变化,再传给由集成运放构成的比较电路,来判断控制电风扇的档位,使得当环境的温度超过或者低于某值时,风扇会自动的切换到相应的档位。
方案二:
用单片机作为控制系统,编写相应的程序,使单片机根据输入的温度信号自动做出相应动作来控制电风扇的档位。
对于方案一,虽然电压比较电路制作简单,也不要编写相应的程序,但它的控制方式却太过简单,不能够由用户设置上下限温度,因此不能满足不同用户的不同要求。
对于方案二,用单片机作为控制核心,可以编写程序通过数码管显示出温度传感器检测的温度,除此之外用户还可以通过键盘自主的设置上下限温度值,这满足了用户的全方位需求。
并且通过程序判断温度具有极高的精准度,能精确把握环境温度的微小变化。
因此就选方案二。
3.3显示部分
使用五位共阳数码管显示温度,动态扫描显示方式。
使用LCD液晶显示屏显示温度
对于方案一,此方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。
不足的地方是扫描显示方式是使五个LED逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20MS,当数码管扫描周期小于这个时间时人眼将感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。
对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的。
但是液晶显示模块价格昂贵,驱动程序复杂,从简单实用的原则考虑,就采用方案一。
3.4调速方式
根据电磁感应原理,将220V的电压通过不同的线圈降至不同的电压,然后控制电风扇电机接到不同电压的线圈上,这样就可以控制电机的转速了,实现自动变档功能。
使用晶闸管组成电风扇的无级调速电路。
相对于方案一,因为是用变压器改变电压来调节风速,这使得风速有明显级别跳变,不适合人性化的要求。
此外,在变压时会产生能量损耗而发热,使得电力利用效率降低,而且发热还可能引起不安全问题。
相对于方案二,通过电位器来控制晶闸管导通角的大小,可以实现从关闭到最大风之间的无级别调速,既可以使风力调节在关闭到最大风之间的任意风力。
而且在调速过程中基本上没有电力损耗。
因此采用方案二。
3.5控制执行部份
使用AD0832数模转换芯片进行控制,通过单片机根据的当前环境温度值输出相应的数字量到数模转换芯,再经由数模转换芯输出模拟信号来控制晶闸管导通角的大小,最后通过无级调速电路来实现温度控制时的自动无级风力调节。
使用继电器来实现,通过单片机来控制继电器接有控制晶闸管导通角的电阻是否接入电路,既根据当前环境温度值在相应的管脚送出的高/低电平,来决定这个继电器导通角的控制电阻是否接入狼人电路。
(详见4.2.4)
对于方案一,虽然能够实现风扇处于温控状态时能够无级调速,不过D/A数模转换芯片的价格比较高,跟温控状态下的无级调速功能相比性价比并不高。
对于方案二,虽然温控状态下风速的调节有明显的跳变,只能够实现强/弱两级风速调速,但是继电器价格很便宜,控制也可靠,而且人们对于无级调速这个功能并不是很需要,所以采用方案二。
4系统设计
4.1系统框架设计
键盘输入
温度显示
单片机系统
电机控制模块
数字温度传感模块
图4.1系统总体结构框图
4.2控制部分原理
传统风扇是用220V的交流电供电,风扇的转速分为多个档位,需要人们手动来调整风扇档位来改变风速,既每次改变风速,都要有人工来操作,这非常的不方便。
本文就介绍了一种智能电风扇的设计,用STC89C52单片机作为控制核心,结合温度传感技术,把智能控制技术应用于电风扇智能控制中,先通过单片机处理采集到的温度信号,然后通过可控硅对风扇的电机转速进行调整。
这样就不需要人工换档达到智能控制的目的。
4.3温度测量和显示电路
可用LM324A运算放大器来作为温度传感器,将他设计为比例控制调节器,输出的电压跟热敏电阻阻值成正比,但是这种方法需要经过多次检测后方才可使采样精确,比较烦琐。
因此采用更好的DS18B20数字温度传感器,它能够直接将环境温度的模拟信号转变成数字信号,这使电路变得简单,提高电路的运行效率。
4.4.1DS18B20温度传感器的温度处理方法
DS18B20简介:
DS18B20温度传感器是由美国DALLAS半导体公司在DS1820之后研发出的一种更智能温度传感器。
它跟传统热敏电阻相比较,能够直接读出周围环境的温度而且可以根据实际的要求通过编程来实现9~12位数值读数方式。
还可分别在93.75ms和750ms内完成9位和12位的数字量,此外,从DS18B20读出的信息或者写入DS18B20的信息只需要一根口线读写就可以了,温度的变换功率来自数据总线,总线本身也能够向所接的DS18B20供电,这样不需要额外电源,所以使用DS18B20可以使系统的结构更加简单,可靠性也提高了很多。
它在测量温度的精度、转换的时间、传输的距离、分辨率等方面比DS1820有着很大的提高,这给用户使用带来了更多的方便,效果也更令人满意。
特点如下:
(1)它有一个独特的单线接口:
DS18B20与微处理器连接时仅需要一条口线可以实现单片机和DS18B20的双向沟通。
(2)其他外围组件不需要使用。
(3)数据线可用于电源供电,电压范围为5.5伏+3伏。
(4)温度测量的范围为:
-55~+125℃。
测量温度的分辨率为:
0.5℃。
(5)程序设计可以实现12位数字读出方式。
(6)用户可以设置非挥发性报警的上下限值。
(7)可以支持多点组网功能,多个DS18B20可以并联到惟一的三线上,可以实现多点测量温度。
(8)负压特点,当电源的极性接反时,温度计不会因为发热而被烧毁,但却不能够正常工作。
单线技术:
该技术通过单根信号线,就可以传输时钟,也能够传输数据,并且是双向传输的。
非常适合单主机系统,这样就这可以使主机能控制一个或者多个从机设备,用一个漏极开路或者三态端口连接该数据线,使得设备在不发送数据的时候能够释放该线,而且能让其它设备使用。
单线一般要接一个5K的上拉电阻,这当该线空闲的时候,它为高电平状态。
主机与从机之间通讯分成三个步骤:
1.初始化单线器件。
2.识别单线器件。
3.单线数据传输。
单线协议通过应答脉冲、复位脉冲、写1、写0、读1、读0,这几种信号来实现,这些信号除了应答脉冲外其它的都通过主机发起,而且指令和数据字节都必须是低位在前。
DS18B20能够直接将测得的温度值转变成数字量传给给单片机处理,工作时一定要严格的按照单总线器件的工作时序。
表4.1部分温度值与DS18B20输出的数字量对照表
温度值/℃
数字输出(二进制)
数字输出(十六进制)
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.625
0000000110010001
0191H
+10.125
0000000010100010
00A2H
+0.5
0000000000001000
0008H
0
0000000000000000
0000H
-0.5
1111111111111000
FFF8H
-10.125
1111111101101110
FF5EH
-25.625
1111111101101111
FF6FH
-55
1111110010010000
FC90H
4.4.2温度传感器和显示电路组成
本模块的温度传感器选用更加优秀的DS18B20,选用STC89C52单片机作为控制处理器,再添加温度显示部分作为温度控制输出单元。
本系统尽量结构简单,但功能也要完善。
温度传感器电路图如图2所示。
系统的工作原理:
通过DS18B20采集周围环境的温度,将测量传入单片机2.4口温度数据,通过单片机处理显示当前温度,并与用户设定的温度上下限值进行比较,如果设定的高限或高于设定的阈值低,控制电机的转速自动调节。
图4.2DS18B20温度传感器原理图
4.4电机调速电路
电机速度控制是整个控制装置的一个重要方面。
通过控制改变三极翻出的导,使输出端电压发生改变,从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调速。
4.4.1电机调速原理
双向可控硅的导通条件如下:
(1)阳-阴极间加正向电压;
(2)控制极-阴极间加正向触发电压;
(3)阳极电流IA大于可控硅的最小维持电流IH。
电风扇的档位设为高低两档,每个档位的风速有一个限定值。
当在额定的电压和功率下以最高速度转动时,要使风扇风叶的最大圆周上的线速度不小于或等于2150m/min。
而且线速度可通过下面的公式求得
V=πDn×
103(4.1)
式(4.1)中,V代表风扇扇叶最大圆周上的线速度(m/min),D代表风扇扇叶的最大直径(mm),n代表电风扇的最快转速(r/min)。
代入数据可得n5≤1555r/min,取n5=1250r/min.又因为:
(4.2)
取n1=875r/min。
因此可以得到五个档位的转速值:
n1=875r/min,n2=980r/min,n3=1063r/min,n4=1150r/min,n5=1250r/min
又因为负载上的电压有效值为
u0=u1(4.3)
式(4.2)中,u1代表输入交流电压的有效值,α代表控制角。
求解得:
(1)当α5=0°
时,t=0ms;
(2)当α4=23.5°
时,t=1.70ms;
(3)当α3=46.5°
时,t=2.58ms;
(4)当α2=61.5°
时,t=3.43ms;
(5)当α1=76.5°
时,t=4.30ms。
上面得出的是控制角度和触发的时间,当检测到过零点时,通过所求解的触发时间延时发脉冲,就可以实现预期转速。
4.4.2电机控制模块设计
本模块使用了MOC3041M过零双向可控硅型光耦,过零检测、集光电隔离和过零触发等功能,防止了输入和输出通道同时控制双向可控硅触发的缺点,使得输出通道隔离2驱动电路的结构简化。
可控硅触发电路原理图见下图3。
其中RL电路即作为电机负载,它的工作原理是:
单片机先响应用户的参数设置,使得在I/O口输出一个高电平,再经过反向器反向,输出一个低电平,这使得光电耦合器导通,与此同时触发双向可控硅,使得工作电路导通。
在给定的时间内,负载的功率为:
(4.4)
式(4.3)中:
P表述负载产生的功率(kW),n表示给定的时间内可控硅导通过正弦波的个数,N表示给定时间内交流正弦波总数,U表示可控硅在一个电源周期全导通时所对应电压有效值(V),I表示可控硅在一个电源周期全导通时所对应的电流有效值(A)。
由式(4.3)可得,当U,I,N为定值时,只需改变n值就可以控制功率的输出大小,这就达到调节风扇的转速。
图4.3电机控制原理图
5控制器软件设计
本系统的程序选用C语言进行编写,采用模块化的设计方法,整体的程序由主程序和显示,键盘扫描,红外线接收,电机控制等子程序模块组成。
5.1主程序
当主程