微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的智能感温水表的设计

基于单片机的智能感温水表的设计

时间:02-08 来源:互联网 点击:

摘要:为了克服现有的水表在技术上不能区分冷热水的不足,设计了一种新型实用的智能感温水表。系统采用双干簧管设计了流量传感器,提高了测量精度。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所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top