logo资料库

单片机液体点滴速度监控装置资料.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
液体点滴速度监控装置 [摘要] 该装置实时地监测液体点滴速度,通过单片机对信息的分析和处理,由主机发出 相应的指令,调整系统的工作平稳,构成了一个高性能的闭环控制系统。实现了对点滴输 液速度的直观监测,同时对一些异常情况的出现可实施报警。利用该装置还能通过主控平 台对各个分立系统信息实施自动化、智能化的集中处理。能方便、简易的操作和使用,对 医疗具有很强的实用性。 [关键词] 实时监控 红外传感 闭环控制 步进电机 一、 方案设计与论证 根据题目要求和原输液装置的特点,提出以下三种方案: 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 页
分享到:
收藏