液体点滴速度检测装置
陈林辉 夏效禹 伍玉
摘要:本系统以单片机为最小控制核心,由主站控制模块、从站控制模块、滴数
测量模块、容量测量模块、报警模块等构成。系统通过 RS232 串行通信总线,
根据自定协议,实现了可由一个主站控制多个从站的液体点滴速度检测装置。主
站可定点、巡回检测或设定所有从站点滴速度,声光报警并显示报警从站号;从
站根据红外对管测得的点滴速度使输液瓶上下调整以达到设定值,从站亦可以设
定自身点滴速度、测试容量,声光报警并手动解除报警。滴数范围是 20 滴/分钟
~ 150 滴/分钟。人机界面友好,达到了很好的性能指标。
一、 方案比较与论证
1、液滴测速方案
方案一:采用液位传感器来检测。将液位传感器放置在受液瓶中,根据受液
瓶中液面的增长来检测一定时间内滴下液滴的数目,由此计算出液滴速度。但是,
由于液滴很小,液位增长不明显,液位传感器精度有限,会引入很大的误差。
方案二:采用红外对管来检测。将红外对管固定在滴管两侧,当液滴滴下时,
红外光被散射,对管检测到的光强减弱,由此可以对液滴进行计数,从而计算出
液滴滴速。由于滴管较细,且我们在对管周围包裹一层黑色胶带,液滴滴下时,
红外对管检测到的光强与无液滴有很大的差距,从而,对液滴的检测误差很小。
综上所述,选取方案二。
2、电机选择方案
方案一:采用直流电机。其中直流电机使用方便,价格便宜,但运动精度较
低,难以实现精确的位置控制。如用直流电机调整输液瓶的高度,将难以控制其
精确位置,系统稳定性较差,较难达到题目的要求。
方案二:采用步进电机。 步进电机是一种将电脉冲转化为角位移的执行机
构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一
个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到
准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速
度,从而达到调速的目的。
综上所述,选取方案二。
3、 剩余液量检测方案
方案一:采用液位传感器来检测。可是传感器不好放置,且精度有限。
方案二:采用压力传感器来检测。将输液瓶悬挂在压力传感器装置下,当瓶
内液体少于一定值时,施加在传感器上的压力值减小到一定范围,我们可以根据
传感器的输出判断出瓶内液面高度。输液瓶下的滴管也有一定质量,且输液瓶离
地面高度不同时滴管对压力传感器上的压力值的贡献也不一样,但是由于题目允
许液面在一定范围内时报警,那么滴管造成的误差不会对报警的液面高度产生很
大影响。
压力传感器输出的电压值较小,且变化幅度小,若直接测得电压值,会产生
较大误差。于是我们采用一款电压频率转换芯片 KA331,将输出电压转化为频
率测量,小幅度的电压变化也可造成较大的频率变化,使得系统控制更加准确。
综上所述,选取方案二。
二、 总体方案论证
根据以上方案论证与比较,本系统由主站和从站两部分构成。主站由键盘
与显示模块、从站控制模块、串行通信接口、报警电路等构成。主站通过 RS232
总线监测或控制从站液滴滴速,并在液面降到定值时声光报警。从站由步进电机
及其驱动模块、红外对管滴速监测模块、压力测量及电压频率转换模块、声光报
警模块、键盘与显示模块等构成。从站根据主站的控制对滴速进行调节,在主站
无控制信号时可自主控制滴速,在液面低于定值时声光报警,并可以手动解除报
警。其系统框图如图 1 所示。
图 1 系统框图
三、 理论分析与具体电路
1、滴速测量方案
采用红外对管 ST180 来检测是否有液滴落下。将红外对管固定在滴管两侧,
发射管和接收管的光轴在一条直线上,当无液滴滴下时,接收管能接收到发射管
发出的大部分光强,输出高电平;当液滴从对管间滴落时,红外光被液滴散射,
接收管接收到的光强大大减弱,以至于输出低电平。液滴连续低落时,会产生与
液滴频率相同的电脉冲信号。将该信号通过比较器和施密特触发器整形后,可以
得到稳定的、与液滴同频率的方波信号。
为了减小误差,我们在对管所在处包裹一层黑色的胶布,使外界对红外对管
传感器的影响最小。
由于液滴并不是严格均匀滴下,不能直接通过测量两液滴之间的时间差来求
得液滴速度。于是我们通过测量多个液滴滴下的时间差以求得液滴速度的平均
值,理论上测量的液滴数越多,平均速度越准确,但考虑到测量时间不能过长,
综合考虑后,先以 4 滴的间隔初测滴速,根据该滴速分段设置测量间隔。若初测
滴数大于 100 滴/s,以 15 滴为间隔;若初测滴数小于 100 滴/s、大于 60 滴/s,以
10 滴为间隔;若初测滴数小于 60 滴/s,以 5 滴/s 为间隔。
红外对管电路图如图 2 所示。
2、剩余液体容量测量方案
将输液瓶悬挂在压力传感器下,传感器将输液瓶与瓶内液体对它的压力转化
为直流电压输出。当瓶内的液体少于一定量时,传感器输出的直流电压相应地会
小于定值。单片机通过测量压力传感器输出的电压来判定瓶内的液量。
该压力传感器内部是一个桥式电路, aR 和 dR 为压敏电阻,输液瓶的压力导
致 aR 变化,桥式电路的输出微伏级的电压,采用仪表放大器 INA118 将传感器输
出的电压放大 1000 倍。其电路图如图 3 所示。
由于压力传感器输出的电压较小,变化范围也很小,若用 A/D 转换器直接
读取该电压值判断液面的升降可能会存在较大误差。于是我们先用仪表放大器
INA118 将电信号放大 1000 倍,再采取一款电压频率转换芯片 KA331,将电压
转换为频率在 700Hz 附近的方波信号,通过对方波频率的测量间接地判断瓶内
液体的容量。V/F 转换电路如图 4 所示。
图 2 红外对管电路图
图 3 压力传感器及放大电路
图 4 V/F 转换电路
O
p
t
o
i
s
o
l
a
t
o
r
1
2
2
0
o
h
m
R
1
1
2
3
4
5
6
7
8
L
M
3
1
1
D
1
1
K
R
2
G
N
D
+
5
1
3
K
R
3
G
N
D
+
1
2
1
2
U
1
A
D
M
7
4
L
S
0
4
M
1
2
U
2
A
D
M
7
4
L
S
0
4
M
V
o
u
t
G
N
D
1
K
R
4
R
d
R
a
R
c
R
b
+
1
2
G
N
D
-
V
4
I
N
+
3
I
N
-
2
O
U
T
6
R
E
F
5
R
G
1
R
G
8
+
V
7
I
N
A
1
1
8
P
5
1
o
h
m
R
g
G
N
D
+
1
2
G
N
D
V
o
u
t
7
1
6
5
3
8
4
2
K
A
3
3
1
*
0
.
1
u
F
C
i
n
0
.
0
1
u
F
C
t
1
0
0
K
R
i
n
G
N
D
1
0
0
K
R
L
1
u
F
C
L
4
7
o
h
m
G
N
D
G
N
D
1
2
K
1
K
R
?
R
e
s
A
d
j
2
G
N
D
G
N
D
6
.
8
K
R
t
+
1
2
1
0
K
+
5
F
o
u
t
V
i
n
3、报警检测方案
报警电路使用蜂鸣器和发光二极管报警,由于单片机 I/O 口驱动能力不够,
故采用了一个三极管作为开关管,同时上拉了一个 10K 的电阻。当单片机输出
高电平蜂鸣器报警,发光二极管亮。其电路图如图 5 所示。
4、 串行通信接口方案
图 5 声光报警装置
我们采用 RS-232-C 串行接口标准。RS-232-C 是美国电子工业协会 EIA 制定
的一种串行物理接口标准。RS 是英文“推荐标准”的缩写,232 为标识号,C 表示
修改次数。RS-232-C 总线标准设有 25 条信号线,包括一个主通道和一个辅助通
道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实
现,如一条发送线、一条接收线及一条地线。RS-232-C 标准规定的数据传输速
率为每秒 50、75、 100、150、300、600、1200、2400、4800、9600、19200 波
特。RS-232-C 标准规定,驱动器允许有 2500pF 的电容负载,通信距离将受此电
容限制,且 RS-232 属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,
因此一般用于 20m 以内的通信。 完全可以满足题目中对主站和从站的通信距离
的要求。
Max232 产品是由德州仪器公司推出的一款兼容 RS232 标准的芯片。该器件
包含 2 驱动器、2 接收器和一个电压发生器电路提供 TIA/EIA-232-F 电平。该器
件符合 TIA/EIA-232-F 标准,每一个接收器将 TIA/EIA-232-F 电平转换成 5-V
TTL/CMOS 电平。每一个发送器将 TTL/CMOS 电平转换成 TIA/EIA-232-F 电平。
主站中单片机输出的信号经过 MAX232 将电平转换成 RS-232-C 标准后,经
过串行总线输入到从站,从站上的 MAX232 又将 RS-232-C 标准的电平转换为
TTL 电平输入给单片机。
5、 步进电机驱动方案
电机采用四相八拍工作方式,需要对电机的每“一相”进行驱动。驱动电路
中,选用 TIP41C 达林顿三极管,功率电阻 Rc 参数为 8Ω 、2W,在 C 极与电机
电源之间接入一个保护二极管(型号 IN4002),防止功率管 T 从工作状态变为截
止状态时,由于感性电机绕组电流的连续性而会在三极管 C 极上产生一个较强
的反向电动势(电流),而损害三极管;E 和 C 极间的二极管(型号 IN4002)的
加入是为了增大三极管的反向耐压值,起到泄流保护作用。驱动电路如下:
其工作原理是:当在 A、B、C、D 电平输入端输入高电平时,使光敏二极
管发光,从而光耦三极管工作。因三极管的 C 极、E 极的电流大约满足相等的关
系,故 C 极与 E 极相当于导通,从而形成电源到地的回路,使达林顿三极管无
法工作,再使电机的该相不能工作。反之,当 A、B、C、D 电平输入为低时,
使用权光耦三极管不工作,从而使达林顿三极管工作,最终驱动步进电机转动。
L
E
D
S
p
e
a
k
e
r
2
N
3
9
0
4
1
K
R
1
2
2
0
o
h
m
R
2
G
N
D
1
K
R
1
+
5
V
c
o
n
图 5 步进电机驱动部分电路图
四、系统软件设计
系统的软件部分也分为主站和从站两个模块。
图 6 程序流程图
U
1
O
p
t
o
i
s
o
l
a
t
o
r
1
U
2
O
p
t
o
i
s
o
l
a
t
o
r
1
U
3
O
p
t
o
i
s
o
l
a
t
o
r
1
U
4
O
p
t
o
i
s
o
l
a
t
o
r
1
Q
1
N
P
N
1
Q
2
N
P
N
1
Q
3
N
P
N
1
Q
4
N
P
N
1
D
1
D
i
o
d
e
1
N
4
0
0
2
D
2
D
i
o
d
e
1
N
4
0
0
2
D
3
D
i
o
d
e
1
N
4
0
0
2
D
4
D
i
o
d
e
1
N
4
0
0
2
D
5
D
i
o
d
e
1
N
4
0
0
2
D
6
D
i
o
d
e
1
N
4
0
0
2
D
7
D
i
o
d
e
1
N
4
0
0
2
D
8
D
i
o
d
e
1
N
4
0
0
2
7
4
0
R
1
7
4
0
R
2
7
4
0
R
3
7
4
0
R
4
8
R
6
8
R
7
8
R
8
8
R
9
G
A
N
D
3
.
6
k
R
1
0
3
.
6
k
R
1
1
3
.
6
k
R
1
2
3
.
6
k
R
1
3
+
5
V
+
1
2
V
黑
褐
红
红
橙
黄
i
n
p
u
t
A
i
n
p
u
t
B
i
n
p
u
t
C
i
n
p
u
t
D
主站通过按键控制,具有定点和巡回检测从站液滴速度,设定某一从站液滴
速度,以及时时检测液面高度,在液面低于一定值时自动报警并可以手动解除报
警。
从站接收主站的控制信号,向主站发送液滴速度,或根据主站设定的液滴速
度进行调节,还能时时监测液面高度并声光报警。从站的软件设计中最核心的部
分是点滴速度控制模块。输液瓶最初置在最低处。首先,根据设定的液滴速度,
估测输液瓶的高度,使步进电机转动一定的圈数后,液滴速度达到设定值附近。
之后根据每次测得实际液滴速度与设定值的差值,使输液瓶高度进行细调,直到
实际值和设定值间的误差在题目范围之内。
其软件流程图如图 6 所示。
五、 系统调试结果
1、测试仪器
清华同方计算机:奔腾 4 CPU + 128M 内存 + Windows XP 操作系统
直流稳压稳流电源: 型号 SG173SB3
60M 双信道数字存储示波器: 型号 Tektronix TDS 1002
数字信号源: 型号 Agilent 33120A
4 位万用表: 型号 FLUKE17B
2、测试数据
点滴速度从 20 滴/MIN 调整到 150 滴/MIN 的时间为 1 分 14 秒
点滴速度从 150 滴/MIN 调整到 20 滴/MIN 的时间为 1 分 22 秒
1
20
20
20
0
0
2
35
34
34
1
2.8
3
50
50
51
1
2
设定滴数
显示滴数
实际滴数
误差
相对误差%
六、 实验总结
4
85
84
84
1
1.14
5
100
100
98
2
2
6
130
128
128
2
1.53
7
150
150
152
2
1.33
本系统完成了题目要求的所有指标。为了达到 20 滴/s 至 150 滴/s 的速度要
求,且受到医院输液房中设备的启发(一般都是挂在 2m 左右高处),我们采用了
架高支架的方法,将输液管稍微压紧,则在输液瓶很低时能达到 20 滴/s 的速度,
在输液瓶最高时可以达到 150 滴/s 甚至更快的速度。
我们采用压力传感器测量瓶中剩余容量,由于输液瓶在高处和低处时,输
液管对压力传感器的压力不同,会对结果有影响,误差较大,但由于题目中要求
比较模糊,只要求液面在低于一定范围时报警,我们的方案也可以勉强满足要求。
若采用学长当年的方法,将输液瓶用两片导体板包裹,形成一个电容值随液面高
低变化的可变电容,再通过接入振荡电路,测量振荡出的频率值来判定容量,可
能效果更好。
系统初始化时,让输液瓶自由悬挂,此时的高度作为最低高度,输液瓶升
高的高度可以通过记录步进电机的转动圈数来计算,输液瓶的高度与滴速是对应
的,这样可以防止线圈反绕,且在设定滴速后,将输液瓶升至一定高度再细调,
可以大大缩短调整时间。