基于单片机的智能感温水表的设计
扫描二维码
随时随地手机看文章
摘要:为了克服现有的水表在技术上不能区分冷热水的不足,设计了一种新型实用的智能感温水表。系统采用双干簧管设计了流量传感器,提高了测量精度。AT89C52单片机作为主控芯片,系统工作时,温度传感器DS18B20采集水温信息传入单片机,并与设定的温度值比较,当判断水温高于设定值时,系统开始统计流量传感器输出的脉冲个数,并以此计算当前流量。流量数据通过单片机输出在液晶显示屏上,同时用E2PROM存储,进行掉电保护。经过测试,系统对温水计量精确,具有良好的稳定性,市场应用前景广阔。
关键词:AT89C52单片机;干簧管;DS18B20;液晶显示屏;E2PROM
0 引言
现用的检测热水流量的方法是在热水或暖气管道的入户端安装一个水表,直接检测流过的流量,根据记录的流量来计费。但是,热水不可能一直使用,闲置在管道中的热水会逐渐冷却,每一次间隔较长的使用,用户都要事先放掉一些凉水。每一个采暖季开始前,都需要循环大量的冷水来试验管道的可靠性,然后才会逐步提高水温。而这些放掉或循环的冷水却需要用户按热水的价格来承担费用,这显然不合理。为了解决现有技术上的缺陷,本文对传统的水表做了改进,采用AT89C52单片机作为主控芯片,由温度传感器DS18B20实时采集管内液体温度信息。当温度超过设定阈值时,单片机启动流量计算。同时,系统增加了显示端口和存储端口,可实现数据的实时显示和数据保存。
1 系统总体设计
智能感温水表由信号采集、信号处理、计算以及数据显示、记录3部分组成,系统框架图如图1所示。
水管中的温度传感器实时采集液体温度信息,传给AT89C52单片机。单片机判断传来的温度值大于阈值时,启动流热水量计算。流量传感器是由安装在管道内的叶轮和一对干簧管实现的。当热水流过叶轮时,叶轮转动,通过干簧管形成电脉冲信号,单片机统计脉冲数即可计算出当前流量。计算的结果通过串口液晶显示模块显示出来。同时,所得的数据采用I2C总线,存储到E2PROM中,进行掉电保护。
2 系统硬件设计
硬件电路的搭建以AT89C52单片机为信号处理核心,P0口和P1口控制显示电路(1602B),P2口控制温度传感器(DS18B20)和双干簧管(MARR -5)的信号采集,P3口负责E2PROM(CAT24WC0X)存储。系统的硬件电路示意图如图2所示。
2.1 流量传感器的设计
水管中的液体流量信号的采集是通过双干簧管传感器实现的。系统采用了MARR-5干簧管,这是一种磁敏开关,其结构如图3所示。包含2片软磁性材料做成的磁簧片,被封装在充有惰性气体的玻璃管里,磁簧片间留有空隙,构成常开触点。
当永久磁铁靠近干簧管时,簧片的接点就会感应出极性相反的磁极。由于磁极极性相反而相互吸引,当吸引的磁力超过簧片的抗力时,分开的接点便会吸合。
在热水管道中安装一个可以自由转动的叶轮,水的流动推动叶轮不断旋转,流量越大,叶轮的转速越高。叶轮轴向安装一个计数转盘,一片永磁铁固定转盘上,干簧管固定安装在计数转盘附近。整个传感器的组成示意图如图4所示。
转盘每转一圈,永磁铁就经过干簧管一次,即在信号端产生一个计量脉冲,单片机计数器统计计量脉冲即可求出流量。但是使用单个干簧管易受水锤现象、人为电磁干扰等外界因素的影响,产生较大的计量误差。所以,感温水表在设计流量传感器时采用了双干簧管传感器(见图4)。当检测到干簧管A吸合时,先记录下来;再检测干簧管B,只有检测到干簧管B吸合后才认为此次采集的计数脉冲有效。
2.2 温度传感器
水管温度传感器采用了Dallas公司的DS18B20传感器,测量范围:-55~+125℃,分辨率12位,满足设计要求。DS18B20以计数器原理工作,可直接向单片机输出数字量,不需要后加加A/D转化模块。它采用单总线方式,仅需一根信号线与单片机连接即可传送串行数据,且不需要外部元件。测温结果的数字量位数为9~12位,并可编程选择。控制简单,工作可靠。
2.3 液晶显示电路和存储电路
感温水表信息显示模块采用液晶显示屏(LCD)显示。由于该水表显示的内容包括少量数字和字母,段式LCD1602B就可以满足要求,且价格低廉。它内部集成有LCD控制器、LCD驱动器和RAM,因而可方便显示数据的编程。设计中,1602B采用3~4线串行数据输入,直接与单片机P0口相连。由于串行接口方式节省了所需的口线和系统资源,因而使系统具有较高的资源利用率。
数据存储电路采用I2C总线的E2PROM存储器CAT24WC04。CAT24WC04是串行的E2PROM存储器,其存储容量为4 KB。图2中草SCL为时钟线,SDA为数据线。当前时刻的流量数据会保存在CAT24WC04中,可保证掉电时,数据不丢失。
3 系统软件设计
3.1 软件总体设计
系统的软件设计采用了模块化的设计方法,主程序通过调用各子程序模块来实现相应的功能,其程序流程如图5所示。
系统初始化程序完成单片机端口的功能选择及各寄存器、LCD显示模块的初始化。温度传感器模块检测当前水管中液体温度,并与设定的阈值(85℃)相比较,当温度高于阈值时,流量传感器模块计算当前流量。LCD显示模块程序完成流量显示,存储模块存储当前流量值。
3.2 流量信号的计算
流量传感器中的干簧管采用单计数脉冲输入,2个100μF的电容用来消除双干簧管闭合时产生的抖动。如图4所示,转盘每转一圈,永磁铁经过干簧管附近一次,即产生一个计量脉冲。双干簧管的情况下这要计数脉冲有效就对流量进行计算。具体的程序流程如图6所示。
当检测到干簧管A的脉冲信号是并不直接开始计算,还要检测干簧管B得脉冲信号。当干簧管B的脉冲信号也被检测到的时候,认为此次计数脉冲有效,并记录,与以前的检测脉冲数求和。
在室温下进行20次测量实验,传感器管道直径50 mm。实验数据得到该流量传感器平均一次有效计数脉冲对应0.64 L的液体流过设计管道。
若当前记录的总的脉冲数为N,则此时的流量Q=0.64N(单位:L)。
3.3 温度测量
感温水表的温度测量系统的温度传感器是DS18B20,硬件电路简单、稳定。但是这是以牺牲软件为代价的,在编程时必须严格遵守DS18B20工作时序的要求。基于DS18B20的温度信号检测流程如图7所示。
先由主机给DS18B20发一个复位脉冲,在DS18B20发回响应脉冲给主机后,主机再发读ROM命令(代码33H),并发一个15μs左右的脉冲,接着再读取DS18B20序列号的一位,并用同样方法读取序列号的每一位。
4 结语
本文所设计的感温水表,以AT89C52单片机为核心控制芯片,加入了温度传感器、流量传感器、外围显示电路和E2PROM存储设备。
设计提出的采用DS18B20传感器采集温度信号的设计方案,克服了普通水表不能分辨冷热水的缺陷,适合用于我国各种不同的区域环境。同时,其计量准确度符合国家标准要求,有良好的实用价值,具有广阔的市场前景。