侯佳辛,宋广军
(浙江海洋大学 数理与信息学院,舟山316000)
随着科技的进步发展,电子技术已被广泛应用到测量技术中,使得自动精确测量得以实现。在此基础上,由于使用超声波完成测距精度高、受被测介质影响较小,因此得到了更加广泛的利用。
针对工农业生产中由于性质特殊不能使用直接接触式传感器的特殊性质液体,设计了一种基于单片机的超声波液位智能控制系统,不同于单纯的超声波测距仪器,该系统可以通过系统中的能量转换装置实现超声波和电脉冲信号的相互转换,这样就能够在完成对特殊性质液体液面高度测量的同时,由单片机接受并进行传输信号的处理,以完成自动化液位控制。
系统实现的超声波自动测距技术可广泛应用于环境条件较为特殊的工业和农业等行业生产中,对实现液位自动测量及实时控制,提高控制精准度等均有较强的实用参考价值。
本设计选择基于AT89C51 单片机作为中央处理器进行液位控制。如图1所示,整个控制系统由中央处理模块、超声波测距模块、A/D 转换模块、报警模块、显示模块、键盘输入模块以及电机控制模块组成。以AT89C51 芯片为核心,采用超声波传感技术测量液位、单片机控制水泵运作的方式达到控制液位的目的。
图1 液位控制系统框图Fig.1 Block diagram of the liquid level control system
首先系统采用超声波传感技术实时监测液位高度的变化,通过传感器模块将测量结果经A/D 转换处理成电信号后传输到单片机。由单片机控制水泵包括抽水电机和排水电机以及显示和报警装置等发出动作指令:当液位高于规定范围上限时,电机启动抽水水泵抽出液体使液面下降;当液位低于规定水位下限时,电机启动排水水泵注入液体使液面上升,从而实现对液位的实时测量和控制。
从电路角度来说,可以理解为在系统初始化的状态下能够体现出3 个状态,分别是低水位状态、高水位状态和正常水位状态。传感器在检测到低水位状态时会传输给单片机一个高电平信号,与此同时报警系统形成通路,驱动水泵注水。
超声波测距模块是系统设计的核心技术。超声波是以人耳刚能听到的声音频率为零起点,其频率高于20 kHz,是人们听不到的声波,超声波频率可高达1011 Hz[1]。超声波最重要的特点是可以在各种介质中传播,利用超声波的脉冲反射及脉冲反射回波就可以完成相应测量。
反射式超声波测距方法的原理如图2所示。首先使用超声波发射器向外界被测目标发射超声波,并同时开始计时,随即超声波在传播途中会遇到障碍物即目标被测物体导致反射,接收器接收到反射回来的超声波脉冲回波,同时立即停止计时。此时计时器记下了超声波发射到目标被测物体以及从目标被测物体反射回接收器的时间t。超声波的速度即声速为340 m/s,通过计算公式S=Vt/2 就可以算出从超声波发送器到目标被测物体之间的距离。
图2 超声波测距原理图Fig.2 Ultrasonic ranging principle
系统中采用的是ATMEL 的AT89C51 单片机作为主控芯片。它的优点在于灵活的编程设计和内部丰富的I/O 端口,以及控制的准确性[2]。其内部的可擦除只读处理器可反复擦除1000 次,具有很快的数据处理速度和高集成性,芯片内部不仅集成了CPU、RAM、IO 口、Flash 等资源,还集成有串口通信接口、看门狗电路等,可以满足大多数的外设使用。
当前应用比较广泛的超声波传感器有以下几种:通用型传感器、宽频带型传感器、封闭型传感器、高频型传感器[3]。本液位控制系统的设计主要针对工业中特殊性质液体进行超声波测距,在这个特殊条件的约束下,测距需要有特殊针对性的传感器。因此采用封闭型传感器,封闭型传感器由于有封闭空间的保护[4],可以应用在更恶劣的或者特殊的测量环境中,相对于其他类型传感器更加精准。
系统中采用ADC0808 型号的A/D 转换器,其与AT89C51 的嵌入式微型计算机电路的连接如图3所示。输入通道是IN0;ALE 接地,000 地址锁定[5];数字输出通道连接到微型计算机的P0 端口; 打开A/D 转换针START 开始连接微控制器P3.0,确认已完成EOC 引脚的使用;微控制器P3.1 及其连接用于查询ADC0809 转换器的状态;OE 引脚是ADC0809转换器控制数据的输出,与微处理器的P3.2 引脚相连,完成数字信号的传输。
图3 A/D 转换电路Fig.3 A/D conversion circuit
显示电路是由4 个共阴极数字管组成,其发光段按字母顺序连接到微控制器上的P1 端口,每个数字管1、2、3、4 连接到每台控制器上P2 端口的低4 位[6]。
报警电路采用晶体管2N2219 和蜂鸣器一起来组成[7]。晶体管2N2219 收集器连接到P3.3 端口的外拉电阻上,将发射器的声音发生装置连接到主机。当P3 接收低电平时,2N2219 截止,不会触发报警电路。当P3 接收高电平时,晶体管2N2219 就会被导通,电路随之连通,报警装置被激活,蜂鸣器发出报警。
控制电机是否启动以及何时启动的电路结构如图4所示,使用2N2219 晶体管放大器驱动电磁继电器。继电器的两端使用了1N4001 二极管来完成连接,选择此类型二极管是为了在线圈供电时不会由于线圈供电产生的干扰影响到驱动电路。
图4 电机控制电路Fig.4 Motor control circuit
在液位控制系统的软件设计中,主程序主要由3 个函数部分组成,用作将系统归为初始位的初始化函数部分;负责监测液位情况的液位检测函数部分;控制电机在何时以何种方式运行的电机控制函数部分。程序流程如图5所示。主程序实现将整个系统的参数初始化,如报警控制部分系统参数和电机控制部分系统参数完成初始化设置,调试到模拟仿真阶段的初始状态;设定所需液位高度上下限范围及实时显示液位的高度等。
图5 主程序流程Fig.5 Main program flow chart
键盘输入部分同样是控制系统中很重要的组成部分。键盘部分所需的软件系统设计的程序流程如图6所示。
软件设计中键盘输入部分的功能需要使用程序中的扫描查询方式来完成。若想要判断出按键中的哪些部分被按下就需要根据嵌入式微处理器P2 端口的高四位按键是否读入的状态来确定。若其中某一位发生了电平由高到低的变化,则表示此按键被按下;未被按下的按键依然体现的是高电平的状态。
图6 按键处理流程图Fig.6 Flow chart of key processing
基于单片机的超声波液位智能控制系统的设计主要应用于工农业生产中特殊性质的液体进行自动精确液位控制。在充分利用超声波测距技术的基础上,将其与自动化、智能化有效结合,实现实时监测的同时对液体进行摆脱人工的自动化控制调整,将其运用到工农业生产中,会大大减少劳动力,提高工作效率,且保障了控制和检测过程准确性,有广泛的应用前景和使用价值。