电容式液位传感器设计.docx

上传人:b****5 文档编号:3716844 上传时间:2022-11-24 格式:DOCX 页数:15 大小:503.44KB
下载 相关 举报
电容式液位传感器设计.docx_第1页
第1页 / 共15页
电容式液位传感器设计.docx_第2页
第2页 / 共15页
电容式液位传感器设计.docx_第3页
第3页 / 共15页
电容式液位传感器设计.docx_第4页
第4页 / 共15页
电容式液位传感器设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

电容式液位传感器设计.docx

《电容式液位传感器设计.docx》由会员分享,可在线阅读,更多相关《电容式液位传感器设计.docx(15页珍藏版)》请在冰豆网上搜索。

电容式液位传感器设计.docx

电容式液位传感器设计

第2章方案论证

2.1设计原理

本设计采用筒式电容传感器采集液位的高度。

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

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

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

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

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

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

2.2.系统框图

 

 

被测物理量:

主要是指非电的物理量,在这里为水位。

传感器:

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

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

放大,整形,滤波:

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

A/D转换器:

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

在此用到逐次逼近式。

单片机:

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

显示设备:

在此用到8段数码管。

控制设备:

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

第三章单元电路设计

3.1传感器设计

3.1.1传感器原理

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

3.1.2传感器的组成

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

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

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

图3-1-2传感器原理图

3.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+b0H(a0和b0为常数)(4)。

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

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

3.2将电容转化成电信号部分

采用运算法测量电路来转化。

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

图3-2运算放大器测量电路原理图

3.3电信号放大电路设计

由于从传感器得出的电压一般在0~30mv之间,太小不易测量,所以要通过放大电路进行放大,如图3-3所示,采用最基本的比例运算反放大电路.

图3-3比例放大电路

要将30mV电压放大成5V,根据公式U=-(R1/R2)Uo,所以选择R1=500K,R2=3K,R4=R1//R2,,后边的是一个反相器,把第一个运放得到的电压反相成正的,其中R3=R5=1K,R6=R3//R5。

3.4A/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与单片机的接口电路

 

图3-4ADC0809与单片机的接口电路

3.5控制电路的设计

控制电路在这里起到非常重要的作用,在水位测量中测量到水罐中水位的高度,当水位高于2.5m水位时,电动机停转,水泵停止对水罐供水;当水位低于2.5m水位时,电动机起转,水泵开始对水罐供水。

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

图3-5控制电路电路图

3.6显示电路设计

发现需要4位的LED足可满足本设计的显示精度要求,为了减少所需的I/O数量,降低成本,采用动态显示控制方式。

通过对显示接口电路的综合分析,发现测距仪利用串行输入BCD码—十进制译码驱动显示器件MC14499来完成与单片机系统的显示接口较为简单可靠。

用MC14499设计的LED显示器动态显示接口电路如图3-6所示。

图3-6MC14499设计的LED显示器动态显示接口电路

用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显示的数据不会出现闪烁现象。

3.7软件系统的设计

软件主要由主程序、定时中断程序、外中断程序组成。

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

主程序流程图如下:

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

报警

>80%

开始

初始化

取液位值

显示液位值

 

打开供水阀

取液位值

<20%

液位在20%~80%?

液位在20%~80%?

液位在20%~80%?

液位值?

关闭供水阀

显示液位值

>90%

取液位值

显示液位值

<10%

报警

5分钟后?

>30%

<30%

报警

数据测试与误差修正

在实际设计中,取L为100cm,对水位进行实测,当无液时的频率

=279.0KHz,100cm高液位时

=3.312KHz,频率最大时小于单片机的最高频率测量范围,频率最小时也不至于降低测频精度。

经过测试,实际高度与测试结果如表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.1

101.3

104.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以内,符合设计要求。

 

液位高度与电压变化曲线:

 

第4章元器件清单

元器件

参数

个数

筒式液位传感器

1

电解电容

160nF

1

电解电容

174nF

1

NE5532

3

电阻

500K

1

电阻

3K

1

电阻

5.5K

1

电阻

1K

2

电阻

500

1

电阻

47

8

电阻

5.1K

3

74LS02

2

74LS04

1

数码管

4

ADC0809

1

74LS373

1

NPN

4

PNP

1

MC14499

1

74LS74

1

二极管

1

电解电容

0.015uF

1

MCS-51系列的8051

1

附录一:

系统总图

 

 

附录二:

程序清单

----------------------MC144999显示程序---------------------------

MC14499XS:

MOVP2.4,#0;将使能端清零,使能端低电平有效

MOVP2.3,#1;将时钟信号置1

MOV30H,#8;将8位依次送入MC14499驱动芯片

MOVA,30H

AA:

ANLA,#01H;使第一位数码管显示

MOVP2.2,A

MOV30H,A

RRA

DJNZ20H,AA

MOVP2.4,#1

MOVP2.3,#0

ACALLDELAY1

MOVP2.4,#0;将使能端清零,使能端低电平有效

MOVP2.3,#1;将时钟信号置1

MOV30H,#8;将8位依次送入MC14499驱动芯片

MOVA,30H

BB:

ANLA,#01H;使第二位数码管显示

MOVP2.2,A

MOV30H,A

RRA

DJNZ20H,BB

MOVP2.4,#1

MOVP2.3,#0

ACALLDELAY1

MOVP2.4,#0;将使能端清零,使能端低电平有效

MOVP2.3,#1;将时钟信号置1

MOV30H,#8;将8位依次送入MC14499驱动芯片

MOVA,30H

CC:

ANLA,#01H;使第三位数码管显示

MOVP2.2,A

MOV30H,A

RRA

DJNZ20H,CC

MOVP2.4,#1

MOVP2.3,#0

ACALLDELAY1

MOVP2.4,#0;将使能端清零,使能端低电平有效

MOVP2.3,#1;将时钟信号置1

MOV30H,#8;将8位依次送入MC14499驱动芯片

MOVA,30H

DD:

ANLA,#01H;使第四位数码管显示

MOVP2.2,A

MOV30H,A

RRA

DJNZ20H,DD

MOVP2.4,#1

MOVP2.3,#0

ACALLDELAY1

RET

---------------------------初始化程序-----------------------------

晶振:

12MHZ

WATEREQU32H;设定的水位值

NUB_VALEQU34H;加1、减1的暂存值

WATER_1EQU36H;采集到的水位值

WATER_NUMEQU30H

ORG0000H

LJMPSTART

ORG0030H

START:

MOVSP,#60H;设置堆栈值

MOVIE,#00H;屏蔽所有的中断信号

MOVTCON,#00H;

MOVTMOD,#10H;选用T0定时/计数器

SETBP2.1;关水泵电机

MOVR0,#20H

MOVR1,#20H

MOVA,#00H

START_1:

MOV@R0,A

INCR0

DJNZR1,START_1

START_2:

CLRP2.1;开水泵电机

MOVWATER,#2.5H;初始水位值设为2.5m

-------------------------主程序--------------------------------

MAIN:

ACALLDISPLAY

MOVA,WATER_NUM

CJNEA,WATER,MAIN1

CLRC

MAIN1:

JCMIAN2

CLRP2.1;启动水泵

LJMPMAIN

MAIN2:

CJNEA,WATER,MAIN3

CLRC

MAIN3:

JNCMAIN4

SETBP2.1;关闭水泵

LJMPMAIN

MAIN4:

CLRP2.1;水泵复位

LJMPMAIN

----------------------A/D转换程序-----------------------------

ORG0000H

LJMPA/D_ABCD;转主程序

ORG0003H;中断服务程序入口地址

LJMPINT0F;中断服务程序

ORG0100H

A/D_ABCD:

MOVR0,#30H;内部数据指针指向30H单元

MOVDPTR,#7FF8H;指向P2.7口,且选通IN0(低三位地址为000H)

SETBIT0;设置外部中断0为下降沿出发

SETBEX0;开允许中断

SETBEA;开总中断允许

MOVX@DPTR,A;启动A/D转换

LJMP$;等待转换结束中断

----------------------A/D中断服务程序---------------------------

INT0F:

MOVXA,@DPTR;取A/D转换结果

MOV@R0,A;存结果

CLREX0;关中断允许

RETI;中断返回

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1