当前位置:文档之家› 电容式液位传感器设计

电容式液位传感器设计

河南城建学院《安全检测与监控》课程设计班级 0232131 学号 ********* 姓名李保林专业安全工程课程名称安全检测与监控指导教师祁林王曦市政与环境工程学院2014年12月26日第一部分:方案论证 (1)1.1设计原理 (1)第二部分:单元电路设计 (2)2.1传感器设计 (2)2.1.1传感器原理 (2)2.1.2传感器的组成 (2)2.1.3 测量原理 (3)2.2将电容转化成电信号部分 (4)2.3 电信号放大电路设计 (4)2.4 A/D转换器设计 (5)2.5 控制电路的设计 (7)2.6 显示电路设计 (8)2.7 软件系统的设计 (10)第三部分:元器件清单 (14)第一部分:方案论证1.1设计原理本设计采用筒式电容传感器采集液位的高度。

主要利用其两电极的覆盖面积随被测液体液位的变化而变化,从而引起对应电容量变化的关系进行液位测量。

由于从传感器得出的电压一般在0~30mv之间,太小不易测量,所以要通过放大电路进行放大。

从放大电路出来的是模拟量,因此送入ADC0809转换成数字量,ADC0809连接于单片机,把信号送入单片机。

通过单片机控制水泵的运转。

显示电路连接于单片机用于显示水位的高度。

该显示接口用一片MC14499和单片机连接以驱动数码管。

1.2.系统框图被测物理量:主要是指非电的物理量,在这里为水位。

传感器:将输入的物理量转换成相应的电信号输出,实现非电量到电量的变换。

传感器的精度直接影响到整个系统的性能,所以是系统中一个重要的部件。

放大,整形,滤波:传感器的输出信号一般不适合直接去转换数字量,通常要进行放大,滤波等环节的预处理来完成。

A/D转换器:实现将模拟量转换成数字量,常用的是并行比较型、逐次逼近式、积分式等。

在此用到逐次逼近式。

单片机:目前的数据采集系统功能和性能日趋完善,因此主控部分一般都采用单片机。

显示设备:在此用到8段数码管。

控制设备:控制电动机的运行或关闭。

第二部分:单元电路设计2.1传感器设计2.1.1传感器原理电容式液位传感器系统; 它利用被测体的导电率, 通过传感器测量电路将液位高度变化转换成相应的电压脉冲宽度变化, 再由单片机进行测量并转换成相应的液位高度进行显示,该系统对液位深度具有测量、显示与设定功能, 并具有结构简单、成本低廉、性能稳定等优点。

2.1.2传感器的组成图2-1-2 为传感器部分的结构原理图。

它主要是由细长的不锈钢管(半径为R1 ) 、同轴绝缘导线(半径为R0 ) 以及其被测液体共同构成的金属圆柱形电容器构成。

该传感器主要利用其两电极的覆盖面积随被测液体液位的变化而变化, 从而引起对应电容量变化的关系进行液位测量。

图2-1-2传感器原理图2.1.3 测量原理由图1 可知, 当可测量液位H = 0 时, 不锈钢管与同轴绝缘导线构成的金属圆柱形电容器之间存在电容C0 , 根据文献得到电容量为:(1)式中, C0 为电容量, 单位为F ; ε0 为容器内气体的等效介电常数,单位为F/ m; L 为液位最大高度; R1 为不锈钢管半径;R0 为绝缘导线半径, 单位为m。

当可测量液位)为H 时, 不锈钢管与同轴绝缘电线之间存在电容CH :(2)式中, ε为容器内气体的等效介电常数, 单位为F/ m。

因此, 当传感器内液位由零增加到H 时, 其电容的变化量ΔC 可由式(1) 和式(2) 得(3)由式可知, 参数ε0 , ε, R1 , R0 都是定值。

所以电容的变化量ΔC 与液位变化量H 呈近似线性关系。

因为参数ε0 , ε, R1 , R0 , L 都是定值, 由式(2) 变形可得:CH = a0 + b0 H ( a0 和b0 为常数) (4)。

可见, 传感器的电容量值CH 的大小与电容器浸入液体的深度H 成线性关系。

由此, 只要测出电容值便能计算出水位。

2.2将电容转化成电信号部分采用运算法测量电路来转化。

该电路由传感器Cx和固定的标准电容Co以及运算放大器A组成,如图2-2所示。

图2-2 运算放大器测量电路原理图2.3 电信号放大电路设计由于从传感器得出的电压一般在0~30mv之间,太小不易测量,所以要通过放大电路进行放大,如图2-3所示,采用最基本的比例运算反放大电路.图2-3 比例放大电路要将30mV电压放大成5V,根据公式U=-(R1/R2)Uo,所以选择R1=500K,R2=3K,R4=R1//R2,,后边的是一个反相器,把第一个运放得到的电压反相成正的,其中R3=R5=1K,R6=R3//R5。

2.4 A/D转换器设计本设计采用A/D转换器ADC0809。

ADC0809是CMOS单片型逐次逼近式A/D转换器,由于输出级有8位三态输出锁存器,因而0809的数据输出端可以直接与单片机的数据总线连接。

ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动 A/D转换,之后EOC 输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上.ADC0809转换是采用逐次比较的方法完成A/D转换的,由单一的+5V供电,片内带有锁存功能的8路选一的模拟开关,由A,B,C引脚的编码来确定所选通道。

0809完成一次转换需要100us左右,输出具有TTL三态锁存缓冲器,可直接连到MCS-51的数据总线上,通过适当的外接电路,0809可对0-5V的模拟信号进行转换。

ADC0809与单片机的接口电路图2-4 ADC0809与单片机的接口电路2.5 控制电路的设计控制电路在这里起到非常重要的作用,在水位测量中测量到水罐中水位的高度,当水位高于2.5m水位时,电动机停转,水泵停止对水罐供水;当水位低于2.5m水位时,电动机起转,水泵开始对水罐供水。

其电路图如图2-5所示。

用MCS - 51系列单片机作为控制核心的水位测量计,其数据输出既可以通过单片机的通用I/O口输出,也可以通过单片机的串口用串行方式输出。

这里假设使用的单片机是8051 ,单片机的P1口为数据输出口, 显示器采用共阴极8段LED, 显示位数为4位,由于一片MC14499 可以驱动4 个LED 显示器,因此该显示接口只需用一片MC14499和单片机连接。

图是该动态显示接口的原理图。

P1.0用来向MC14499 发送数据,P1.1用来向MC14499发送时钟脉冲,P1.2用于控制单片机输出数据向MC14499串行输入(当P1.2 = 0时,允许MC14499输入数据)。

反相器74LS06作为显示器的位驱动, 8 个47Ω的电阻是LED 的限流电阻,3个5.1kΩ的电阻是上拉电阻,使单片机8031输出电平与MC14499输入电平相兼容。

由于MC14499 具有输入自动锁存功能,而串行输入一帧数据又需要一定的时间,所以LED显示的数据不会出现闪烁现象。

2.7 软件系统的设计软件主要由主程序、定时中断程序、外中断程序组成。

其中主程序完成参数的初始化,中断的管理,结果的显示等工作。

主程序流程图如下:程序运行开要初始化各种参数,可以默认液位设定值等,之后如果要进入液位设定的话就按SET按键进入液位设定模式,然后进行比较,看当前的液位有没有超过默认的极限值,如果超过了极限值,通过按键UP或DOWN进行液位调节,直至液位到达正常范围;没有超过极限值就正常显示。

数据测试与误差修正在实际设计中, 取L为100cm,对水位进行实测,当无液时的频率f=279.0KHz, 100cm高液位时h f=3.312KHz,频率最大时小于单片0机的最高频率测量范围,频率最小时也不至于降低测频精度。

经过测试,实际高度与测试结果如表1。

表1 液位实际高度与测试结果比较 (测试水温20℃)实际值0 1 5 10 15 20 25 30 35 42 45测量值0 0.6 3.2 6.5 10.7 15.6 21.9 27.5 33.5 41.9 46.1实际值50 55 60 65 70 75 80 85 90 95 100 测量值52.7 59.0 65.8 73.3 78.3 83.8 88.9 94.0 98.1101.3104.7 由上表中可知,测量结果是一条波动曲线, 在0cm、20cm处误差较小,为两线的交点,低误差为负,高端误差为正,90cm以后误差逐渐减小,预计在110cm处达到交点。

经分段修正后,测量结果如表2。

表2 修正后液位实际高度与测量结果比较(测试水温20℃) 实际值0 1 5 10 15 20 25 30 35 45 45 测0 1 5.2 10.4 14.8 19.5 24.7 30.1 35.0 39.6 44.6量值实际50 55 60 65 70 75 80 85 90 95 100 值测量50.1 54.8 59.8 64.5 70.3 75.4 80.4 85.2 89.3 95.0 99.8 值由表2可知,经过修正后,误差小于0.5cm,分辨率为0.1cm。

抽样检测不同水温的不同高度,误差都在1.0cm以内,符合设计要求。

液位高度与电压变化曲线:第三部分:元器件清单元器件参数个数筒式液位传感器 1电解电容160nF 1电解电容174nF 1NE5532 3电阻500K 1电阻3K 1电阻 5.5K 1电阻1K 2电阻500 1电阻47 8电阻 5.1K 374LS02 274LS04 1数码管 4ADC0809 174LS373 1NPN 4PNP 1MC14499 174LS74 1二极管 1电解电容0.015uF 1MCS-51系列的8051 1 附录一:系统总图附录二:程序清单----------------------MC144999显示程序---------------------------MC14499XS:MOV P2.4,#0 ;将使能端清零,使能端低电平有效MOV P2.3,#1 ;将时钟信号置1MOV 30H,#8 ;将8位依次送入MC14499驱动芯片MOV A,30HAA:ANL A,#01H ;使第一位数码管显示MOV P2.2,AMOV 30H,ARR ADJNZ 20H,AAMOV P2.4,#1MOV P2.3,#0ACALL DELAY1MOV P2.4,#0 ;将使能端清零,使能端低电平有效MOV P2.3,#1 ;将时钟信号置1MOV 30H,#8 ;将8位依次送入MC14499驱动芯片MOV A,30HBB:ANL A,#01H ;使第二位数码管显示MOV P2.2,AMOV 30H,ARR ADJNZ 20H,BBMOV P2.4,#1MOV P2.3,#0ACALL DELAY1MOV P2.4,#0 ;将使能端清零,使能端低电平有效MOV P2.3,#1 ;将时钟信号置1MOV 30H,#8 ;将8位依次送入MC14499驱动芯片MOV A,30HCC:ANL A,#01H ;使第三位数码管显示MOV P2.2,AMOV 30H,ARR ADJNZ 20H,CCMOV P2.4,#1MOV P2.3,#0ACALL DELAY1MOV P2.4,#0 ;将使能端清零,使能端低电平有效MOV P2.3,#1 ;将时钟信号置1MOV 30H,#8 ;将8位依次送入MC14499驱动芯片MOV A,30HDD:ANL A,#01H ;使第四位数码管显示MOV P2.2,AMOV 30H,ARR ADJNZ 20H,DDMOV P2.4,#1MOV P2.3,#0ACALL DELAY1RET---------------------------初始化程序-----------------------------晶振:12MHZ;WATER EQU 32H ;设定的水位值NUB_VAL EQU 34H ;加1、减1的暂存值WATER_1 EQU 36H ;采集到的水位值WATER_NUM EQU 30H;ORG 0000HLJMP STARTORG 0030HSTART:MOV SP,#60H ;设置堆栈值MOV IE,#00H ;屏蔽所有的中断信号MOV TCON,#00H ;MOV TMOD,#10H ;选用T0定时/计数器SETB P2.1 ;关水泵电机MOV R0,#20HMOV R1,#20HMOV A,#00HSTART_1:MOV @R0,AINC R0DJNZ R1,START_1START_2:CLR P2.1 ;开水泵电机MOV WATER,#2.5H ;初始水位值设为2.5m -------------------------主程序--------------------------------MAIN:ACALL DISPLAYMOV A,WATER_NUMCJNE A,WATER,MAIN1CLR CMAIN1:JC MIAN2CLR P2.1 ;启动水泵LJMP MAINMAIN2:CJNE A, WATER,MAIN3CLR CMAIN3:JNC MAIN4SETB P2.1 ;关闭水泵LJMP MAINMAIN4:CLR P2.1 ;水泵复位LJMP MAIN----------------------A/D转换程序-----------------------------ORG 0000HLJMP A/D_ABCD ;转主程序ORG 0003H ;中断服务程序入口地址LJMP INT0F ;中断服务程序ORG 0100HA/D_ABCD:MOV R0,#30H ;内部数据指针指向30H单元MOV DPTR,#7FF8H ;指向P2.7口,且选通IN0(低三位地址为000H)SETB IT0 ;设置外部中断0为下降沿出发SETB EX0 ;开允许中断SETB EA ;开总中断允许MOVX @DPTR,A ;启动A/D转换LJMP $ ;等待转换结束中断----------------------A/D中断服务程序---------------------------INT0F:MOVX A,@DPTR ;取A/D转换结果MOV @R0,A ;存结果CLR EX0 ;关中断允许RETI ;中断返回。

相关主题