基于超声波传感器的水位自动控制系统.pdf
基于超声波传感器的水位自动控制系统 基于超声波传感器的水位自动控制系统 李 严 1,张 民2 1. 青岛理工大学计算机工程学院 266033;2. 青岛理工大学自动化工程学院 266033 摘要通过测量传感器的信号频率来获取液面高度,由单片机系统数据处理模块、A/D 数 据输入模块、485 通讯模块、液位控制及报警模块组成。由键盘设定液位,主机可以显示和 设定从机的液位,再通过传感器和 A/D 转换把当前液位传到控制器与设定值比较;单片机 控制电磁阀调节液位。最后给出实际测试结果与数据分析。 关键词超声波传感器;ICL7135;液位控制;OCM4X8C 中图分类号TP273.5 文献标识码B Design of Automatic Control System of Liquid Level Li Yan1, Zhang Min2 (1. School of Computer Engineering, Qingdao Technological University 266033; 2. School of Automation Engineering, Qingdao Technological University 266033) Abstract The liquid level altitude is get by surveying signal frequency of ultrasonic sensor and mainly consists of the part of data processing module; A/D data module, 485 communication module, liquid level control module and warning module. By setting the liquid level according keyboard, the mainframe is able to show and set the level of inferior controller. Comparing actual level which is transed by the sensor and A/D transfer, SCM controls the electromagnetic valve to modulate liquid level. At the end actual test results and data analysis are showed. Key words ultrasonic sensor; ICL7135; liquid level control; OCM4X8C 0 引言 目前国内在液位自动控制方面缺少长期可靠的使用范例, 还没有适用于液位测量和自动 控制的定型产品。因此,开展液位自动控制的研究工作十分必要[1]。 系统为一个水位监测与控制装置,通过键盘可以设定瓶内液位(0~25cm内的任意值) , 并通过控制电磁阀(或类似于电磁阀的装置)使瓶内的液位达到设定值,液位超过25cm或 低于2cm时会发出警报。显示器能实时显示当前液位状态和瓶内液体重量以及阀门状态。 1 系统功能概述及框图 本设计利用 MCS-51 单片机结合数字芯片、模拟电路,完成对水位的检测和自动控制。 基本工作流程为 主机通过键盘设定自己和从机的液位, 超声波传感器测出当前水位对 应的电压值,再经过 ICL7135 模数转化送入控制器与设定值比较,单片机通过控制电磁阀 调节主机液位,并把设定值与当前值显示在 LCD 上;主机控制器通过 485 通讯对从机控制 器传输设定值,从机控制器也可以如主机控制器一样对液位进行控制,并通过 LCD 显示主 机给定值与当前液位值;并利用 485 通讯把从机当前液位传送给主机显示出来。 系统由单片机系统数据处理模块、A/D 数据输入模块、485 通讯模块[2]、液位控制及报 警模块及键盘和显示模块等几部分组成[3]。系统总框图如图 1 所示。 2 方案论证与比较 考虑系统的要求,在对器件的选择过程中,侧重于对传感器和模数转换芯片的选择。 2.1 传感器 系统设计过程中,主要对以下三种传感器进行了选择比较。 方案一压力传感器 目前的液位压力传感器大部分是投入式静压液位变送器, 而投入式静压液位传感器只有 参考大气压才能进行准确测量, 然而连接电缆中的通气会受到环境的影响, 造成气管内壁冷 凝,结露。露水滴到电子器件和传感器上,会影响精度或者输出漂移 [4]。同时,结露过快, 变送器的使用寿命也会大大缩短。 此压力传感器容易受到环境的影响而造成测量不准确, 并 且安装不方便。 方案二压阻式压力传感器 压阻式传感器 [4]是用集成电路工艺直接在硅平膜片上按一定晶向制作扩散压敏电阻; 硅 平膜片在微小变形时有良好的弹性特性, 当硅片受压后, 膜片的变形使扩散电阻的阻值发生 变化;此变阻器容易受外部环境的影响,如温度,从而造成测量不准确,而且体积一般比较 大,不易安装、不易携带;一般其精确度也比较低。不能满足设计的需要,所以不选择。 方案三超声波传感器 超声波传感器是工业领域内第一款在产品上带有按键设定功能和自诊断功能的小型传 感器。它虽然体积小,但是具有其它大型传感器所具有的功能,安装使用方便而且不受被测 物体的颜色影响,有许多特设功能,如具有自诊断 LED 显示和按键设定功能、温度补偿 功能、 可选择模拟量或开关量输出等; 其供电电压为 10~30V, 测量范围为 30mm~300mm, 输出电压 0V~10V,输出电流为 4mA~20mA,最小负载阻抗 2.5 欧,精度可达到 0.5mm, 外形分为直线型和直角型。感应口径为 18mm [4]。 超声波传感器所具有的条件满足设计所需要 0~25cm 的液位控制,以及液位误差不超 过0.3cm 的要求,并且解决了安装不方便的难题。所以本设计选择了精度高,体型小的超 声波传感器。 2.2 A/D 转换器 所采用的 A/D 转换器的精度和性能直接影响后端单片机接收数据的精度,在此我们对 以下两种 AD 转换器进行比较分析。 方案一采用 8 位 ADC0809 A/D 转换器 [5] ADC0809 是常用的 8 位 A/D 转换器,属逐次逼近型,ADC0809 由单一5V 供电,片内 含带有锁存功能的 8 路模拟电子开关,可对 0~5V 8 路的模拟电压信号分时进行转换,完 成一次转换约需 100us,所以速度较快,但是 ADC0809 芯片分辨率低,精度不够,不能满 足本系统要求,不予采用。 方案二采用 4 位半双积分 A/D 转换器 ICL7135 [6] ICL7135 是应用广泛的 4 位半双积分 A/D 转换器, 动态 BCD 码输出的积分型 A/D 转换 器。其特点是精度高、极性自动转换输出、自动校零、单一电源工作、动态 BCD 码输出。 由于双积分方法的二次积分时间比较长,所以 A/D 转换速度慢,通常为(3~10)次/s, 此外,对周期变化的干扰信号积分为零,抗干扰性能也比较好。在同等精度的情况下,价格 图 1 系统框图 Fig1. Scheme of system 从机n电磁阀 主机电磁阀 主机键盘 主机 控制器 主机传感器 主机显示器 电源 液位 液位 从机n 控制器 从机显示器 从机传感器 485通讯 从机键盘 电源 ICL7135 ICL7135 低于逐次逼近式 A/D 转换器,因而在对速度要求不高的场合,更宜于采用这类 A/D 转换器。 考虑系统的要求,本设计采用控制精度较高的 ICL7135 A/D 转换器。 3 硬件电路及软件设计 本设计的硬件电路包括最小系统电路、液位控制及报警电路、ICL7135 信号采集传输电 路、键盘和显示模块等 [7]。 3.1 最小系统(电源供电电路与 I/O 扩展及选通电路) 本设计使用的最小系统板是以 80C52 单片机为内核,并且具有良好的扩展性。CPU 外 接 11.0592MHz 的晶振, 主要由 74LS373 锁存电路、 74LS138 译码电路以及按键、 显示器件、 ICL7135 及其外围典型电路组成,并用 8255 外扩了 I/O 接口。最小系统电路如图 2 所示。 本电路需外接一个 AC220/9V 的变压器,变压器的二次侧通过整流滤波后输入 CW7805 便可得到5V 电压,此电压做最小系统的电源。 系统中通过8255外扩了PA、PB、PC共24个I/O口,以便作为系统的输入输出通道。用 74LS138的输出作为各个芯片的译码选择端,除最小系统中使用的Y0~Y3外,还有Y4~Y7 可供其它扩展使用。 3.2 液位控制及报警电路 本设计的液位控制电路是一闭环电路,传感器把液位传给单片机与设定值比较,单片机 通过对电磁阀的控制来控制液位。 用 9V 电源对继电器供电, 使用了 24V 电源对传感器供电, 用 220V 交流电对电磁阀供电; 在报警电路中, 利用 9V 电源对蜂鸣器供电, 当液位超过 25cm 或低于 2cm 时发出报警 [8]。 在供水回路中, 用电动机进行循环供水, 保证程序的连续运行[9]。 3.3 ICL7135 信号采集传输电路 本电路由一个小型集成电路来实现,采样后的信号经过电位器送到 ICL7135 进行处理, 将处理后信号直接送到单片机最小系统 [10]。ICL7135 量程为 0~2V,基准电压由 MC1403 输 出(2.5V)分压获得 1V 电压。 HC240 是八位缓冲线/线驱动器,内含八个具有三态输出反相缓冲器。三态输出的反相 缓冲器,输出允许控制端(ENA、ENB) ,每一个 EN 控制四个缓冲器,1A、2A 数据输入, 1Y、2Y 输出。输出分别送出个、十、百、千、万位。 图 2 最小系统电路图 Fig2. Smallest system circuit VCC A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 VCC 16 GND 8 U2 LS138 VCC C201 30p C202 30p JZ 6M D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 VCC 20 GND 10 U1 LS373 GND1 C223 20p GND EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 ALE/P 30 TXD 11 RXD 10 VCC 40 GND 20 U0 89C51 1 2 3 U3A LS00 GND VCC AL R2 10k AL D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 WR RD A0 A1 A2 A3 A4 A5 A6 A7 WR RD A3 A4 A5P10 P11 P12 P13 P20 P21 P22 P23 T0 T1 RXD TXD RST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 D1 D0 D2 D3 D4 D5 D6 D7 A6 A7 GND VCC Y4 VCCVCC Y4 D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 PA0 4 PA1 3 PA2 2 PA3 1 PA4 40 PA5 39 PA6 38 PA7 37 PB0 18 PB1 19 PB2 20 PB3 21 PB4 22 PB5 23 PB6 24 PB7 25 PC0 14 PC1 15 PC2 16 PC3 17 PC4 13 PC5 12 PC6 11 PC7 10 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 6 26 7VCC GND U3 8255 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RST Y3 VCC GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 接7135 VCC GND Y0 Y1 Y2 Y3 B1 B2 B3 B4 B1 B2 B3 B4 D1 D2 D3 D4 D5 D1 D2 D3 D4 D5 接LCD HC157 是四路二选一开关, 1 为选择输入端, S 为低电平时, 选择 A 输出; S 为高电平时, 选择 B 输出 ICL7135 的 BCD 码的位选通输出端 D1-D5 分别接 8 位可编程逻辑接口电路 8255 的 PA0~PA3 和 PB0~PB4。 CPU 可读取各个位的状态并判断, 从而在 ICL7135 的 B1~B8 输出 端读取 BCD 数据。ICL7135 信号采集传输电路如图 3 所示。 3.5 软件设计 软件部分主要是利用 51 系列单片机作控制器,传感器输出电压进行采样,将采样值与 设定值比较,单片机对电磁阀控制来调节液位,主机通过 485 通讯给分机设定数值,分机控 制器对分机液位进行控制。 软件部分包括 ICL7135 采样部分、 485 通讯部分、 数字处理部分、 显示部分、 键盘部分等。 为了避免在传感器移动造成测量数据不准确, 特别增加了调零功能, 进一步提高了系统的准确性。主程序流程图如图 4 所示。 4 实验结果及分析 需要的测试设备有 4 位 1/2 高精度数字万用表、刻度尺、100M 双踪数字示波器。测试 图 3 ICL7135 信号采集传输电路 Fig3. Signal collects and transmits circuit of ICL7135 10传感器信号输入 GND -5V GND 11 1Y1 VCC VCC GND GND GND VCC GNDGNDGND VCC 6 5 4 7 8 1 9 3 24 2 22 20 19 18 17 27 12 15 14 13 23 21 16 20 7 2 17 4 15 6 1 13 6 10 3 2 14 5 11 12 13 11 8 9 18 3 16 5 14 1 19 10 7 4 12 9 16 15 8 12 3 Vin BU AZ INT Cref- Cref V- Vin- GNDa GNDb Vref V CP D1 D2 D3 D4 D5 OR BUSY POL B1 B2 B3 B4 VinVo GND VCC 2Y2 1A1 2A4 1A2 2A3 1A3 1Y4 2A2 2A1 1A4 2Y1 2Y4 1Y2 2Y3 1Y3 1G 2G GND A/B 4B 2B 3B 1B 1A 4A 2A 3A 2Y 1Y 4Y 3Y VCC G GND D1 D2 D3 D4 D5 B3 B1 B2 B4 D1 D2 D3 D4 D5 B1 B2 B3 B4 VCC GND U306 7135 U307 HC240 U308 HC157U303 MC1403 C326 .1 C327 .1 C325 .1 C328 .1 C320 .1 C321 .1 R324 100K C322 .47 C323 .1 R325 100K D305 R322 100K R323 10K C309 .1 C324 100P R327 100K R326 10K 图 4 主程序流程图 Fig4. Flowchart of main program 初始化 主程序开始 向从机发送查询命令 采集主机液位 比较液位测量值和设定值控制阀门开关 等待从机答覆 发送从机液位设定值 按键处理 LCD显示 指向下一个从机 结果如表 4-1 所示。 表 4-1 测试数据 实际液 位mm 显示液 位mm 液位偏 差mm 电压 V 质量 g 实际液 位mm 显示液 位mm 液位偏 差mm 电压 V 质量 g 0 0 0 2.00000 110 110 0 1.1860 1018 10 10 0 1.926092 120 120 0 1.1120 1110 20 20 0 1.8520185 130 131 1 1.0380 1212 30 30 0 1.7780277 140 141 1 0.9640 1305 40 40 0 1.7040370 150 151 1 0.8900 1397 50 50 0 1.6300462 160 161 1 0.8160 1490 60 60 0 1.5560555 170 171 1 0.7420 1583 70 70 0 1.4820648 180 181 1 0.6680 1675 80 80 0 1.4080740 190 191 1 0.5940 1768 90 90 0 1.3340833 200 201 1 0.5200 1860 100 100 0 1.2600925 注零点电压为2.0000V 零点液位30mm 由以上数据我们可以看出, 系统的各个检测单元的测试数据精度很高、 液晶显示值和测 量值与设定值非常接近,与传感器输出电压成线性关系,与重量也成一定的比例关系,这与 硬件的选择及其参数的匹配以及软件控制算法的选择是不可分割的。 5 设计总结 本设计在硬件上,使用 S18UUA 超声波传感器,ICL7135 等高精度芯片和仪器进行液 位测量,使所测量的液位精度远高于液位误差不超过0.3cm 的要求。此外,本设计还应用 了 MAX485 通讯, OCM4X8C 液晶显示 LCD 等芯片和元件, 使设计更符合实际应用的要求, 也相应的降低了软件设计的难度。在软件上,采用规范化的编程方法,有效的减少了程序所 需要的存储空间。目前本课题主要用于地下水位的检测,项目经济效益接近 15 万元。 本文作者创新点 (1)采用超声波传感器进行测量,提高了系统精度。 (2)主站能测量并显示主站自己和任何一个分站的液位高度、液体质量和阀的状态。 (3)主站能设定自己的入水阀和出水阀状态。 (4)分站能显示该分站的液位高度,液体重量,显示和设定入水阀出水阀状态。 参考文献 [1] 余祖俊.微机检测与控制应用系统设计[M].北京交通大学出版社,2001 [2] 李玉忍,谢利理.实用 RS-485 通信接口的设计[J].测控技术,2000,194 [3] 邵裕森.过程控制系统及仪表[M].机械工业出版社.1993 [4] 赵家贵.电子电路设计[M].中国计量出版社.2005 [5] 邬宽明.单片机外围器件手册.北京航空航天大学出版社.1998 [6] ICL7135 DATASHEET. MAXIN [7] 李朝青.PC 机与单片机DSP 数据通信技术选编[M].北京航空航天大学出版社,2004 [8] 刘元扬,刘德溥.自动检测与过程控制[M].北京冶金工业出版社.1980 [9] 张 越.单片机贮油罐液位监测系统[J].微计算机信息,2007 年第 8-2 期115-117 [10] 胡光书.数字信号处理[M].清华大学出版社.2001 作者简介李严(1984-) ,男汉族,山东聊城人,青岛理工大学硕士研究生,研究方向 为计算机控制技术。 BiographyLiyan1984-, MaleHan, Shandong Province, Qingdao Technological University, master graduate student, the technique of computer control.