0引言
随着人民生活水平以及环保意识的不断加强,越来越多的消费者倾向于选择太阳能热水器,带辅助电加热功能的太阳能热水器尤其受到市场的青睐[1?3].带辅助电加热功能的太阳能热水器可以根据用户设定的温度自动电加热,要完成这一功能的首要前提是必须先准确测量热水器的水温。目前测量水温的方法有:采用温度传感器DS18B20、采用热敏电阻并通过电压频率转换电路将电阻值转化为频率进行测量等方法[4?5].采用温度传感器DS18B20 测量水温,接口电路简单,但价格较贵。采用热敏电阻并通过电压频率转换电路测量水温,由于引入电压频率转换电路,增加了系统成本。作者在本文中提出了一种采用热敏电阻测量温度的简单易行、价格低廉的方法,且占用极少单片机I/O接口。这种方法也可应用于其他测温系统中。
1 太阳能热水器温度测量电路及原理
太阳能热水器温度测量电路如图1所示,图1中的热敏电阻是是负的温度系数热敏电阻(10 kΩ/25 ℃),即随着温度的增加,电阻值减小。通过识别电阻的大小,达到检测温度的目的。PA0,PA4 和PA5 为HT48R54A 单片机的I/O 口,PA0,PA4和PA5可以根据实际需要,通过软件指令实时设置其输入/输出状态。
图1的测温原理如下:
首先,软件设置PA0和PA5为输入口,设置PA4为输出口,且使PA4输出高电平,1 kΩ固定电阻与104电容组成充电回路,实时读取PA0状态,当PA0为低电平时,充电时间累加,当PA0为高电平时,104电容充电满,停止充电时间累加,此时可获取充电时间Tf ;同理可获取热敏电阻与104 电容组成的充电回路的充电时间TX .
RC 电路充电时间计算公式为T = RC ,设固定电阻阻值为Rf ,热敏电阻阻值为RX ,充电电容为C,则有:
由(4)式可以求出热敏电阻阻值RX ,根据热敏电阻阻值大小,可以获取对应温度。
2 系统软件设计
2.1 获取充电时间的软件设计
根据测温原理,温度测量的关键是获取固定电阻与104电容组成充电回路的充电时间Tf 、获取热敏电阻与104电容组成充电回路的充电时间TX .获取1 kΩ固定电阻与104电容组成充电回路的充电时间Tf 的软件流程图如图2所示。
2.2 温度表格的生成
根据热敏电阻温度与电阻的一一对应关系,通过以下算法生成两字节16进制温度表格代码。设热敏电阻阻值为RX(单位:kΩ),固定参考电阻阻值为Rf(单位:kΩ),设RX Rf = A.B ,其中A 为整数部分,B 为小数部分。
再将0.B 放大256 倍,然后除以Rf ,即(0.B × 256) Rf = C.D ≈ E ,其中C 为整数部分,D 为小数部分,E 为四舍五入的整数。将A ,E 都转换成16进制。高字节为A ,低字节为E .两字节16进制代码为AE .如25 ℃时热敏电阻为10 kΩ,参考电阻为1 kΩ,两字节16进制代码生成如下:
由于热敏电阻外接很长的导线,故补偿20 Ω电阻。
因此25 ℃时热敏电阻对应的两字节16 进制代码为0A05H.
2.3 查表程序设计
单片机获取Tf ,TX ,依照本文2.2节算法,单片机求出实际测量的两字节16 进制代码,设求出的代码为FG ,设热敏电阻温度代码表格从0 ℃开始,查表程序流程图如图3所示。
3 结语
本文设计了一种基于HT48R54A单片机的太阳能热水器温度测量系统,该系统采用RC充放电式温度传感器测量电路,软件获取固定电阻与电容组成充电回路的充电时间、获取热敏电阻与电容组成充电回路的充电时间,建立温度表格,通过查表方式可以检测当前的温度。
此系统结构简单易行,价格低廉,且占用极少系统资源。