庄焕伟,戚宇恒
(广东技术师范学院工业中心,广州 510665)
步进电机具有控制简单、无累积误差等优点,广泛应用于数控机床、机器人、自动化仪表等领域。对步进电机控制系统的研究开发也取得了大量成果,主要有基于微控制器,如单片机[1]、DSP[2]、ARM[3]、CPLD[4]以及基于PLC[5-7]的两大类步进电机控制系统。这些控制系统,一个明显的特点就是对电机转速或对电机转动量的单一控制。在实际应用中,往往希望步进电机控制系统,能像伺服驱动器一样,有多种控制模式,能对步进电机进行不同模式控制。基于简单、价廉、通用性考虑,设计开发了一种基于AT89C51 单片机的步进电机控制系统,该系统具有速度和位置两种控制模式,可自由切换,实现一个控制系统,满足对步进电机转速或转动量的控制。
本控制系统以两相步进电机为控制对象,以单片机为控制核心。系统工作时,AT89C51 单片机实时检测外围按键状态,当系统设定为速度控制模式时,可通过按键选定不同的段速和方向,按下启动按键,步进电机以选择的速度和方向运转直至松开启动按键。当系统设定为位置控制模式时,可通过按键指定电机的运转量和方向,按下启动按键时,步进电机朝指定的方向以特定的转速运转,当运转量到达时,电机停止。为简化系统,步进电机的驱动脉冲由AT89C51 单片机产生,此外,加入液晶显示屏,实时显示当前的控制模式和电机运行状态,使系统有友好的人机界面。
系统主要由四大模块组成:控制模块、按键输入模块、液晶显示模块和电机驱动模块,其结构原理图如图1 所示
图1 结构原理图
依该系统的功能要求和下阶段仿真需要,使用Proteus 软件进行系统电路设计,设计的电路原理图如图2 所示。因系统按键不多,按键输入模块采用独立键盘形式,液晶显示模块选用1602 液晶,电机驱动模块选用专门的电机驱动芯片L298N。
输入模块由五个独立按键组成,命名为UP、DOWN、MODE、DIR 和START,分别代表参数增、参数减、模式选择、方向选择和启动信号。因模式和方向都只有两种状态,且考虑到人们的实际操作习惯,采用开关按键。
系统采用的电机驱动芯片L298N是高电压、大电流双全桥驱动芯片,它主要把从单片机发出的驱动脉冲进行电流放大,然后驱动步进电机。电路连接上,把它的ENA、ENB 引脚连接电源正端,使步进电机的运行方向仅取决于单片机输出驱动脉冲的顺序。
图2 系统的电路原理图
系统软件程序主要完成按键检测、液晶显示、驱动脉冲输出。为节省单片机CPU 资源,保证系统的实时性,软件程序包括主程序和中断程序。主程序主要完成系统初始化、按键检测、位置模式的驱动脉冲输出等功能,而中断程序主要完成液晶显示及速度模式的驱动脉冲输出。主程序和中断程序流程图如图3 和图4 所示。
系统有两种模式状态、两个运动方向,有四种组合情况。在程序设计上,可设定一个参数,不同组合情况,赋予参数不同的数值,下一步的程序处理,依获得的参数数值决定。模式方向检测函数具体程序如下:
图3 主程序流程图
图4 定时器中断程序流程图
改变步进电机的速度,只需改变控制它的驱动脉冲频率,而改变频率,即改变相应驱动数组的调用时间。系统采用单片机定时器中断来实现不同的调用时间。单片机定时器0 作一个固定时间的定时中断,每次定时中断,参数i 加1,当参数值等于电机指定速度对应频率参数值时,输出驱动编码。
如定时器0 中断时间为0.5ms,步进电机步距角为1.8°,为使电机转速为120r/min;则由120r/min 得到电机每转的时间为0.5s,于是电机每步周期为0.5s/(360°/1.8°)=2.5ms,故频率参数值为2.5ms/0.5ms=5;定时器0 中断实现电机的不同段速程序如下:
在完成系统的硬件设计和软件设计的基础上,利用Proteus 软件的仿真功能,对系统进行仿真测验和调试。具体的仿真过程是:在Proteus 中,双击单片机AT89C51,打开其属性编辑框,在“Program File”栏中选择在Keil 软件中调试编译成功所生成的目标代码hex 文件,并将单片机时钟频率改为12MHz,再在Proteus 中点击开始仿真按钮,启动仿真。仿真过程中,用鼠标单击电路图中的按键,电机依程序运转起来,液晶屏实时显示当前电机运行模式及运行情况。系统处于速度模式和位置模式时液晶屏显示情况分别如图5 和图6 所示,速度模式显示的数值表示当前电机转速,位置模式显示的第一个数值表示指定电机的运转量,第二个数值表示电机已经运转的圈数,“+”“-”符号表示电机运转方向正转或反转。
图5 速度模式液晶显示界面
图6 位置模式液晶显示界面
设计开发的步进电机控制系统,可实现对步进电机不同模式的控制。利用Proteus 软件对系统进行了仿真,并取得仿真实验成功。该系统结构简单,操作方便,成本低,且系统的按键输入模块可用传感器等检测输入模块代替,可扩展性强,有很大的实际应用价值
[1]高琴,刘淑聪,彭宏伟.步进电机控制系统的设计及应用[J].制造业自动化,2012,34(1):150-152.
[2]孙德,乐贵高,高继良.基于DSP的步进电机闭环控制系统设计[J].机床与液压.2012,40(10):118-121.
[3]周峰,李智华,顾全.基于PSoC3的步进电机控制[J].电机与控制应用,2012,39(4):28-31.
[4]董亮辉,刘景林,李昱.步进电机宽调速多细分控制系统研究[J].测控技术,2012,31(1):66-69.
[5]王彦军,李增生.基于PLC的步进电机控制[J].科学技术与工程,2011,11(5):1076-1079.
[6]王红梅,方贵盛.基于PLC 与步进电机的气动搬运机械手控制[J].液压与气动,2009,(11):25-27.
[7]沈宏,张伟,安艳涛.基于S7-200PLC的调速器步进电机驱动方法[J].制造业自动化,2010,32(7):169-172.