智能太阳能热水器控制系统设计.docx
《智能太阳能热水器控制系统设计.docx》由会员分享,可在线阅读,更多相关《智能太阳能热水器控制系统设计.docx(42页珍藏版)》请在冰豆网上搜索。
智能太阳能热水器控制系统设计
摘要
本文设计了一个太阳能热水器智能控制系统。
它以89C52单片机为核心,配合电阻型4档水位传感器、负温度系数NTC热敏电阻温度传感器、8255A扩展键盘和显示器件、驱动电路(电磁阀、电加热、报警)等外围器件,完成对太阳能热水器容器内的水位、水温测量、显示;时间显示;缺水时自动上水,水溢报警;手动上水、参数设置;定时水温过低智能电加热等功能。
其中本文第一章主要说明了太阳能热水器智能控制系统的研究现状和本课题的主要任务,第二章对系统的整体结构作了简单介绍,第三章重点介绍了水位水温测量电路,第四章介绍了时钟电路,第五章介绍了显示和键盘电路,第六章对其他电路作了介绍,第七章是对水位测量电路的硬件调试。
本系统对于水位传感器、水温传感器的电阻数据的处理均采用独特的RC充放电的方法。
它与使用A/D转换器相比,电路简单、制造成本低。
特别适用于对水位、水温要求不精确的场合。
关键词:
太阳能,热水器,控制器,89C52,RC充放电
Abstract
Thisarticlehasdesignedaintelligencecontrolsystemforsolar-poweredwaterheater.Ittakethe89C52microcontrollerintegratedcircuitasthecore,thecoordinate4gradesofwaterslevelresistancesensor,thenegativetemperaturecoefficientNTCthermistortemperaturesensor,the8255Aexpansionkeyboardandthedemonstrationcomponent,theactuatecircuit(solenoidvalve,electricheating,warning)andotherperipherycomponent,completestothewaterlevelandtemperaturemeasureanddemonstrate;thetimedemonstrate;lackofwaterautomaticallyupstream,thewateroverflowwarn;fixedtimeintelligencelyelectricheat.
Thefirstchapterofthisarticlemainlyexplainedtheresearchsituationofthesolar-poweredwaterheaterintelligencecontrolsystemandtheprimarymissionofthistopic.Thesecondchapterhasmadethesimpleintroductiontotheoverallconstructionofthesystem.Thethirdchapterintroducedwithemphasisonthewaterlevelandwatertemperaturemeteringcircuit.Thefourthchapterintroducedtheclockcircuit.Thefifthchapterintroducedthedemonstrationandthekeyboardcircuit,.Thesixthchapterhasmadetheintroductiontoothercircuits.Theseventhchapteristhehardwaredebuggingofthewaterlevelmeasuringcircuit.
RegardingtheprocessofthewaterlevelsensorandwatertemperaturesensorresistancedatathissystemusesthemethodoftheuniqueRCelectricsufficientanddischarging.ComparedtousingtheA/Dconverter,theelectriccircuitissimple,theproductioncostislow.Speciallyitissuitableforthewaterlevelandthewatertemperaturemeasuringrequestedunprecisesituation.
Keyword:
Solarenergy,waterheater,controller,89C52,RCelectricsufficientanddischarge
第一章引言
1.1课题的背景意义
随着太阳能热水器的迅速推广,广大消费者对太阳能热水器特别是太阳能热水器控制器的要求越来越高,太阳能热水器商家为使自己的产品能在市场上生存和发展,在不断提高太阳能热水器热水性能的同时,也不断加大力度满足消费者对于太阳能使用方便的要求,于是太阳能热水器的智能化程度越来越高。
本设计追踪科技应用前沿,跟踪市场,根据论文资料及市场现有产品模型,在加上自己的理解和创意,模仿出了一套智能化的太阳能热水器控制系统。
本系统完全跟随太阳能热水器本身智能化程度和成本的要求,为太阳能热水器提供了一套智能化程度高、性能良好、使用方便、经济实惠的配套控制系统。
1.2太阳能热水器和其控制器的发展现状
中国太阳能热水产业的发展始于上世纪80年代,当时的市场定位是农村或中小城镇的低收入家庭。
90年代后期,住宅商品化的发展以及家庭对热水需求的大幅度增长为太阳能热水器的发展提供了市场空间,太阳能热水器的生产规模进一步扩大,形成了一些有一定知名度的产品和品牌。
自上世纪90年代以来,我国太阳能热水器行业保持了10多年的快速增长,2005年太阳能热水器年生产量为1500万平方米,是2000年640万平方米的2倍多,到2005年底,我国太阳能热水器保有量超过7500万平方米是2000年2600万平方米的近3倍。
目前,我国既是世界上最大的太阳能热水器生产国,同时也拥有世界上最大的太阳能热水器市场。
至2005年,全国有1000多家有一定规模的太阳热水器生产企业,年总产值达150多亿元,出口创汇2000万美元,全行业提供约30多万个就业机会,产生了显著的经济、环境和社会效益[1]。
到目前已有许多太阳能品牌为大家耳熟能详,如皇明、桑乐、四季牧歌、力诺等。
总之,太阳能热水器已是一件和电视机、洗衣机一样必不可少的家用电器。
进步源于竞争,在我国太阳能拥有广阔的市场,当然也有更大的竞争,各大商家为了使自己的产品在市场上立足并长远发展,不断提高太阳能热水器的性能,其中太阳能热水器控制器以其灵活、贴近客户成为商家竞争的热点。
目前,各大商家纷纷提高太阳能热水器的智能化程度来满足消费者的需求。
许多太阳能热水器的功能有:
开机自检、温控上水、强制上水、水位预置、水质设置、水温指示、低水压上水、水位显示、防高温空晒、缺水报警、自动防溢流、缺水上水、手动上水、故障提示等许多贴近客户需求的功能。
目前太阳能控制器的控制器基本实现数字化,以单片机为控制核心的控制系统占领太阳能热水器的主要市场。
在市场调查中发现,太阳能控制单片机的型号较多,其中应用最多的是51系列和PIC系列单片机。
其基本框图如图1-1所示。
图1-1市场太阳能热水器基本框图[2]
太阳能热水器控制系统可以实现水位显示、水位控制、温度显示、防冻等多种功能,其中对水位的检测、控制,实现水位显示、自动上水、超限报警是太阳能热水器控制系统的核心。
目前大多数太阳能热水器的水位传感器都采用分段式水位传感器,因为太阳能热水器对水位精确度的要求不高,并且分段式传感器的成本很低。
图1-2是常用的一种分段式热水器传感器的基本原理。
对于温度的检测便于用户的使用和控制电加热。
目前,温度传感器的应用种类较为繁杂,有直接使用热电阻、热电偶的,也有使用数字温度变送器(如MAX6674)的。
在显示方面多采用LED显示或LCD液晶显示。
图1-2一种分段式水温传感器[3]
1.3课题的研究内容
本课题主要是对市场现有产品的仿制,要能够实现太阳能热水器的完整功能。
本课题以89C52单片机为核心配合传感器、显示器件、电磁阀、电加热器、报警器等外围器件,采集热水器储水箱中的水位、水温信号,通过控制电动机的运转、电加热器加热来控制储水器的水位、温度,并完成水位、水温显示,时间显示,水溢报警等功能。
另外配有键盘,可以实现手动上水、手动电加热、设置水位、设置温度等功能。
第二章太阳能热水器智能水位控制系统整体结构介绍
太阳能热水器整体结构大致可以分为四大部分:
1.水位、水温测量电路。
这部分用于采集水位水温信号给单片机,是太阳能热水器控制器最关键的部位。
2.时间、水位、温度显示和键盘电路。
这部分用于系统和人的信息交互,有对太阳能热水器状态的直观显示,也有用于人对系统控制的键盘电路。
3.时钟电路。
给系统提供时间显示和参考时间。
4.驱动电路。
包括电加热、上水电磁阀、报警电路,是整个系统的执行部分。
系统的整体结构图如图2-1所示。
图2-1太阳能热水器控制系统整体结构图
第三章水位和水温测量电路硬件设计
水位测量和水温测量是太阳能热水器控制系统的最重要部分,是实现其他功能的基础,此部分性能好坏将关系到整个系统的优良程度,所以设计一个性能良好的水位、水温测量系统是本设计的重点。
3.1水位测量电路
水位测量可以有多种方法,需从性能和成本两方面进行考虑,选择合适的方案。
3.1.1方案比较选择
1.排阻分档键盘式水位传感器
在许多资料中都介绍了一种类似键盘电路的分档水位传感器,其原理图如图3-1所示。
图3-1排阻式水位测试电路示意图[4]
它的工作原理类似于键盘的工作原理,用5根不锈钢针分别置于水箱内的四种不同高度的位置,当某个钢针不接触水面时,其输出为高电平;当其与水面接触时则输出低电平。
它们的输出接至电子开关CD4069,经过CD4069反向并经74LS244驱动后分别接入89C52的P1.0~P1.3引脚。
CPU对这些引脚进行判断后,送去显示相应的水位值。
显示共分4档,每档为满水位的25%。
这种方法简单,易实现,省去了传统的A/D转换器,成本低,虽然不精确但可以满足使用要求[4]。
2.RC充放电式水位传感器测量电路
这种电路资料较少,但我们在市场上购买的桑乐太阳能的水位和水温传感器就是基于这种原理,其基本形状如图3-2所示。
图3-2桑乐太阳能水位水温传感器外形图
从图3-2中我们可以清楚的地看到传感器外形非常简单,一共只有4个端口,其中一个是防冻接口,没有使用,使用的只有3个端口,在可用的三个端口上分别标有公共、水位、水温标志,由此可知测量水位、水温都只用了一个端口。
观察传感器可知水位传感器有5个与水接触点,我们从上到下依次命名它们为1—5触点。
我们分别测量了触点不同接法时公共和水位两端口之间的电阻,数据如表3-1所示。
由上述测试结果的电阻值得出这样的规律,那就是电阻的并联短接,其原理如图3-3所示。
表3-1输出电阻值表
短接方式
无短接
1、2
1、2、3
1、2、3、4
1、2、3、4、5
输出电阻值(kΩ)
极大
25
12.5
8.6
6.3
图3-3桑乐太阳能水位传感器原理
它的工作原理是,水面每接触一个钢针就会多并联一个电阻,电阻随水位变化而规律的变化。
利用单片机的一个口周期性的给电容电路充放电,然后用
图3-4RC充放电式水位传感器测量电路原理图
单片机监测电容两端电压的变化,因为电容电压的上升或下降时间t=RC,所以用单片机记录这个时间就能判别电阻的变化,进而转化为水位的变化进行显示及其他动作。
3.传感器选择
RC充放电式水位传感器测量电路,明显优于排阻分档键盘式水位传感器的地方有:
(1)接线简单,排阻分档键盘式水位传感器需要四根导线传输水位信号,而RC充放电式水位传感器仅需要两根就能完成,这对于线路较长的太阳能热水器传输信号电路来说能节省相当多的导线资源。
(2)给水温测量电路设计带来方便,RC充放电式水位传感器的原理可以同样运用到热电阻温度测量电路中。
(3)占用较少的I/O口,仅需两个I/O口就能完成水位检测任务,极大地节约了单片机的I/O口资源。
综上比较可见选用第二种方案较为优越。
3.1.2水位测量电路的具体设计及优化
1.直接接单片机I/O口检测
单片机中的定时器可以提供电压变化时间的纪录,接下来就是如何将电压的变化传递给单片机。
一种简单的方案是:
用P1.0口给RC电路周期性的充放电,然后用P1.1口监测电容的电平变化,完成计时,这种方案看上去简单易实现,但实际则行不通。
按刚才提到的方法接图如图3-5。
这样做得到的结果是P1.1的电压一直保持高电平,即电容电压一直保持高点平。
这与单片机内部电路有关,单片机的内部电路如图3-6所示。
图3-5直接用I/O检测电容电压测量水位电路原理图
图3-6P1口的位结构[5]
从图中可见,P1口只有高电平和低电平两种状态,当P1.1口为高电平时,将电容端与P1.1连接,VCC会通过内部上拉电阻持续给电容充电,所以监测电容电压一直为高电平。
而当将其置低电平时,P1口相当于接地,将会出现相反的情况,其通过地一直给电容放电,电容电压一直低电平。
2.采取与I/O隔离并用中断监测电容电压的电路
这样需要将电容电压与单片机监测端口隔离,采取如图3-7所示电路。
图3-7水位测量电路
1.LM358的应用
LM358的正向输入端接电容电压正端,反向输入端与输出端相连,构成电压跟随器。
电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低,一般来说,输入阻抗要达到几兆欧姆是很容易做到的。
输出阻抗低,通常可以到几欧姆,甚至更低,也就是说电压跟随器有较好的隔离作用,使输出对输入影像较小,正好满足我们的要求[6]。
LM358的输出电压幅度为0至Vcc-1.5V,而要跟随的电压范围为0—5V,所以应选用大于+6.5V的电源供电,这里选用+12V单电源供电
2.LM393的作用
给比较器设置+3V的参考电压,将电容电压的指数曲线变成矩形波,波形图如图3-8所示。
将参考电压接同相输入端,比较电压接反相输入端,从而实现电容电压在上升到参考电压时比较器产生下降沿信号,作为单片机的外部中断信号。
如图3-8所示。
根据LM393的特性本设计电源电路提供的电压,选用+5v给其供电。
由LM393的内部原理图可知LM393的输出为集电极开路,它的输出高电平与LM393的电源无关,但须接外部电源和上拉电阻。
在图3-7所示的水位测量电路中并未有这样的上拉电压电路,是因为单片机内部INT0、INT1口已经具备了这样的电路。
INT0、INT1的内部电路类似于P1口如图3-6所示。
另外LM393的同相输入端输入和反相输入端输入之间有相互嵌位作用,+5V电源和分压电阻提供的+3v参考带电平对反相输入端输入有嵌位作用,如果不接LM358电源跟随器而与电容直接相连,显然会影响电容电压的变化,这就是要加电压跟随器进行隔离的原因。
图3-8电容电压与比较器输出信号(仿真和实测)
3.充电时间的设定和电容的选择
电容充电时间的计算公式为:
(3-1)
T即位电容电压上升时间。
编程使P1.0口输出周期性的方波,给电容充放电,方波半周期(充电或放电时间)为
,应使方波半周期大于电容电压上升时间,即:
(3-2)
如果使用单片机主程序一直循环给P1.4口输出方波,方波的周期可以很大,超过几秒甚至几十秒,但是这样主程序就只能干这一项工作,影响单片机的其他工作。
所以要用定时器来实现方波输出。
这样用定时器就可以用定时中断使P1.4口输出方波,又不影响单片机的其他工作。
这样方波的周期就受定时器定时时间的限制。
89C52单片机定时器共有4种定时方式,其中定时时间最长的为定时方式1。
当定时器/计数器在方式1下做定时器用时,其定时时间计算公式为:
(3-3)
采用12M的晶振,晶振周期为
S,因为采取定时器终端方式,所以N=0XFFFF=65536。
所以:
(3-4)
那么当T=30ms,计数初值为0X8AD0=35536。
定时输出30ms其程序如下:
voidmain()
{initial();
while
(1)
display();
}
voidtimer_t1()interrupt3
{
TH1=0X8A;//重新给定时器1赋值
TL1=0XD0;
P1_4=!
P1_4;//充放电变换
if(P1_4)//充电开始时启动定时器0
{
TL0=TH0=0X00;//定时器0赋初值0
TR0=1;//启动定时器0
}
}
如图3-6,这里用INT0中断来监视记录电容变化,内部编程实现计时器对电容电压上升时间的记录,所以可以通过将计时器寄存器里的值显示出来的方式直观显示电容电压结果,来确定合适的电容。
以下是编程实现这一过程的结果。
表3-2不同电容大小时计数器寄存器中的值
一水位
二水位
三水位
四水位
TH0
TL0
TH0
TL0
TH0
TL0
TH0
TL0
2uF
A0~B4
——
85~98
——
70~83
——
60~65
——
1uF
64~70
——
49~50
——
38~40
——
32~34
——
0.22uF
2
——
1
80~A3
1
72~80
1
64~72
由表格数据可见当选用2uF电容时,应需较大的充放电时间,充放电不够充分,所以计数器寄存器中的值大而不准;而当取0.22uF电容式计数寄存器TH0的值仅为1或2,非常不利用区分;当取1uF电容时,数据大小合适,分段明显,所以应选用1uF电容。
另外,电容两端的最高电压为+5V,最低电压为0V,所以所选电容的耐压留有一定裕量为最大电压的3倍,所以应选取耐压为15V以上的电容。
由表3-2知R最大值为25KΩ,所以:
(3-5)
又由式3-8得:
(3-6)
这样由公式3-5、3-6得到
。
因此取充电和放电时间为30ms。
4、编程实现水位处理
由于水电阻的波动性和电容的不稳定性等原因,计数器中的数值会有一定的波动,所以需要对数据进行相应的处理显示水位。
其中buf[1]为计数器0寄存器中的值。
voidLvRead()
{if(buf[1]>60)
{
WTLV=1;//显示1水位
L3=0;L2=1;L1=1;L0=1;
}
elseif(buf[1]>45)
{
WTLV=2;//显示2水位
L3=1;L2=;L1=1;L0=1;
}
elseif(buf[1]>36)
{
WTLV=3;//显示3水位
L3=1;L2=1;L1=0;L0=1;
}
else
{
WTLV=4;//显示4水位
L3=1;L2=1;L1=1;L0=0;
}
}
3.2水温测量电路
水温测量电路的设计包括传感器的选择和测量电路的选择。
考虑到性价比等原因,市场上大部分太阳能热水器的温度传感器都选用NTC负温度系数热电阻,本系统也选用这种。
下面主要论述测量电路。
3.2.1方案比较选择
温度测量方案很多,下面通过比较选择合适的测量方法。
1.热电阻A/D转换式水温传感器
图3-9热电阻A/D转换电路原理图
A/D转换式水温传感器的原理是,利用热敏电阻的阻值随温度变化的特性,将随温度变化的电阻信号转化为变化的电压信号,然后将这个电压信号经运放放大处理成0—5V的电压信号,电压信号经A/D转换变成数字信号送给单片机。
这种电路测量比较精确,但需用A/D转换器,而A/D转换的价格较贵,会加大成本,另外A/D转换需占用8个数据口和两个片选口及两个控制口共12个I/O口。
2.RC充放电式热电阻水温传感器测量电路
RC充放电式热电阻水温传感器测量电路的原理与前面提到的RC充放电式水位传感器测量电路原理完全相同,只要把水位电阻换成热电阻就可以了。
其缺点是不够精确,但成本很低,对于对温度要求不算精确的太阳能热水器系统,完全可以满足我们的需要。
另外与A/D转换式温度传感器相比,其优势还是十分突出的:
(1)仅需2个I/O口就能完成对温度的检测,节约了单片机的I/O,有利于降低成本。
(2)实现起来也十分简单。
3.2.2水温测量电路的设计及温度计算方法
1.水温测量电路
图3-10水温测量电路原理图
对太阳能热水器中水的温度进行控制及显示,需对热水器水温与出水温度进行检测。
对于热水器来说温度控制与显示的精度要求并不高,因此本设计采用负温度系数NTC热敏电阻作为测温元件,利用NTC热敏电阻阻值随温度变化而改变的特性实现测温。
2.水温计算方法
NTC热敏电阻的阻值与温度的准确关系为:
(3-7)
式中R0为温度为T0时的电阻值,T0为基准温度298.15K,即25℃。
为材料系数。
R0与
由热敏电阻生产厂家给出[7]。
由式3-7可得:
(3-8)
由式3-3和式3-4可得;
(3-9)
经测试T0=25℃的计数器寄存器中的值
=16384。
将T0、
、
值代入上式并用摄氏温度表示时水胆温度为;
(3-10)
因为89C52单片机无法进行直接的对数运算,按上述公式计算温度值将是十分困难的。
在这里查表法是一种经常采用的解决办法,即事先计算出所有可能的计时结果所对应的温度值以表格形式写入控制程序,每次转换完毕后查表得出所对应的温度值。
但此种方法需占用较多的程序储存空间本设计采用一次线性插值法对温度与A/D转换结果之间的关系进行分段线性化,以少量单片机能直接进行的运算的组合去逼近目标函数。
图3-11为温度T与计时器计时结果N之间的关系曲线。
图3-11计时寄存器值N与温度T的关系曲线
其中圆滑曲线为实际的T-N关系曲线设计中根据使用要求将曲线在0-90范围内分3段采用图中的3段直线断代替实际曲线。
曲线按式3-10计算出图中各线段端点坐标值为:
N1=1000,T1=90(℃);
N2=7549,T2=43(℃);
N3=20000,T3=20(℃);
N4=56450,T4=0(℃);
分段线性化后温度T的近似计算公式:
,
(℃)(3-11)
,
(℃)(3-12)
,
(℃)(3-13)
为了能在单片机上进行计算,将以上三式进一步变换成如下形式(其中int
为取整函数):
T=97-int(N*8/1000),
(3-14)
T=50-int(N/1000),
(3-15)
T=30-in