液体滴落检测与计数Word格式.docx
《液体滴落检测与计数Word格式.docx》由会员分享,可在线阅读,更多相关《液体滴落检测与计数Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
传统的人工式的监护手段己经越来越不能适应当今多元化、信息化、个性化的医疗监护需求,所以对液体点滴速度监控的研究十分有意义。
本系统就是为了减少人力浪费,获得良好医疗效果而设计的液体点滴速度监控装置,利用该装置可以通过调节储液瓶高度达到控速点滴速度的目的,通过传感系统来确定点滴速度和药液输完后的报警,通过键盘设置液体点滴速度,系统主要难点是如何精确地检测液滴,这样系统才能实现液体点滴速度的智能化控制。
2.方案比较与论证
2.1控制器的选取
根据题目要求,控制器主要用于红外对管传感器信号的接收与辨认、控制点滴的速度、控制液晶显示滴速与系统运行以及液体到了警戒值发出信号等。
对于控制器的选择有以下几种方案。
方案一:
采用FPGA作为系统的控制器,FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。
但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高。
方案二:
采用STC公司的89C52C5X系列作为系统控制器的CPU方案,单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
但由于本系统设计的模块众多,所需I/O口线较多,需两个单片机控制,使其电路复杂,增加了调试的难度。
方案三:
采用TI公司的MSP430单片机,其在低功耗应用中具有独特的优势,作为性能优异的MCU在中国已经得到了广泛的应用。
MSP430具有高集成度,一般单片就可满足大多数的应用需要,可以方便地实现程序的下载、仿真、调试和升级。
基于以上分析,拟定方案三。
2.2液体点滴速度及储液瓶液面检测
采用电感式传感器测量点滴速度。
在输液器的漏斗外围绕线圈作为敏感元件。
当液滴滴下时电感量发生变化,通过LC振荡电路后输出变化的频率值,经过F/V变换电路及电压比较后输出TTL电平信号来检测点滴速度。
此方案测量精度比较高,但是外围电路比较复杂。
利用光的反射原理。
使用红外发光二极管和光敏三极管实现光源检测。
红外发光二极管垂直于漏斗壁发送红外光,红外接收三极管依据接收到的红外光信号的强弱产生脉冲信号,通过定时采样计算出液体点滴速度。
图2光反射原理
利用光透射原理。
使用红外对管实现液体点滴检测。
当没有点滴下落的时候,检测系统输出一个比较低的电压,而当有点滴经过红外检测电路就会产生一个比较高的电压。
再经过转化处理就可以产生脉冲信号。
图3光透射原理
在所选择方案中,方案一设计精度较高,但是外围电路复杂。
方案二实现容易,但是易受外界干扰。
方案三中采用红外对管发射接收。
红外传感器有以下优点:
尺寸小,质量轻,安装在滴斗上较简单;
对辅助电路要求少,电路简单,性能稳定。
综上所述,故采用第三种方案。
储液瓶液位检测原理同上,在此不再赘述。
2.3点滴速度控制的实现
通过控制滴速夹的松紧来控制点滴的速度。
不过滴速夹用于大范围的调节滴速,难以控制,适用于粗调。
通过改变滴斗到药液瓶的高度h2来调节点滴的速度。
由电动机带动药液瓶使药液瓶上升或下降改变滴斗到受液瓶的高度h2,从而调节点滴速度。
此种调节方法简单,精度较高,容易实现。
所以在该设计中选用此方案。
2.4显示相关模块
方案一:
采用四位一体LED七段数码管显示点滴数目,数码管具有低能耗、低压、寿命长、耐老化,对外界环境要求较低。
同时数码管采用BCD编码显示数字,程序编译容易,资源占用较少。
液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。
而在液晶显示屏中,彩屏价格昂贵不够经济,1602不能显示汉字,且字体较小,综上我们选取LCD(128*64)作为显示模块。
2.5系统组成
经过仔细分析和论证,决定了系统各模块的最终方案如下:
(1)控制器:
采用MSP430F149单片机;
(2)电机的选择:
28BYJ-48步进电机;
(3)电机驱动模块:
采用ULN2003A芯片驱动,PWM调制方式控制电机;
(4)显示模块:
采用128*64LCD液晶显示屏显示;
(5)点滴速度监控模块:
采用红外对管探测器。
系统的基本框图如图4所示。
图3系统的基本框图
3.系统主要硬件设计
3.1电源转换电路
电子产品中,常见的三端稳压集成电路有正电压输出的78XX系列。
由于此系统需要输出+5V直流电压,所以我们采用7805集成稳压器,C1、C2分别为输入端和输出端滤波电容,R1为负载电阻。
当输出电流较大时,7805应配上散热板。
电路图见图4
图4电源转换电路
3.2点滴速度测试电路
根据光学折射原理,光线在穿透密度不同的介质时,在交界面将产生反射与折射。
将滴管放置在检测用红外对管的中间,液滴呈近椭圆状向下作加速运动并通过红外对管,由于液滴的表面是曲面,所以上半部与下半部将光线两次折射,使接收端接收不到光而产生两次高电平,仅在液滴中部光线可以直射穿过,使接收端输出低电平,从而实现计数功能。
图5点滴速度测试电路
3.3储液瓶报警电路
采用红外发射管和红外接收管。
因为液体对红外光的传播有一定的散射作用,所以能够根据该接收管收到的光强的大小来判断液位是否达到警戒水位。
储液瓶告警信号一旦为低电平时,单片机立刻转到中断服务程序,进行声光报警。
电路如图6所示。
6储液瓶报警电路
3.4通讯电路
此系统主机和从机之间的通讯采用RS-232的通讯方式,为了减少传输线路对医院环境的影响,特意采用无线串口通讯技术,既不影响病房环境又更好实现了上位机与下位机之间的交互,通讯电路如图7、图8所示。
图7无线通信上位机连接电路
图8无线通信下位机连接电路
4.系统软件设计
4.1程序流程图
在该设计中,程序的设计使用C语言,对单片机编程实现相关操作。
在系统上电之后,主程序对各个模块进行初始化,接收从传感器传来的信号,并对该信号进行处理,同时输出调整信号控制电机的转动,并及时对键盘进行扫描,显示和控制点滴的速度。
其系统的程序流程图如图9所示。
图9系统总体流程图
4.2程序清单(见附录)
5.系统测试
5.1硬件测试
(1)液面检测及其液滴检测电路调试
在该部分中,根据实际的硬件电路,通过万用表检测各个部分的输入输出电压,并在该过程中通过调整可变电阻变化从而调节比较器的参考电压和输出,是其输出达到要求。
(2)电机运行调试
在该部分主要根据电机运行和相关的设定值之间的关系,并于软件算法一起协同调试。
5.2软件测试
在该设计中,程序较大,并采用C语言编写,采用自上而下的调试方法,各个部分模块化调试。
先调试功能电路,在调试整个系统。
在软件的调试过程中,针对所应用的对象不同,设计了相关模块的仿真,以方便程序的编写和配合硬件调试。
在本次设计过程中,软件与硬件协同设计,提高了工作效率。
5.3测试数据
1
2
3
4
5
6
设定滴速
20
40
60
100
120
150
显示滴速
41
59
99
118
151
实际滴速
61
102
124
156
误差
1.6
3.3
4.0
5.4系统实现的功能
(1)系统能准确测量液滴滴速及总液滴数,完全满足题目要求精度
(2)可通过键盘设置液滴滴速
(3)能够实现低液位自动警报
(4)通过无线通讯系统实现远程监视及控制,并能实现多机系统的联网通信
6.参考文献
[1]黄智伟.全国大学生电子设计竞赛系统设计[M].北京:
北京航空航天大学出版社,2006.
[2]马剑锋.液滴检测计数器的研制[J].山东:
实验室研究与探索,2008(5).
[3]高吉祥,唐朝京.全国大学生电子设计竞赛培训系列教程—基本技能训练与基本单元电路设计[M].北京:
电子工业出版社,2009.
[4]童诗白,华成英.模拟电子技术基础[M].北京:
高等教育出版社,2006.
[5]李现勇.VisualC++串口通信技术与工程实践[M].北京:
人民邮电出版社,2004.
[6]魏小龙.MSP430系列单片机接口技术及系统设计实例[M].河北:
北京航天航空大学出版社,2002
附录
附录一:
电路原理图
电源转换电路
储液瓶报警电路
点滴速度测试电路
无线通信上位机连接电路
无线通信下位机连接电路
附录二:
程序清单
/***************************************************
包含头文件
***************************************************/
#include<
msp430x14x.h>
#include"
12864.h"
UART.h"
INTERUPUT.h"
DISHI.h"
#include"
Keypad.h"
Keypad.c"
/***************************************************
宏定义
#defineuintunsignedint
#defineucharunsignedchar
变量及数组声明
floatv;
uintW,Q,ss,pp,d,j,k,q;
ucharE,value,t,i,a,s,;
chartablez[]={0x0b,0x03,0x07,0x06,0x0e,0x0c,0x0d,0x09};
chartablef[]={0x09,0x0d,0x0c,0x0e,0x06,0x07,0x03,0x0b};
子函数声明
Voidjianpan();
//键盘处理函数
Voiddianji();
//电机处理函数
主函数
voidmain(void)
{
j=0;
dishiinnit();
//定时函数初始化
ruputinnit();
//外部中断初始化
Chuankouininit();
//串口初始化
Ini_Lcd();
//12864初始化
Init_Keypad();
//初始化键盘端口
P2DIR=0xff;
//设置P2口方向为输出
Disp_HZ(0x80,hang1,4);
Disp_HZ(0x90,hang2,4);
Disp_HZ(0x88,hang3,2);
Disp_HZ(0x8c,hang4,2);
Disp_HZ(0x98,hang5,4);
while
(1)
{
LPM3;
if(mm>
0)
jianpan();
//键盘处理函数
}
else
{while(!
(IFG1&
UTXIFG0));
//USART0TXbufferready?
TXBUF0=RXBUF0;
//RXBUF0toTXBUF0
dianji();
//电机函数
}