基于串口控制的超声波液位检测系统研究
2013-05-08李洪涛
李洪涛, 刘 欣
(1.华中光电技术研究所 光电技术研究部,湖北 武汉 430223;2.华中科技大学文华学院 机械与电气工程学部,湖北 武汉 430074)
0 引言
液体液位的准确测量是实现生产过程检测和实时控制的重要保障,也是实现安全生产的重要环节。液体罐内液位测量的方法有很多种,其中超声波传感器由于结构简单、体积小、费用低、信息处理简单可靠,易于小型化与集成化,并且可以进行实时控制,所以超声波测量法得到了广泛的应用。超声波液位检测系统,利用超声波传感技术的原理,采取一种非接触式的测量方法,能够实现对工业系统中液位或物料位的检测;而且超声波具有很好的指向性和束射特性,人耳听不见,一般不会对人体造成伤害。监控工程实施方便、迅速、易做到实时控制,而且测量精度又能达到工业实用的要求,所以有广泛的应用前景。
1 超声波测液位系统总体方案
利用单片机为控制核心,设计一种对供液体容器液位进行监控的系统。根据监控对象的特征,要求实时检测液体容器的液位高度,再由单片机控制固态继电器的开断进行液位的调整,最终达到液位的预设定值。检测值若高于上限设定值时,要求报警,断开继电器,控制泵停止供应液体;检测值若低于下限设定值,要求报警,开启继电器,控制泵开始供应液体。现场实时显示测量值,从而实现对液体容器液位的监控。当然对每一个液位状态都有相应的LED灯显示及其当前工作状态的液晶显示。超声波测液位系统工作原理框图如图1所示。
图1 超声波测液位系统工作原理框图
2 超声波测液位系统的硬件设计
液位控制系统的硬件主要包括单片机系统、RS232串口通信电路、液位探测传感电路、LCD显示电路、继电器控制泵加液体电路等组成。
超声波发射电路是由超声波探头和超声波放大器组成。超声波探头将电信号转换为机械波发射出去,而单片机所产生的40kHz的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计选用LS04芯片进行信号放大。
超声波接收电路主要是由集成电路CXA芯片电路构成的,CXA芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,当即单片机停止计时,并开始去进行数据的处理。
C-SR04超声波集成模块是将超声波发射探头、超声波接收探头、CXA芯片电路,LS04芯片放大电路集成到的一起的一个超声波集成模块。C-SR04超声波集成模块如图2所示。
图2 C-SR04超声波集成模块图
本系统的液位显示部分采用 LCD液晶显示模块,具有体积小、功耗低、使用方便等特点,其与单片机的连接方式如图3所示。
图3 LCD液晶显示模块
3 超声波测液位系统的软件系统设计
软件设计分为两部分,主程序和中断服务程序。主程序完成初始化、超声波发射和接收、温度测量、距离计算、结果显示等主要工作。中断服务子程序主要完成串口通信值得读取。系统软件总体设计流程图如图4所示。
图4 总体软件设计流程图
主函数分为初始化部分和一个大循环,程序初始化部分主要完成定时器1、2的初始化、串口的初始化、液晶显示的初始化、中断的开启。主程序中的大循环通过函数的调用主要完成超声波传感器的发射接收、测距计算、液晶显示、串口通信、按键扫描等功能。
LCD液晶显示函数主要包括液晶忙状态检测、液晶初始化函数、写指令函数、写数据函数。在使用液晶前需液晶显示器进行初始化操作,再检测是否为忙状态最后才写指令或数据。
超声波测距程序主要包括超声波信号发射与接收、计时器的开启、距离计算显示及其串口数据的发送。
按键程序主要实现运行模式转换和水泵开关按键功能,程序主要包括按键扫描、模式转换函数或继电器开关函数、和显示程序。
中断程序主要实现PC与单片机实现同步控制的功能。中断程序主要包括中断类型选择、标志位清0、数据的读取、模式转换、显示函数。
4 系统调试分析
硬件电路制作完成并调试好后,便可将程序编译好下载到单片机运行调试。超声波测液位仪的制作和调试都比较简单,其中超声波发射和接收采用集成模块CSR04,中心频率为40kHz。连接完成后,按下单片机电源键,将模块垂直对着某一平面,与所测平面间不能有物体遮挡,移动模块即可看到液晶上的液位值变化。测距模块的最远测距范围可达到3m,但超过2m误差偏大。所以在软件设计中,设置的容器的高度为1m,实验时,若模块距离平面1m,则此时液晶显示液位为2m。
(1)实验数据结果,详见表1。
表1 实验数据统计
(2)误差分析。由于受环境湿度温度等的的影响,测量值总是与实际值有一些偏差,但最大误差不超过3cm。经分析有如下原因:①超声波速度随温度变化而变化,虽加了温度补偿但效果不明显;②指令运行需要占用一段时间,影响测量结果;③人为操作在测量时产生了误差,如模块没有平稳摆放,测量面不够大不够平整等。
5 结论
(1)距离越远,误差越大,但最大不超过3cm。
(2)指令运行需要占用一段时间,影响测量结果,产生误差。
(3)单片机运行时偶尔会遇到死机的现象,经分析可能是程序编写不够严密,修改后有一定改进。
(4)测量时模块摆放尽量平稳,测量面尽量平整,可减少人为操作产生误差。
[1]曹建海,路长厚,旭东.基于单片机的超声波液位测量系统[J].仪表技术与传感器,2004,1.
[2]Peter Hauptmann,Ralf Lucklum,Bernd Henning.Ultrasonic Sensors for Process Control.Sensors Update,1998,3.
[3]杨兴瑶,张益清,等.新编使用电子电路500列[M].北京化学工业出版社,2006.
[4]J.Otto.Sensors for Distance Measurement and Their Applications in Automobiles.Sensors Update,2002,10.
[5]姚福安.电子电路设计与实践[M].济南:山东科学技术出版社,2001.
[6]李冬梅.外液位计量仪表技术发展动向[J].仪器仪表用户,2002,3.
[7]周玲.超声波外测液位检测系统设计与实现[M].太原:中北大学,2006.
[8]黄勇.超声波液位远程监控系统研究[M].重庆:重庆大学,2004,5.
[9]贾伯年,俞朴.传感器技术[M].南京:东南大学出版社,2000.
[10]黄建兵.超声波精确测距的研究[M].南京:南京理工大学,2004,2.