液体点滴速度监控装置
[摘要] 该装置实时地监测液体点滴速度,通过单片机对信息的分析和处理,由主机发出
相应的指令,调整系统的工作平稳,构成了一个高性能的闭环控制系统。实现了对点滴输
液速度的直观监测,同时对一些异常情况的出现可实施报警。利用该装置还能通过主控平
台对各个分立系统信息实施自动化、智能化的集中处理。能方便、简易的操作和使用,对
医疗具有很强的实用性。
[关键词] 实时监控 红外传感 闭环控制 步进电机
一、 方案设计与论证
根据题目要求和原输液装置的特点,提出以下三种方案:
1、方案一
直接在滴斗处用两电极棒的方法。
待 测
和 控
制 量
传感器
信号处理
人机对话界面
电机驱动
速度控制
图 1
此方案的传感器采用简单的液体导电原理,在滴斗处安装两个电极。当水滴落下时,
电极导通,从而使待测量的变化转化为高低电平电信号。采用伺服电机改变系统装置中液
瓶与受液瓶的高度,达到改变点滴速度,从而进行控制。
2、方案二
把通过电机改变系统装置高度的方法,改为控制步进电机对输液管进行压缩或缓松,
从而实现对点滴速度的改变。采用交流电动机控制 H2 的高度。即采用红外传感器测量滴
斗滴液,送至单片机接口计数,通过数字模拟转换,将其转换为 4—20MA 标准电流值,同
时通过键盘输入给定每分钟的滴数,再将此滴数将其转换为 4—20MA 标准电流值,将此两
个信息同时进入数字 PID 调节器。通过偏差计算再输出一组 4—20MA 标准电流值,通过变
频调速器控制电动机调节 H2 的高度,来控制滴斗滴数。此方案的优点是,完全按目前电
气工程标准化运作,可以在很短时间完成。
2、 方案三
根据点滴装置的特点,通过对装置的某一位置进行监测和控制,达到对整个系统液体
第 1 页
共 18 页
点滴速度的监控。 (如图 1)。
通过控制输液软管夹头的松紧来控制点滴速度,采用红外传感器测量滴斗滴数,送至
单片机接口计数并显示,首先标定两个脉冲(两滴间)间的时间间隔(以 10MS 为时基单
位)。然后计算给定滴斗滴数(通过键盘)的时间间隔(以 10MS 为时基单位)。将此两个
时间间隔进行比较,以决定步进电机运行的方向。该步进电机通过丝杠控制输液软管夹头
的松紧,来控制滴斗滴数
4、方案比较
方案一的特点是:实现比较简单容易,原理上也是可行的,但由于本装置用于医疗,
电弧的产生,可能对不同的药物有影响,同时传感器(电极)不能重复使用,以防止传染。
方案二通过改用红外传感器,弥补了方案一的不足。但是还存在问题,利用改变高度
的方法虽然容易实现,但可控性不好。由此,我们采用了第三种方案,通过挤压输液管的
办法来实现对点滴速度的控制。
二、系统原理框图 如图 2 所示。
滴斗
输
液
管
红外传感
器及信号处理
AT89C51
基本系统
步进电机驱动
图 2
显
示
与
键
盘
控
制
本系统最主要的是充分利用单片机编程的灵活性和其强大的功能,使一些小的系统实
现自动化和智能化成为了现实。其中的器件都比较简单,尽大可能的利用各集成芯片的功
能,如系统的键盘和显示原理电路。通过红外传感器对水滴滴落的动态信息的感应 ,单
片机对数据的采集分析和处理,同时使用小功率的步进电机进行机械调整,使装置能机智、
即时的响应操作者的使用。
三、主要电路原理与设计
1、AT89C51 单片机基本系统 控制与数值信号处理的核心采用 AT89C51 单片机,采用
串口工作方式。电路如图 3。
第 2 页
共 18 页
C?
22uF
vcc
S?
RESET
R?
1K
R?
2K
c?
3p
C?
3p
J?
1
CON1
J?
1
CON1
p1
1
2
3
4
5
6
7
8
8 HEADER
p3
1
2
3
4
5
6
7
8
8 HEADER
p0
8
7
6
5
4
3
2
1
HEADER 8
p2
8
7
6
5
4
3
2
1
HEADER 8
80C52
P00
P01
P02
P03
P04
P05
P06
P07
P20
P21
P22
P23
P24
P25
P26
P27
EA/VP
ALE/P
PSEN
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
31
30
29
1
2
3
4
5
6
7
8
10
11
12
13
14
15
16
17
19
18
9
U?
P10/T
P11/T
P12
P13
P14
P15
P16
P17
RXD
TXD
INT0
INT1
T0
T1
WR
RD
X1
X2
RESET
Y?
CRYSTAL
图 3
vcc
R?
10K
R?
10K
R?
10K
R?
10K
R?
10K
R?
10K
R?
10K
R?
10K
2、显示与键盘 如图 4
利用 74LS164 进行串行动态 9 位数码管显示,74LS164 的主要功能是 8bits 的串
入并出数据处理。电路结构简单,功能强大。采用中断和查询的方法,设计的 4 键键
盘的形式,利用单片机的灵活编程,扩展其键入功能。
b
c
a
g
d
p
d
f
e
D
P
Y
a b c d e f g
d
p
b
c
a
g
d
p
d
f
e
D
P
Y
b
c
a
g
d
p
d
f
e
D
P
Y
b
c
a
g
d
p
d
f
e
D
P
Y
b
c
a
g
d
p
d
f
e
D
P
Y
b
c
a
g
d
p
d
f
e
D
P
Y
b
c
a
g
d
p
d
f
e
D
P
Y
b
c
a
g
d
p
d
f
e
D
P
Y
b
c
a
g
d
p
d
f
e
D
P
Y
a b c d e f g
d
p
a b c d e f g
d
p
a b c d e f g
d
p
a b c d e f g
d
p
a b c d e f g
d
p
a b c d e f g
d
p
a b c d e f g
d
p
a b c d e f g
d
p
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1 2 3 4 5 6 7
8
1245
1245
& A
74lS21
74LS21
& A
0
0
S
L
4
7
6
12
6
& A
3
vcc
4.7k
J1
5
9
4
8
3
7
2
6
1
A
B
4
6
1
CLK
MR
A
B
4
6
1
CLK
MR
1
2
8
9
1
2
8
9
vcc
vcc
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
3
4
5
6
10
11
12
13
3
4
5
6
10
11
12
13
4.7k
4.7k
4.7k
4.7k
4.7k
4.7k
4.7k
4.7k
vcc
vcc
vcc
vcc
vcc
vcc
vcc
vcc
A
1
2
S
L
4
7
6
&
5
4
2
1
10k
VCC
10k
VCC
10k
VCC
10k
VCC
图 4
3、红外传感和信号处理 采用红外线的发射和接收装置,它可用来检测包括液体在
内的各种透明体、半透明体、不透明体,从而可以灵敏地反应水滴滴下。利用光电耦合器
对电信号进行处理,减少干扰。
4、 步进电机驱动和控制 如图 5
1A
P1.7
1
2
3
6
9
P1.6
5
1C
1E
4
8
1B
1D
1F
P1.5
11
10
13
12
2
510
5
3
510
4
510
6
7
8
10k
10
10k
12
10k
9
10k
11
10k
13
10k
图 5
14
1k
15
1k
16
1k
178050
188050
28
19
5k
20
5k
21
5k
25
50
22
26
50
23
27
50
24
5、声光报警 当检测到液面低于 3cm 时由单片机采集到报警信号,由报警芯片发出
声光报警。
第 3 页
共 18 页
5、主控制平台 可以组建一个小型的网络系统,由主机控制和监视各个从机的工作状
态和各个装置的信息。 如图 6
1 号
从站
模 拟
从 站
主
控
站
图 6
四、系统软件工作流程 如图 7 到 图 12
1、软件设计:
软件部分参考流程图,这里主要讲述一下软件编写过程中的几个细节部分。
如前所述,我们计算滴水速度的原理是通过求出 2 个水滴之间的时间差,通过分析,
我们通过定时器建立一个基准时钟,该基准时钟有 2 个字节单元,分别秒单位和 10 毫秒
单位的数值。在每次传感器送来中断的时候调用“传感测量”子程序,在该子程序中,我
们在取当前触发时间时,先把上一个脉冲发生的时间保存在“历史寄存器”中,然后再更
新“当前寄存器”的值,即取当前脉冲的发生时间。这样我们就记录下了 2 个时间(连续)
值。
历史寄存器
当前寄存器
基准时钟
中断前:
n-1
中断时:
注:箭头方向为中断时的赋值方向
(n-1)
n
(n+1)
图 7
由于基准时钟是以 10 毫秒为最小单位的,而对于频率范围在 20Hz~150Hz 的脉冲而言,
因为我们在后边的求滴速中要用到 10 毫秒单位值,而水滴的下落并不能保证绝对的规则,
经测试发现,每一次求差后的值总有几个单位毫秒的变动,这个变动就导致了最终运算出
来的滴速值的大幅度变化,后来惊观察发现这种误差可以归为周期性误差,所以为了消除
这个误差,我们不是简单地只取一个差值,相反,我们是取了 10 个差值,然后再求平均
值,这样处理的最大一个好处是可以使周期性误差的正、负偏差互相抵消,在很大程度上
消除上述误差。
前面的处理虽然可以提供一个比较接近真值,对于最终显示出来的影响不大,但当要
用这个值去控制滴速夹时,很明显这样处理的结果降低了控制的响应度;而另一方面,对
于滴速夹的控制,因为我们采用的是步进电机,而且我们对步进电机的转轴又进行了改造,
加了一个螺纹栓,可以保持滴速夹控制端的位置,所以我们在每采集一个脉冲间隔时就进
行滴速的更改控制,这样可以提高控制设备的响应速度。所以在本系统中对于建立一个科
第 4 页
共 18 页
学合理的系统模型是很有必要的。
在对滴速进行控制时,我们借鉴了 PID 算法,建立了一个闭环控制状态,利用类似于
锁相环的模型:即把设定的滴速和当前的滴速进行比较,输出一个差值,利用这个差值的
极性来决定电机的正反转,并拉小这个差值直至最小。因为每检测到一个传感信号,我们
就把设定值和当前值进行比较,这样不仅提高了设备的响应速度,而且由于我们这个系统
的基准时钟是以 10 毫秒为单位了,因为我们能分辨到 10 毫秒的数量级,可以使当前值非
常接近我们所设定的设定值。
这一点可以参照电机控制的流程图。(图 12)
1、运算过程:因为我们系统的基准时钟是以 10 毫秒为单位了,虽然加大了系统的精度,
但是却给系统的数值运算带来了麻烦,直接用四则运算(特别是乘除的运算)很容易
带来无法避免的运算误差,即在运算是因为运算位数的限制而带来的数据尾数的丢失。
前面说过这种误差将对我们对信号的处理和显示产生很大了影响,甚至会得到一个误
差很大的最终输出,为避免这种情况,我们在保证精度的基础上采用了查表法,并且
在建立表格时对数据进行一定的折中处理,使得最终得到了结果的误差能尽量小,实
践证明我们这种方法还是有一定的实用性的。而且查表法的结果便于以后系统误差的
自我校正,因为它保存了一个恒值。
2、对数据表格的处理:前面说过我们这个系统的基准时钟有两个字节单元,而即使采用
题目要求的滴速(20~150 分/滴)也将需要 260 个字节,这已经超过了 8 位单片机的查
表范围,所以怎样建立一个合理的查表算法是很有必要的。通过对数据的观察,我们
发现虽然每个时间量有两个字节,但是在秒字节的单元里,总共只能出现 4 种取值,
即 1、2 和 3 以及 0 ,所以我们可以以这 4 个值为标量对表格的数据进行划分,由于有
了秒字节单元来做区分,我们只要在表格中写入 10 毫秒字节单元的值就行了,通过综
合处理,在保证精度的基础上,我们所建立的表格的字节数为 100 多个,这样不仅满
足了 8 位单片机的查表范围,而且大大了节省了内存,有利于系统资源的优化分配。
3、通信的建立:在选择方案时,考虑到通信线的多少,我们采用了串行通信,直接利用
单片机本身的串行通信口,在软件上我们考虑用串行通信的方式 0 来进行通信。通信
协议如下:先发送握手信号,然后发送被呼叫的从机号,每个从机在接收到地址时跟
自身的地址进行比较,如果不是被呼叫机,则关闭通信链路;如果是则发送响应信号。
当确定了通信的链路后,就按照预定的数据包格式进行通信。数据包格式如下:
操作码
操作数
2、程序流程图
第 5 页
共 18 页
图 8
第 6 页
共 18 页
传感测量:
时钟:
图 9
图 10
第 7 页
共 18 页
键盘:
步进电机控制:
图 11
图 12
第 8 页
共 18 页