版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前言设计背景输液在医院是常规工作,在我国,全国每天输液平均达到2600万人,2024年《政府工作报告》解读中指出;目前我国每千人口护士数量只有3.7人,发达国家一般是8-15人。由此可以看出,目前我国医院护士存在着较为严重的供需脱节现象,护士超负荷工作,已成常态。输液是一个风险性极高的治疗过程,滴速、空气等因素都有可能会危及患者的生命安全。输液通常是连续几瓶或连续几袋药量的输入,观查药量、滴速,调整滴速等是目前医院输液治疗中护士的常规工作。需要不定时检测病人的吊瓶液滴速度,目前,液滴速度与药物剩余都需要人工观察,耗费大量人力资源,还容易产生误差,监控不当,液滴滴速过快,就会对病人身体造成严重的损害,情况严重甚至导致患者死亡。药水的用量和药水的滴速与年龄、性别、疾病种类等有一定的关系。所以为了解决这一问题,市场上出现了一些智能滴速检测系统,但这些输液系统的弊端是误差大、造价高。1.2设计内容本设计是以突出低成本、高精度、小体积、智能化为特点开展研发。通过数据采集模块对经过滴壶的液滴进行计数并上传到单片机计算速度,最终显示在OLED显示屏上,检测到滴速为0时蜂鸣器会报警提示,当检测到的滴速超出上限阈值或者低于下限阈值,驱动步进电机转动控速片控制滴速。保证输液的安全性,大大减少护士的工作量,更便于观察。本设计中采用的是STM32F103C8T6单片机,成本低,性能高,通过外设及IO口操作单片机上实现驱动控制。首先通过数据采集模块采集液滴,并将数据发送给单片机,单片机计算出液体滴落的速度,发送到OLED屏幕上,显示出每分钟具体的滴速,同时单片机判断液滴是否达到正常滴速,步进电机根据单片机的判断信息指令转动角度以达到调整到正常滴速的目的,当液体速度为0时,蜂鸣器进行报警、通过按键设置、修改滴速的上下限阈值,在超出或者低于设定好的阈值时,就会驱动步进电机转动以达到调速的目的,如果速度处于上下限阈值之间(安全滴速范围如儿童或者老人处于20滴/min-40滴/min最适合,成年人处于40滴/min-60滴/min最适合),若处于安全滴速范围,则步进电机停止转动,最终的滴速计算结果会显示在OLED显示屏上。1.3设计意义随着科技的发展,医疗自动化方面的产品也在逐渐变多。在医院中,静脉输液一般都是人工监控,调速也是以经验感知的非精准调速,无法准确调整药液流速,人工监控需要很多人力,人工调速也并不是准确的,针对目前传统人工点滴监护方式存在的缺点,目前的输液系统中,医护人员只能通过肉眼观察药水余量和手动调节药液流速。本设计作品,具有智能程度高、价格低的特点,既可以大大减少医护人员工作量,节省医护人力,又以低廉的价格降低输液病患的治疗成本。在提高护理人员工作效率的同时还能提高患者治疗的护理质量。设计方案2.1总体系统构成本设计的系统分为硬件部分和软件部分。硬件部分采用STM32F103C8T6单片机,槽型光耦红外传感器,蜂鸣器和报警灯,四相五线的步进电机以及电机驱动。通过立创EDA进行PCB电路图设计,焊接相关电子元器件,组成一整个单片机系统。硬件部分由数据采集模块、驱动模块、报警模块、显示模块组成。软件部分采用KEILV5软件进行编程,采用汇编语言以及C语言进行软件设计,编译代码后无误,再通过STLINK-V2烧录进单片机,进行功能测试总体设计框图如图2-1所示:图2-1总体设计框图2.2系统工作流程该系统的主要工作流程是通过单片机计算出槽型光耦红外模块计算出速度并且在OLED显示屏上显示,在设置完滴速阈值后,若超出或者低于要求的速度阈值则驱动步进电机达到控速的目的,在速度为0时蜂鸣器报警的同时点亮报警灯。首先是初始化STM32的引脚配置,初始化步进电机,初始化OLED显示屏,通过按键设置滴速的参数信息并且可以显示出相对应的信息在OLED屏幕上,通过槽型光耦红外检测出滴速进行判断,后驱动步进电机控速。系统流程框图如图2-2所示:图2-2系统流程框图2.3PCB电路板设计选择完所有模块后,对本设计的PCB电路板进行简单的设计,本设计的PCB图如图2-3所示。图中U1为STM32单片机,B1为有源蜂鸣器,S1为槽型光耦滴速传感器,O1为OLED显示屏,L1为LED警示灯,28BYJ-48为四相五线的步进电机,ULN2003为步进电机驱动、DC002为电源插座,D1为电源开关。图2-3PCB设计图下图2-4及图2-5分别为PCB电路板的正反面:图2-4PCB正面图图2-5PCB反面图硬件设计硬件设计思路硬件设计思路:通过数据采集模块采集滴数、OLED显示滴速、蜂鸣器及LED构成的报警系统、步进电机驱动控制。单片机采用的是STM32F103C8T6最小系统板,检测部分有数据采集模块ITR9606,它是由输入端接收到电信号从而转换成光信号,最终再输出端检测转换为电气信号,并传送到单片机计算得出液滴速度,最终将液滴速度于OLED显示屏显示,按键设定上下滴速阈值(安全滴速阈值),蜂鸣器用于报警,当单片机计算出滴速为0时蜂鸣器响、报警灯亮。此时提醒护理人员更换输液瓶。通过按键设置模块,当滴速超出或低于安全滴速阈值,单片机控制步进电机转动轴使控速片正反转压住输液管,以达到滴速调节。硬件总工作原理框图如图3-1所示:图3-1硬件总工作原理框图3.2STM32单片机本产品设计中,控制部分采用的是STM32F103C8T6核心板,外设方面拥有GPIO、TIME、外部中断、硬件SPI、硬件IIC、USB、TIME接口等。设计中所采用的硬件如下:1.硬件SPI和硬件IIC在本次设计中主要用于控制OLED屏幕的显示。2.外部中断用于液滴的计数,再通过TIME计算出液滴滴速。3.GPIO接口用于驱动步进电机及按键设置滴速上下限范围。其中,STM32单片机它为OLED屏幕提供I2C总线起止信号,通过Keil5软件编写屏幕的数据显示以及清屏功能,从而使数据清晰显示在OLED屏幕上。同时,STM32单片机利用IO口控制按键设置功能,在推挽输出模式下,STM32单片机可以输出高低电平0和1,当单片机接受到按键按下输出低电平的信号。同时,它可以给步进电机提供脉冲信号,当步进电机接受到脉冲信号时则旋转一个固定好的角度,可以用来控制角位移。GPIO是一种基于STM32单片机的通用输入/出模式。其融合了高性能、实时性、数字信号处理、低电压和低功耗于一身,同时保持了高集成度、开发简易的特点,且其允许通过配置软件来将GIPO引脚配置成8种模式,而STM32单片机的通用输入/出引脚通常分为不同的组,GPIOCGPIOD...GPIOG,如GPIOA,其共有16个引脚(PA0~PA15)REF_Ref3275\r\h[1]。 下图3-3是STM32F103C8T6示图:图3-3STM32F103C8T6图3.3设置滴速的上下限按键本产品设计中采用了按键控制。点滴控速系统运用单片机的按键控制滴速的上下限,按键的两端可以通过按下开关后接通,从而使电流得以流动。利用单片机IO口读取电平状态,判断按键是否被按下。由于更改药物所需求的滴速,所需求的药物和年龄所需要的滴速有一定的关系,所以此设备运用按键控制来设定滴速上下限。本设计中单片机所采用的按键控制是由三个四角开关并联组成,将按键的一端接到单片机的IO口(设定好的PB12、PB13、PB14),在将接到IO口的对角端接地。当按键开关松开时,I/O引脚和地断开,此时该I/O引脚处于高电平状态。按下按键,IO接地,将信号发送到单片机。当按键按下后程序就执行当前按键所执行的条件,单片机接收到按键输出的低电平后就开始进行处理。按键控制电路原理图如图3-4所示:图3-4按键控制电路原理图图3-5为四角开关示图:图3-53.4电源按键和电源座子本产品设计采用电源按键及电源座子进行供电,供电电压为5V,电源座子用USB接口连接供电设备。电源按键控制单片机系统的电源。电源座子的1、2引脚接GND,3引脚只起固定的作用,电源座子的引脚1和电源按键的引脚1相连,做为VCC输出,电源座子引脚2接地电源座子引脚3起到固定作用。电源按键及电源座子原理图如图3-6所示:图3-6电源按键及电源座子原理图图3-7为电源座子模块:图3-7电源座子图图3-8为电源按键模块:图3-8电源按键图3.5报警模块本产品设计采用蜂鸣器和LED灯做为报警模块,当无滴速时,蜂鸣器报警,当有滴速时,蜂鸣器不报警。设计中采用了NPN三极管,主要功能是用来放大电流。由于单片机供电电压较小,无法提供给蜂鸣器足够大的电流,故通过三极管的放大电流特性来驱动蜂鸣器工作。图3-9中R4的作用是为了限流,防止电流过大,烧毁电路。最后将蜂鸣器正极接到设定好的PC15引脚,负极接地。蜂鸣器的电路原理图如图3-9所示:图3-9蜂鸣器电路原理图下图3-10为本实验中使用的蜂鸣器模块:图3-10有源直插蜂鸣器图3.6OLED液晶显示电路在本产品设计中,OLED屏幕主要用来实时显示滴速,在设定滴速时,通过按键改变OLED显示的滴速范围。OLED液晶显示模块内部是SSD1306驱动,它有四个孔的排针,分别是GND、VCC、SCL、SDA四个引脚口,SCL引脚一般用于连接单片机的B6引脚,用来传输时钟数据,SDA引脚一般连接单片机的B7引脚,用来传输串行数据。在本设计中主要用于显示当前滴速及通过按键设置的上下滴速阈值,只要按照OLED的时序进行读写操作,即可完成显示屏OLED的显示。OLED模块的数据之所以能显示到屏幕上,是因为内部有一个显存,该显存与模块屏幕上的像素点是一一对应的关系。只要把数据送到显存对应的地址上,就会按显存的地址显示到屏幕上。SSD1306的显存为128*64bit,分为8页,每页128个字节REF_Ref5885\r\h[2]。OLED显示屏软件程序设计基于STM32单片机,采用C语言编写,主要完成配置STM32单片机管脚实现SPI通信。OLED显示屏驱动设计结构主要由STM32芯片、外围硬件电路、OLED显示屏组成。STM32采用4线串行SPI接口方式与屏载驱动芯片SSD1306进行通信。OLED显示屏驱动芯片SSD1306结合模块外围电路驱动OLED显示面板.后结合软件设计实现显示功能REF_Ref5986\r\h[3]。OLED显示屏要进行初始化,有屏幕关闭、刷新、显示、内存地址设置等。相对于LCD1602,OLED显示屏具有较大视角范围、功耗低、响应快的优势。下图3-11为OLED示图:图3-11OLED液晶显示屏图下图3-12为OLED屏幕详细信息:图3-12OLED信息图3.6.1IIC总线在本产品设计中OLED的通信方式是I2C总线,I2C总线的SDA和SCL是双向的,开路门结构,通过上拉电阻接正电源。通过设置设备的地址、读写信号、发送和接受数据、停止信号,最终实现OLED屏幕数据显示。进行数据传输时,SDA线上的数据必须在时钟的高电平周期保持稳定。SDA是双向数据线,负责传输串行数据,SCL是时钟线,负责脉冲和传输始终数据。当SCL线处于高电平时,SDA线从高电平向低电平切换表示起始条件;当SCL是高电平时SDA线由低电平向高电平切换表示停止。IIC通信协议有数据帧、地址帧。数据传输状态有五个,分别是数据有效性规定、空闲状态、起始信号、终止信号、应答信号。当时钟信号为高电平时,数据线上的数据保持稳定,当时钟信号为低电平时,数据线上方发生变化。当数据线SDA和时钟线SCL同时处于高电平时,规定总线为空闲状态。当SCL于高电平状态,SDA由高电平向低电平变化,表示为起始信号,当SCL于高电平状态,SDA由低向高变化则表示为终止信号。当应答位ACK于低电平,则为有效应答,当应答位于高电平时,为无效应答。OLED显示屏电路原理图如图3-13所示:图3-13OLED显示屏电路原理图3.7数据采集模块本次设计中采用了滴速模块槽型光耦ITR9606,也叫测速传感器模块。测试方法:当物体通过凹槽部分的挡光板时,计算一次。单片机再通过本身的内部定时器计算每分钟多少滴,采取平均值计算最终结果。通过单片机通信将计算出的结果显示到OLED屏幕上。模块内部使用LM393比较器,它的测速范围较宽、响应灵敏度高,尺寸较小,抗干扰性能强,检测的安全性也大大提高。下图3-14为槽型光耦数据采集模块图:图3-14槽型光耦数据采集模块点滴检测模块的内部电路原理图如图3-15所示:图3-15点滴检测模块内部电路原理图3.7.1滴速模块槽型光耦ITR9606槽形光耦有个U形凹槽,两边有凸出部分,一边装有红外发光二极管,另一边装有接收红外光的光电二极管,当凹槽中有挡光物体时,光被遮挡,利用红外获取液滴的信号。红外接收管在有光或无光时发出不同的信号,如由光电式旋转编码器产生与被测转速成正比的脉冲,测速装置将输入脉冲转换为以数字形式表示的转速值REF_Ref6224\r\h[5]。本设计中所使用的槽型光耦传感器,它的宽度是5mm(后经焊接成一个10mm的槽宽),当槽型有遮挡体时灯灭,输出高电平。无遮挡时灯亮。输出低电平。比较器输出使用LM393,它的信号干净,波形好,驱动能力强。,它的PCB版尺寸为3.2cmX1.4cm,更容易安装。槽型式光电传感器通常采用标准的U字型结构,其发射器和接收器分别位于U型槽的两边,并形成一个光轴,当被检测物体经过U型槽并且阻断光轴时,光电开关就产生了开关量信号REF_Ref6224\r\h[4]。3.8步进电机本次设计中采用的是四相五线28BYJ-48步进电机,通过STM32提供电脉冲信号计算出角速度(θ=360度/(50*8)=0.9度),角位移量由STM32单片机提供的脉冲控制的角度而得来。脉冲频率决定步进电机轴转动的时间和速度。最终通过电机轴带动控速片压住输液管以达到控速的目的。下图3-16步进电机的实物图图示:图3-16步进电机的实物图3.8.1步进电机的控制方法本设计中选用四相五线28BYJ-48步进电机,电压为DC5V—DC12V。为步进电机提供一定的脉冲频率及个数可以使其不停转动,以达到控制滴速的目的。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-),八拍(A-AB-B-BC-C-CD-D-DA-A)。以四相八拍步进电机为例,只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。加上正时序A-AB-B-BCC-CD-D-DA-A,步进电机正转。加上反向时序步进电机反转REF_Ref6420\r\h[6]。四相指的就是ABCD。3.8.2步进电机驱动ULN2003ULN2003是一种高耐压、大电流的达林顿阵列,由七个NPN达林顿管组成。每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下与TTL和CMOS电路直接相连,可以直接处理需要标准逻辑缓冲器来处理的数据REF_Ref6499\r\h[7]。步进电机转速的调节可通过调节脉冲周期来实现。程序中,可设置延时子程序,改变每个脉冲周期,调用延时子程序的次数或改变延时时间可实现转速REF_Ref16003\r\h[6]。通过脉冲频率和个数可以控制电机转动的角度,通过传感器计算出来的信息可以控制步进电机转动的方向。正反控制程序分别按控制脉冲顺序的要求采用相应的控制模型,并判断是否大幅度转向,采用调节脉冲宽度的方式来实现电机调速。步进电机驱动电路原理图如图3-17所示:图3-17步进电机驱动电路原理图系统软件及流程图设计软件设计思路智能输液监控系统软件部分主要负责的有数据采集通信、滴速范围设定、滴速检测、步进电机驱动控制、OLED显示和报警等功能。检测输液滴速并调用滴速检测子程序,并实现滴速显示;同时根据实测滴速与设定滴速的偏差而驱动步进电机控制滴速REF_Ref6633\r\h[8]。单片机系统程序采用单片机C编程语言进行开发的,总共分为六个部分:数据处理、内部定时器计算、蜂鸣器报警、OLED屏幕显示中文、步进电机通过IO口设置驱动、按键通过IO口控制屏幕显示相关内容。系统在完成初始化程序后,滴速模块检测滴速;同时根据实测的滴速通过单片机计算出点滴的速度并显示在OLED屏上,根据滴速将电信号转化成步进电机的角位移和线位移,从而实现步进电机转动椭圆篇压住输液管达到调速的目的。采用中断处理检测液滴通过触发中断,最终进行滴速计算更新并显示。软件主程序对硬件部分进行调试和焊接工作后,再从KEVLV5软件编写代码来实现STM32机和外设的功能。首先把主程序的总流程定好,并画出流程图。从数据采集模块、显示屏显示、蜂鸣器和报警灯、按键设置步进电机按照先后顺序进行系统编程。启动的步骤为:通过槽型数据采集模块进行液滴的计数,再发送到单片机计算出每分钟的滴速,最终显示在OLED屏幕上。在软件编程中,可以修改滴速的上下阈值,上下阈值可以决定是否驱动步进电机,或驱动步进电机正反转。按键设置安全阈值。当超过上阈值时,驱动步进电机反转,低于下阈值时,驱动步进电机正转,最终控制椭圆片以控制液滴速度,当检测到速度为0时,蜂鸣器报警并且点亮报警灯。当检测到速度为上下阈值之间时,步进电机停止转动。主程序的流程图如下图4-1所示:图4-1软件主程序流程图主程序函数部分代码如下:intmain(void){delay_init();//delay初始化NVIC_Configuration();//优先级I2C_Configuration();//IICdelay_ms(200);OLED_Init();//OLED初始化OLED_CLS();//OLED清屏InitDisplay();KEY_GPIO_Init();//初始化按键IOMOTOR_GPIO_Init();//初始化步进电机uart1_Init(9600);TIM3_Init(99,719);//定时1毫秒while(1){keyscan();if(setFlag==0)//跳出按键设置{if((Speed!=0)&&((Speed<speed_min)||(Speed>speed_max))&&shanshuo)//滴速低于或高于阈值,屏幕闪烁{OLED_ShowStr(32,4,":",2,0);//显示空白}else{sprintf(display,":%003d/min",(int)Speed);OLED_ShowStr(32,4,(u8*)display,2,0);//显示滴速}if(Speed!=0){if(Speed<speed_min)direction=1;//滴速低于下限阈值,电机正转elseif(Speed>speed_max)direction=2;//滴速高于上限阈值,电机反转elsedirection=0;//滴速处于上下阈值,电机停止}else{direction=0;//电机停}if(Speed==0)//无滴速{OLED_ShowCN(56,6,7,1);//显示中文:无NoWater=1;//无药水}else{OLED_ShowCN(56,6,6,1);//显示中文:有NoWater=0;//有药水}}delay_ms(10);}}滴速检测模块程序滴速传感器进行供电,单片机给滴速传感器启动信号,传感器通过采集数据后发送给单片机进行计算,再进行数据处理,并最显示在OLED液晶屏上。滴速检测的流程图如下图4-2所示:图4-2滴速检测程序流程图滴速检测程序部分代码如下:if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)//是否中断{TIM_ClearITPendingBit(TIM3,TIM_IT_Update);//中断清除if(drop==1)//高电平{if(in_flag==0)in_flag=1;}else//低电平{if(in_flag==1){in_flag=0;PulseCount++;//脉冲计数,高电平结束后计一个}}OLED屏幕程序要让液晶显示屏正常工作,首先写入命令控制字,然后在写入需要显示的数据。写入命令控制字之前,必须用指令来查看液晶是否正在工作。如果正在工作,那就必须等待,直到液晶发出工作完成的信号时,才能够写入控制字和数据。液晶显示模块程序流程图如下图4-3所示。图4-3OLED屏幕程序流程图OLED屏幕程序部分代码如下:voidInitDisplay(void)//初始化OLED{unsignedchari=0;for(i=0;i<6;i++)OLED_ShowCN(i*16+16,0,i+8,0);//顶行中文显示:智能点滴系统for(i=0;i<2;i++)OLED_ShowCN(i*16,4,i+0,0);//显示中文:滴速for(i=0;i<2;i++)OLED_ShowCN(i*16,6,i+4,0);//显示中文:药水OLED_ShowChar(32,6,':',2,0);}按键程序流程本次设计中按键电路部分分别是设置滴速报警的上限和下限值。单片机的按键具有4个引脚,相同的一侧是连接的,3个按键并联在一起,只要将相同的引脚连接一起即可。按键的工作原理就是对低电平信号的检测,在主程序中,循环执行检测,一旦检测到按键低电平信号,单片机产生信号中断,进入按键子程序中。2个按键分别表示加、减,分别用2个函数执行不同的操作,注意进行延时操作,防止误差。按键程序流程图如下图4-4所示:图4-4按键程序流程图按键程序部分代码如下:voidkeyscan(void)//按建设置{unsignedchari=0;if(KEY1==0)//KEY1设置{delay_ms(20);if(KEY1==0){while(KEY1==0);setFlag++;if(setFlag==1){OLED_CLS();//清屏for(i=0;i<4;i++)OLED_ShowCN(i*16+32,0,i+14,0);//显示中文:设置滴速for(i=0;i<2;i++)OLED_ShowCN(i*16,4,i+22,0);//显示中文:上限for(i=0;i<2;i++)OLED_ShowCN(i*16,6,i+24,0);//显示中文:下限OLED_ShowChar(32,4,':',2,0);OLED_ShowChar(32,6,':',2,0);OLED_ShowStr(62,4,"/min",2,0);OLED_ShowStr(62,6,"/min",2,0);}if(setFlag>=3){setFlag=0;OLED_CLS();//清屏InitDisplay();if(NoWater==1)OLED_ShowCN(56,6,7,1);elseOLED_ShowCN(56,6,6,1);}displaySetValue();//无设置}}if(KEY2==0)//按下K2{delay_ms(100);if(KEY2==0){if(setFlag==1){if(speed_max-speed_min>1)speed_min++;}if(setFlag==2){if(speed_max<999)speed_max++;}displaySetValue();//显示无}}if(KEY3==0)//按下K3{delay_ms(100);if(KEY3==0){if(setFlag==1){if(speed_min>0)speed_min--;}if(setFlag==2){if(speed_max-speed_min>1)speed_max--;}displaySetValue();//显示没有设置值}}}4.6蜂鸣器报警程序主函数执行后,一直检测是否发生中断,首先通过按键设定好滴速报警上下限和温度下限值,然后检测是否超出上下限值,或者水位检测传感器检测到瓶中是否无水。当检测到滴速超出上下限或者瓶中没有水时,并且判断温度是否低于下限。单片机控制蜂鸣器报警,报警流程图如下图4-5所示:图4-5蜂鸣器报警流程图蜂鸣器报警程序部分代码如下:if(!setFlag){if(Speed==1)//有药水,蜂鸣器不报警{beep=0;}else{if(Speed==0)//无药水,蜂鸣器一直报警{beep=1;}else{beep=0;}}}else{beep=0;}}4.7步进电机驱动程序控制电动机正反转为本次设计滴速控制部分。系统开始工作后,判断电机是否需要正转,若需要就依次给AB、BC、CD、DA通电实现正转,正转结束后时3S电机开始反转,即依次给AD、DC、CB、DA充电。电机驱动子流程图如图4-6所示。图4-6步进电机驱动流程图步进电机程序部分代码如下:if(direction==0)//步进电机停止{Coil_OFF;}elseif(direction==1)//步进电机正转{switch(index){case0:Coil_8B_A;break;case1:Coil_8B_AB;break;case2:Coil_8B_B;break;case3:Coil_8B_BC;break;case4:Coil_8B_C;break;case5:Coil_8B_CD;break;case6:Coil_8B_D;break;case7:Coil_8B_DA;break;}index++;if(index==8)index=0;}elseif(direction==2)//步进电机反转{switch(index){case0:Coil_8B_DA;break;case1:Coil_8B_D;break;case2:Coil_8B_CD;break;case3:Coil_8B_C;break;case4:Coil_8B_BC;break;case5:Coil_8B_B;break;case6:Coil_8B_AB;break;case7:Coil_8B_A;break;}index++;if(index==8)index=0;}}}系统调试焊接调试准备好实验所需材料,按照设计好的电路板原理图,开始单片机电路板的焊接。第一步先插排焊接上去,之后焊接单片机最小系统的晶振和复位电路。确定好OLED液晶显示屏位置不与其他硬件位置冲突,之后通过导线连接显示屏,再分别焊接各个传感器模块,最后用导线将各个模块按照电路图连接起来,确保没有出现短路现象。STM32单片机用烧录器将编译好的软件烧录进去,最后插入到插排上。用5V直流电源供电,按下开关,观察OLED液晶显示屏是否正常显示,正常显示后,说明显示电路正常,之后观察其他传感器是否正常工作,显示屏上是否有输出,如果正常显示,则设备无问题。由于输液管滴壶宽度较大,故采用凹槽为12mm的光耦进行焊接工作,如下图5-1、5-2为12mm槽型光耦及焊接:图5-112mm槽型光耦图5-2焊接12mm槽型光耦下图5-3为PCB板焊接走线图:图5-3PCB板焊接走线图功能测试焊接完成后进行功能测试和调试。首先编译程序代码无误。再给单片机上电,第一步就是初始化OLED屏幕,当OLED屏幕测试没问题后,再进行数据采集模块的测试,根据数据采集模块所采集的滴数,上传到单片机计算完成后,各个硬件实现相应的功能(如步进电机驱动、蜂鸣器报警),最后在测试按键设置功能是否能够使用。OLED显示屏页面分为3行,顶行显示智能点滴系统,第二行显示滴速数据,第三行显示药水有无,将数据采集模块的凹槽夹住吊瓶的滴壶,当液滴经过时,由于挡光板发挥作用,计算出液滴速度并上传到OLED显示屏上。按键K1的作用:按第一下OLED屏幕进入点滴上下限阈值修改页面并进入第一行修改滴速下限阈值,按第二下切换到修改滴速上限阈值。K2和K3则分别用来调节滴速上下限的加和减,根据滴速超出上下限阈值可驱动步进电机的正反转,当没有检测到水滴经过时速度为0且OLED显示屏显示速度为0时可以看到此时报警灯亮、蜂鸣器响。功能测试及介绍如下图5-4、5-5、5-6、5-7、5-8、5-9、5-10所示。检测到滴速为0显示无药水,蜂鸣器报警检测到滴速为0显示无药水,蜂鸣器报警图5-4功能测试1按键设定好安全滴速范围按键设定好安全滴速范围图5-5功能测试2按键K2为增加键按键K2为增加键图5-6功能测试3按键K1为切换/退出设置模式按键K1为切换/退出设置模式图5-7功能测试4按键K3为减少键按键K3为减少键图5-8功能测试5低于安全滴速范围,步进电机被驱动松输液管滴速增加低于安全滴速范围,步进电机被驱动松输液管滴速增加图5-9功能测试6高于安全滴速范围,步进电机被驱动压输液管滴速减小高于安全滴速范围,步进电机被驱动压输液管滴速减小图5-10功能测试75.3主要实验数据主要实验数据表1滴速范围20~40/min测试速度报警步进电机结果0/min有停止持续报警12/min无正转控速片松,速度增36/min无停止无报警,保持匀速48/min无反转控速片压,速度减表1预期产品预期产品实物图下图6-1为预期产品实物图:图6-1产品实物图预期产品装配及产品结构示图将所有的模块置于一个盒子中,盒子表面部分分别嵌入OLED屏、报警灯以及三个按键开关,盒子内部将槽型光耦夹住滴壶,通过光耦挡光特性,测出滴壶所滴下的药物速度,测出的滴速会显示在OLED显示屏上,三个按键开关可以设置滴速的范围,这个范围可以决定步进电机驱动正反转或不驱动,步进电机驱动的控速片压住输液管可以达到控速的目的。而当检测速度为0时(药水输毕)则蜂鸣器报警外部报警灯点亮。预期产品图如图6-2所示:图6-2预期产品图产品结构示意图如图6-3所示:图6-3产品结构示意图总结经过这几个月的努力学习,我完成了我的毕业设计。从中我吸取了嵌入式硬件结合软件的学习经验,让我为找工作的路做下铺垫。据我所学的经验,我了解到在硬件方面的成本小的情况下,软件部分需求的技术更高。数据采集模块的准确性和单片机有很大的联系。因此,对数据采集模块设计程序时,要保证编写的准确性和读写操作的准确顺序,否则在采集数据会出现错误。在进行设备调试的时候,需要注意到滴速模块的调节和步进电机有一定的关系,如果滴速模块部分的调节有问题,会导致步进电机无法正常驱动正反转去达到控速的目的,在数据采集模块与其他硬件部分连接给予重视。通过这次的毕业设计,我对单片机有了更加深刻的认识,让我在大学中所学到的内容发挥了一定的作用,为我以后找到单片机工作学习到了更多相关知识,通过这次毕业设计让我学到了从硬件和软件中逐步分析和解决问题。培养了我的科研精神,提高了我的科研素养。参考文献鹿国培.基于以太网的STM32数据采集与传输系统设计:中北大学,2022.刘正翔.基于STM32的OLED显示屏接口设计:福州职业技术学院,2017.焦石.王琛.胡泽原.王印玺.基于STM32的OLED显示屏驱动设计:重庆邮电大学,2018.黄俊.基于PWM及槽型光电传感器的测速与调控系统:湖南铁道职业技术学院,2018熊方.李爱民.基于STM32的步进电机运动控制设计:四川现代职业学院电子信息,2020.张德田.单片机步进电机控制系统设计:保定职业技术学院.2020李水峰.袁仲鸣.陈文奕.杜宇上.基于STM32智能医疗输液监控系统的设计:广东工业大学,2018杨娜.陈云.杨金花.基于单片机的输液监控模拟系统:黔南民族师范学院物理与电子科学学院,2021附录附录1:源程序代码#include"sys.h"#include"delay.h"#include"gpio.h"#include"OLED_I2C.h"#include"timer.h"#include"usart1.h"#include<stdio.h>#include<stdlib.h>#include<string.h>#defineCoil_8B_A{A=1;B=0;C=0;D=0;}//A相通电,其他相断电#defineCoil_8B_AB{A=1;B=1;C=0;D=0;}//AB相通电,其他相断电#defineCoil_8B_B{A=0;B=1;C=0;D=0;}//B相通电,其他相断电#defineCoil_8B_BC{A=0;B=1;C=1;D=0;}//BC相通电,其他相断电#defineCoil_8B_C{A=0;B=0;C=1;D=0;}//C相通电,其他相断电#defineCoil_8B_CD{A=0;B=0;C=1;D=1;}//CD相通电,其他相断电#defineCoil_8B_D{A=0;B=0;C=0;D=1;}//D相通电,其他相断电#defineCoil_8B_DA{A=1;B=0;C=0;D=1;}//DA相通电,其他相断电#defineCoil_OFF{A=0;B=0;C=0;D=0;}//全部相断电intPulseCount=0;//脉冲记录intSpeed=0;//滴速intspeed_min=60;//滴速上限intspeed_max=120;//滴速下限u8shuaxin=0;//刷新u8setFlag=0;//设置u8shanshuo=0;//shanshuo//闪烁u8direction=0;//方向chardisplay[16];voidInitDisplay(void)//屏幕初始化显示{unsignedchari=0;for(i=0;i<6;i++)OLED_ShowCN(i*16+16,0,i+8,0);//显示中文:智能点滴系统for(i=0;i<2;i++)OLED_ShowCN(i*16,4,i+0,0);//显示中文:滴速for(i=0;i<2;i++)OLED_ShowCN(i*16,6,i+4,0);//显示中文:药水OLED_ShowChar(32,6,':',2,0);}voiddisplaySetValue(void)//显示设置的值{if(setFlag==1||setFlag==2){sprintf(display,"%003d",(int)speed_min);OLED_ShowStr(40,4,(u8*)display,2,setFlag+1-1);//显示滴速上限sprintf(display,"%003d",(int)speed_max);OLED_ShowStr(40,6,(u8*)display,2,setFlag+1-2);//显示滴速下限}}voidkeyscan(void)//按建设置{unsignedchari=0;if(KEY1==0)//KEY1设置{delay_ms(20);if(KEY1==0){while(KEY1==0);setFlag++;if(setFlag==1){OLED_CLS();//清屏for(i=0;i<4;i++)OLED_ShowCN(i*16+32,0,i+14,0);//显示中文:设置滴速for(i=0;i<2;i++)OLED_ShowCN(i*16,4,i+22,0);//显示中文:上限for(i=0;i<2;i++)OLED_ShowCN(i*16,6,i+24,0);//显示中文:下限OLED_ShowChar(32,4,':',2,0);OLED_ShowChar(32,6,':',2,0);OLED_ShowStr(62,4,"/min",2,0);OLED_ShowStr(62,6,"/min",2,0);}if(setFlag>=3){setFlag=0;OLED_CLS();//清屏InitDisplay();if(NoWater==1)OLED_ShowCN(56,6,7,1);//显示中文:无elseOLED_ShowCN(56,6,6,1);//显示中文:有}displaySetValue();//显示没有设置值}}if(KEY2==0)//按键加{delay_ms(100);if(KEY2==0){if(setFlag==1){if(speed_max-speed_min>1)speed_min++;}if(setFlag==2){if(speed_max<999)speed_max++;}displaySetValue();//显示没有设置值}}if(KEY3==0)//按键减{delay_ms(100);if(KEY3==0){if(setFlag==1){if(speed_min>0)speed_min--;}if(setFlag==2){if(speed_max-speed_min>1)speed_max--;}displaySetValue();//显示没有设置值}}}intmain(void){delay_init();//延时函数初始化 NVIC_Configuration();//中断优先级I2C_Configuration();//IIC初始化delay_ms(200);OLED_Init();//OLED液晶初始化OLED_CLS();//清屏InitDisplay();KEY_GPIO_Init();//按键引脚初始化MOTOR_GPIO_Init();//步进电机初始化uart1_Init(9600);TIM3_Init(99,719);//定时器1毫秒while(1){keyscan();//按键扫描if(setFlag==0)//不在按键设置的情况下{if((Speed!=0)&&((Speed<speed_min)||(Speed>speed_max))&&shanshuo)//滴速不在范围,闪烁显示{OLED_ShowStr(32,4,":",2,0);//显示空白}else{sprintf(display,":%003d/min",(int)Speed);OLED_ShowStr(32,4,(u8*)dis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年云南省部编版八年级英语第五章专项训练题库
- 某化工企业环保操作办法
- 2025-2026年生物多样性保护与生态保护测试卷
- 机械制造厂环保条例
- 某食品集团公司员工培训条例
- 纺织印染厂人员考核条例
- 夹具制造外包合同
- 放射治疗计划制定与质量保证(2篇)
- 2026小学体育教资面试高频考题题库
- 2026高中语文教师资格证面试答辩题库及答案
- 新版2025-2026新版部编人教版小学2二年级语文上册1(全册)教案设计合集47
- EN IEC 62477-1-2024 中文版(欧盟光伏储能变流器并网安全限值规范)深度解析
- 2026年新教科版科学三年级上册第3课时 测量气温同步练习及参考答案
- 2026年西安邮电大学西邮伦敦城大国际项目中心招聘(2人)笔试参考题库及答案详解
- 2026秋季七年级新生入学分班考试英语试卷5套(含答案解析)
- 抗感染文献阅读汇报
- 越南新矿产资源法下中国企业投资的机遇与挑战:基于政策分析与实践探索
- 第5课 古代希腊 课件 统编版(新教材)历史九年级上册
- 2026(青岛版新教材)数学三年级上册全册数学教学设计
- 失能老年人健康评估服务工作细则
- 学校食堂留样柜双人双锁工作制度
评论
0/150
提交评论