基于单片机技术开发的水箱液位控制器

2018-09-03 03:45周琳博
水利科技与经济 2018年8期
关键词:数码管测距液位

周琳博

(哈尔滨市水务科学研究院,哈尔滨 150001)

1 概 述

随着工业生产日趋自动化,对液位检测技术的要求也越来越高。虽然水箱液位控制器的功能日益趋向于完善,然而水箱液位控制器的许多相关理论与技术仍在不断发展。本文采用以STC89C52单片机为控制核心,应用超声波测距模块HC-SR04,实现了对容器高度为400 cm水箱内的液位高度进行非接触测量。

2 超声波传感器液位测量方法介绍

超声波液位测量其实就是要测量超声波测距仪到液面的距离,如果超声波测距仪安装在底部,测得的距离即为液位高度;如果超声波测距仪安装在液面上方,需要通过换算来算得液位高度(容器总高度减去测得的距离即为液位高度)。本文选择把测距仪安装在液面上面,测距仪安装相对方便些。超声波传感器液位测量方法框图见图1。

图1 超声波传感器液位测量方法框图

由图1可知,h=H-S,式中S为超声波测距模块到液面的距离,可经测量得到;H为超声波探头到容器底的距离,需要提前测定;h即为所要测的液位高度。那么可以看出,测量液位的关键步骤是对模块到液面距离的测量,核心理论是超声波测距原理。

h=H-S

(1)

3 水箱水位控制器系统总体结构

单片机是整个系统的核心部件,协调各部件的工作。单片机控制发射模块产生40 kHz的频率信号来驱动超声波传感器,每次发射包含若干个脉冲(发射持续约0.15 ms),当第一个超声波脉冲发射后,计数器开始计数,在检测到第一个回波脉冲的瞬间,计数器停止计数,这样就能够得到从发射到接收的时间t。最终单片机利用式(1)计算出被测距离,然后与系统预设距离比较,如果小于预设最低液位或者大于预设最高液位,单片机启动报警电路通知工作人员进行人为干预。完成这些步骤进行第二次超声波发射。在这个过程中,单片机LED四位数码管显示电路不断更新液位值。

整体电路的控制核心为单片机STC89C52。超声波发射和接收电路中均对相应信号进行整形及放大,以保证测量结果尽可能精确。超声波收发模块通过TRIG、ECHO、VCC、GND 4条口线连接到单片机实现超声波的发射和接收。

该测距装置是由超声波模块、单片机、LED显示电路组成。传感器输入端与发射接收电路组成超声波测距模块,模块的输入输出端与单片机相连接,单片机的输出端与显示电路输入端相连接。

其总体设计框图见图2。

图2 水箱水位控制器系统总体原理框图

4 硬件电路的设计

4.1 超声波测距模块

为了提高测量结果的准确性及考虑到人为手动操作的不确定因素所带来的误差风险,本设计最后选用HC-SR04超声波测距模块。HC-SR04超声波模块有两个探头,其中一个(TRIG)探头与单片机P36端口连接负责发射并接收超声波,另一个(ECHO)探头与单片机P37端口连接的作用是输出回响。HC-SR04超声波测距模块可提供2~400 cm的非接触式距离感测功能;测距精度可达高到3 mm;模块包括超声波发射器、接收器与控制电路。

1) 实物图及设计中的接口电路见图3。

图3 超声波模块实物图及接口电路

2) 电气参数见表1。

表1 电气参数

4.2 数码管显示电路的设计

本文的显示电路是四位一体的共阳极数码管及相应的驱动电路组成,段码由单片机的8位P0端口送到数码管中显示时间信息,再由单片机P2端口的低四位控制位选信号。

本系统实现的是液位数值显示及报警阈值的上下限显示功能,即分别在四位数码管的3个显示界面中进行显示信息的手动操作切换,并且可以通过第一个独立按键(K1)进行设置功能的控制,再通过第二个独立按键(K2)进行数值的加一控制,通过第三个独立按键(K3)进行数值的减一控制,这使本设计更具实用性、灵活性。本文选用LED数码管显示,连接电路图见图4。

图4 LED数码管显示电路图

4.3 水泵驱动控制电路的设计

由于控制器引脚输出电流过小,无法直接驱动水泵进行工作。所以,本文采用继电器控制电路来驱动抽水泵和注水泵进行工作。该继电器控制电路采用低电平控制信号继电器的吸合,高电平控制信号继电器的断开。在自动控制模式下。当液位高度高于设置阈值时,单片机P16端口立即输出低电平信号,继电器JDX1立即吸合,抽水泵启动,进行排水;当液位高度低于设置阈值时,单片机P17端口立即输出低电平信号,继电器JDX2立即吸合,注水泵启动,进行注水;当手动按键K4按下时,单片机P16端口也会输出低电平信号,继电器JDX1立即吸合,抽水泵启动,进行排水。本设计的继电器控制电路图见图5。

图5 继电器控制电路图

4.4 软件程序的设计

本系统具体工作过程如下:由超声波传感器进行容器内液位高度测量,将测量得到的数据送入STC89C52 单片机进行处理,四位数码管显示实时的液位数值,并与程序中设定的报警液位上下限值进行比较。若液位高于设定的上限值,蜂鸣器发出报警,同时单片机控制继电器带动抽水泵工作,进行排水;当检测到液位下降到设定液位上限值以下之后,抽水泵自动停止转动,蜂鸣器不响,数码管照常显示即时液位;若液位低于设定的小限值,蜂鸣器发出报警,同时单片机控制继电器带动注水泵工作,进行注水;当检测到液位上升到设定液位下限值以上之后,注水泵自动停止转动,蜂鸣器不响,数码管照常显示即时液位。该系统主程序流程图见图6。

图6 主程序流程图

5 结 语

本系统可以完成水箱水位控制器的测量与显示、容器高度为400 cm的液位自动控制及越限报警等功能,通过软件程序设置液晶的测量范围50~300 cm,测量精度可以到达0.5 cm。当液位高度高于设置阈值上限(即300 cm),抽水泵自动启动进行排水;当液位高度低于设置阈值下限(即50 cm),注水泵自动启动进行补水。本系统具有结构简单、灵敏度高、工作稳定等诸多特点。

猜你喜欢
数码管测距液位
微课教学设计之“数码管动态显示”
类星体的精准测距
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于STM32燃气热水锅炉液位控制系统设计与实现
石油储罐液位开关的应用分析
浅谈超声波测距
基于PSOC超声测距系统设计
宝马530车冷却液液位过低报警