3 磁力搅拌器软件设计
3.1 软件总体设计
软件采用C语言对单片机进行编程,程序采用模块化结构。软件的主要功能:单片机初始化、按键检测及螺旋线圈电流时序的产生。由于可以通过按键选择正转、反转、停止、开始、加速及减速等工作,所以需要正确分配主程序及定时中断的工作任务。电流时序的生成需要比较准确地定时,所以这一部分功能由定时中断完成;按键检测采用查询方式,因此单片机的初始化、按键处理程序由主程序完成。主程序与定时中断之间通过内存变量传递搅拌器的工作状态,即主程序通过按键检测获得状态信息,修改对应的正(反)转状态变量、停止(运行)状态变量、加(减)速状态变量。在定时中断中,依据搅拌器的运行状态,执行相应的动作,产生对应的螺旋线圈电流时序。
需要说明的是,由于设定了搅拌器搅拌子的8个方向,所以在软件实现时就设置了对应8个方向的8个序号(称为步伐),无论是正转还是反转,步伐的定义都不变,只是要根据正(反)转状态变量确定下一步伐是加1还是减1。
3.2 主程序设计
主程序流程图如图9所示。系统上电后进行初始化操作,包括定时器初值及中断设置。初始化函数中,首先设定定时器0的定时时间,选取最长时间(即搅拌子转速最慢)为50 ms;然后,开全局中断及定时器0溢出中断;最后,进入按键采集模块,采用无限循环进行键盘扫描,并根据相应的输入键值设置相应的标志位(加速、减速、正转、反转、停止、开始)。
3.3 定时中断设计
定时中断流程图如图10所示。进入定时中断函数后,首先关中断,再根据停止标志位判断停止键是否按下。如果按下,则调用停止函数,搅拌子停止转动,并等待开始按键;如果停止键没有按下,则根据转向标志位判断搅拌子的转向(正转、反转),并设定下一时刻搅拌子应指向的方向序号(即流程图中所示的步伐值)。之后再判断是否有加速减速操作,如果有,则更改相应的定时时间标志位(定时时间增加,搅拌子转速慢;定时时间减小,搅拌子转速快),并调用输出函数(即控制L6219DS输出电流);如果没有,则直接调用输出函数。最后,根据定时时间标志位赋给定时器相应的定时时间,并开中断。
本文针对现有的通过电动机转动带动永磁铁旋转产生旋转磁场的磁力搅拌器,设计了通过通电螺旋线圈产生旋转磁场的磁力搅拌器。该磁力搅拌器结构简单、运行稳定控制灵活方便,搅拌子转速在150 r/min~1 500 r/min范围内可调。由于本磁力搅拌器采用电能直接转化为磁能的方式,省去了常规磁力搅拌器所采用的机械转化的中间环节,使得磁力搅拌器的体积进一步减小,厚度降到1 cm,可以非常方便地应用于各种便携式测量仪器中。
参考文献
[1] 王晓宁,黄孝胜,冯雁峰,等.超低温磁力搅拌冷阱的研制[J].医疗卫生装备,2010(7):19-21.
[2] 袁建瑞,王玉玲.采用磁力耦合搅拌器的大输液配料桶 [J].医疗设备信息,2000(1):10-11.
[3] 陈登丰.搅拌器和搅拌容器的发展[J].压力容器,2008(2):33-41,46.
[4] 房毅卓,胡军,房春晖.智能数字化磁力搅拌器研制[J].盐湖研究,2003(3):47-50.
[5] 王华剑,罗卫兵.基于L6219DSA电机驱动芯片的磁力搅拌系统设计[J].电子元器件应用,2005(9):68-70.
[6] 意法半导体公司.L6219 stepper motor driver. pdf. http://www.st.com/internet/com/search/search,2010-08-19.