PIC16C72单片机在太阳能热水器水位水温控制器中的设计
2014-02-08 来源:dqjsw
为满足落水式太阳能热水器自动控制的要求,设计了一个基于PIC16C72单片机的水温水位控制器。以NTC热敏电阻作为测温传感器,用PIC16C72内置的多路8位A/D转换器把NTC热敏电阻上的压降转换为数字量实现测温。通过非对称多谐振荡器电路把水位传感器的等效电阻转换为振荡信号的频率,然后用PIC16C72内置的计数器测量频率的高低,实现对水位的测量。介绍了控制器的工作原理、完整的硬件电路和功能。该设计省去了温度测量信号调理电路、专用A/D转换和输出译码驱动芯片,具有硬件系统组成简单、可靠性好的特点。
太阳能热水器因具有节能环保、使用费用低廉等优点正快速进入千家万户,与太阳能热水器配套的水温水位控制器十分方便用户的使用,产品市场前景好,被受到广泛重视和研究。但当前使用的水温水位控制器仍存在着许多缺馅,如按键功能设计不合理,需要复用按键,用户操作离不开说明书,操作仪表复杂,给用户带来了许多麻烦;选用的水温传感器参数和测量电路不合理,容易因热击穿损坏;水位传感
器容易结水垢或开裂故障多,使用寿命短,维修成本高。迄今为止,国内外还没有质量过关的水温水位控制仪。针对上述问题,为使控制器的功能更全面实用,操作更简便、直观,提高传感器的可靠性,降低维修成本,笔者结合PIC单片机和NTC热敏传感器技术,设计了一个适用于落水式太阳能热水器的控制器。
1 系统结构和工作原理
该控制器主要是用于测量、显示落水式太阳能热水器水箱中的水位和水温,上下水管道温度,控制电磁阀上水、控制辅助电加热及管道防冻电伴热带等。它主要由单片机PIC16C72、水箱温度和管道温度传感器、水位传感器及测量电路、输入按健、用水水流开关、电磁阀控制、电加热控制和电伴热带控制等部分组成。控制器结构框图如图1所示。单片机PIC16C72作为控制的核心,通过执行程序实现对系统各部分的控制。水位测量模块实现水箱水位的测量,温度测量模块实现储水箱水温、上下水管道温度的温度测量。三路控制输出通过继电器分别控制上水电磁阀、电加热器和防冻电伴热带工作。LED部分显示水箱水位,水箱水温及显示相关参数,按健部分用于选择工作模式、设置相关参数、手动控制上水或电加热。水流开关用于测量用水状态。
图1 系统结构框图
2 系统硬件设计
设计的控制器以单片机PIC16C72为控制核心,控制器的电路如图2所示。单片机PIC16C72内有2个计数器,内置一个五通道8位A/D转换模块,带有2K的OTP程序存储器。这里测量水位的方法是用非对称式多谐振荡器电路把水位传感器的等效电阻大小转换为振荡信号频率的高低,由单片机内置的计数器对频率计数,实现水位的测量。储水箱水温、上下水管道温度的测量方法均是利用热敏电阻与固定电阻串联分压,把温度的变化转换为热敏电阻上压降的变化,利用单片机内的多通道8位A/D转换模块对这二路温度电压信号进行A/D转换后,由程序读取和处理。程序控制PORTB口分时作键盘输入口和显示输出口。
图2 控制器硬件电路
2.1 水位测量
水位传感器的长期可靠性是水位测量的关键。早期曾采用半导体压力传感器来测水位,由于水垢堵塞水压传导管,在应用一段时间后因不适用测量水位环境要求而放弃。这里采用非对称式多谐振荡器电路把水位信号转换为频率信号作为水位测量方法。在图2中,非对称式多谐振荡器由74HC04和电容C5,电阻R3,R19,R22和水位传感器的等效电阻Rw组成。该电路的振荡频率为1/[2.2(R19+R22+Rw)C5].这里是把若干个电阻相串联,在电阻间的引线处引出水位探测电极,作为水位测量传感器。由于水有导电性,水位的变化可引起水位探测电极间的短路,这会改变水位传感器的等效电阻Rw的大小,从而使振荡器频率变化。该信号经非门隔离后由74HC04的引脚6输出到单片机的引脚T1CKI,由PIC16C72片内计数器T1对振荡信号的频率计数。水位传感器的串联电阻参数的选择是有效测量水位的关键因素。通过大量的实验发现,在上述多谐振荡器电路中,当选用电容C5为0.1μF,水位传感器由30,10,10,10kΩ的4个电阻相串联组成水位传感器时,测量水位时传感器的等效电阻值在60~0 kΩ之间变化,多谐振荡器的振荡信号的频率在60~415 Hz之间,测量水位效果较好。水位传感器的结构形式、电极材料类型是影响水位传感器使用寿命的重要因素。用导电硅胶材料做水位传感器的导电电极并采用双电极备份结构,较好地解决了因水位传感器故障经常出现的跑水问题。
2.2 温度测量
下面以水箱水温的测量方法为例说明测温原理。在图2中,RT1是热敏电阻,用来感应水箱水温。电阻R1与RT1组成简单的串联分压电路对5 V的电源电压分压,RT1上的压降为5V·RT1/(RT1+R1),该压降随温度变化而变化,并通过A/D的输入引脚AN0送入PIC16C72A内部的A/D转换器,转换为数字信号,由程序读取。热敏电阻RT1用于测量室外管道的温度,原理与上述完全相同,由引脚AN1把相应的热敏电阻上的压降送入A/D转换器。这里选用负温度系数热敏电阻器(NTC)作测温传感器,NTC测温热敏电阻的主要优点是电阻温度系数大,灵敏度高,响应速度快,能进行精密温度测量,主要缺点是热电特性非线性现象严重。实验发现,在测量温度较高时NTC热敏电阻功耗较大,易造成热击穿,因此应尽量选用阻值较大的NTC热敏电阻和分压电阻。另外,考虑到PIC单片机的A/D输入信号引脚的输入漏电流最大为±500 nA,要保证A/D转换结果的正确,就要求损耗在信号源内阻上的电压不能超过10 mV,这样就要求信号源内阻最大不要超过20 kΩ。经分析和研究表明,在选用玻璃封装的NTC热敏电阻,精度为50kΩ+±0.5%,其B25/50为4050 k±1%,分压电阻选用热稳定性好的精度为20 kΩ±0.5%的金属膜电阻,不需线性补偿,仅使用查表的方法就能满足测温精度±1℃的要求,并较好地解决了热敏电阻的热击穿问题。
2. 3 键盘输入和显示输出
利用PIC16C72的PORTB口的每个I/O引脚可提供量大20 mA的拉电流直接点亮LED工作,并具有软件控制弱上拉的特点,可简化按健输入和显示输出接口电路设计。PORTB口除作按健状态的输入口外,还用于水位、温度显示及工作状态的输出端口,这通过程序设置PORTB口分时作输入口或输出口的方式实现。键盘查询电路由电阻R4~R10及6个按键S1~S6组成,S1~S6分别定义为"升温"、"降温"、"定量"、"定时"、"上水"、"电热"键。通过读入引脚RB0~RB5上的电平可输入按键S1~S6的开关状态。两位数码管SM42052、水位指示灯L1~L7、状态指示灯L8~L14以共阴、动态扫描方式输出显示,由PIC16C72的引脚RC4~RC7输出的4个共阴显示位控电平,控制4个8050三极管Q1~Q4作为两位数码管和两组LED(L1~L7,L8~L14)的位控。由软件译码后的显示码由引脚RB0~RB6上输出直接驱动LED数码管和指示灯L1~L14.按健S1~S6通过1kΩ的限流电阻R16接到PORTC口的引脚RC3,目的在于消除当PORTB作输出口时,按键操作可能对数码管和指示灯L1~L14显示的影响。在查询输入按健S1~S6的状态前,程序先使引脚RC3输出低电平,然后读入PORTB口的电平,输入按健S1~S6的状态。而在PORTB作输出前,程序先设置RC3为输入引脚,然后再从PORTB口的引脚RB0~RB6上输出显示码,由于这时RC3引脚呈输入高阻,按健S1~S6浮空,即使此时有健被按下,也不会把引脚RB0~RB6上输出的高电平拉低而影响显示。L1~L7灯显示水箱水位,两位数码管一般情况显示水箱水温,当按升温或降温键时,闪烁显示设定的水温值;当按定时健时,闪烁显示设定的用水时间值;当出现故障时,则显示故障编码;灯L8~L10分别为定温工作模式、定量工作模式、定时工作模式指示灯;灯L11~L14分别为上水、电热、故障、自来水水压状态指示灯。S1、S2分别为升温键和降温键,用于选择定温模式,并用于改变水温设定值;S3键为定量键用于选择定量模式,并用于预置水量值,定时键S4用于选择定时模式并改变时间设定值,S5为上水键用于开启/关闭自动上水,S6为电热键用于开启/关闭电加热,S7为水流开关,用于测量用户用水状态。
2.4 控制输出电路
系统有三路控制输出,分别是由单片机的RA5、RC1和RC2输出控制三极管Q6、Q7和Q8,分别控制继电器RL1和RL2、RL3和上水电磁阀。继电器RL1和RL2用于控制电加热管对水箱中的储水辅助电加热,继电器RL3控制电伴热带用于上下水管路防冻堵,Q8控制上水阀上水。例如,按"上水"键将RC2置高电平开启上水电磁阀,启动上水。再次按"上水"键,程序使RC2输出低电平,关闭上水电磁阀。低温电伴热带防冻的条件是,室外管道温度等于或低于4℃,程序就将RC1口置高电平,使电伴热带通电工作发热,当管道温度等于或高于10℃时,使引脚RC1输出低电平,以关闭电伴热带电源。
3 功能介绍和软件编程
本系统采用单片机程序控制,功能有水温水量显示、定量上水、定温上水、定时用水、自动上水、辅助电加热、管道自动防冻、溢水自停、用水自动停止上水和停止电加热,低水压判断等功能。主要功能介绍如下:定量上水功能:按"水量"键,定量摸式灯亮,系统进入定量模式,水位灯开始闪烁,此时继续按"水量"键,水位灯开始循环变化,在希望的水量值处停下,水量设定完成。按"上水"键,上水灯亮,开始上水,当水箱中的水量达到设定值时,自动停止上水。定温上水功能:接"升温"或"降温"键,此时定温模式灯亮,表示系统进入定温模式,数码管闪烁显示设定的水温值。继续按"升温"或"降温"键,直到期望值为止。按"上水"键,上水灯亮,启动定温上水功能,在上水过程中,再按一下"上水"键,将关闭上水。定时用水功能:首先按"水量"健,水位灯闪烁显示设定的水量值,继续接水量键直到欲设定的水量值;再按"升温"或"降温"键,数码管闪烁显示设定的水温值,继续按"升温"或"降温"键,直到欲设定的值;最后再按"定时"键,此时数码管闪烁,此时定时模式灯亮,指示当前为定时工作模式,继续按"定时"键,直到显示的数值为欲设定的用水时间(1~24 h)。在定时模式下,当日照较好,太阳能已使水温达到设定温度时,不启动电辅助加热;当日照不足时,控制器会计算出合适的启动电辅助加热的时机,真正做到光与电自动互补,既节电又保证全天候使用。如要取消定时功能,按一下"水量"键或"升温""降温"键就离开定时模式,进入定量模式或定温模式。定温电辅助加热功能:当水温低于设定值时,按"电热"键可在开启/关闭电加热间切换。防干烧功能:当水温低于设定值,水箱中水位不足1/4时,即使按电热键也不能启动电加热。溢水自停功能:上水15min后,水位无变化,将自动关闭上水。另外还设计有用户用水自动推迟上水、停止电加热等功能,水箱无水15 min后自动启动上水功能。系统程序由主程序、多个功能子程序及一个中断服务程序组成,程序流程如图3和图4所示。程序用PIC汇编语言编写完成,程序代码近2kB.
图3 主程序流程图
图4 中断程序流程图
4 结束语
本设计通过在测温电路中采用较大阻值的分压电阻和NTC热敏电阻,有效地降低了NIC热敏电阻的工作电流,较好地解决了NTC热敏电阻的热击穿问题。采用自制的备份电极的水位传感器,成倍地延长了水位传感器的使用寿命。选用PIC16C72为控制芯片,外围电路简单、成本低、抗干扰性好。设计的定量、定温、定时3种工作模式,功能全面实用,能满足家庭太阳能热水器多样化控制的要求。按键操作简明,无按键复用,一目了然,用户容易掌握和使用,该水位水温控制器特别适用于家庭落水式太阳能热水嚣的自动控制。