步进电机工作时,失步或过冲直接影响其定位精度。在设计系统的时候,除了应正确选择步进电机和驱动电源之外,还必须对步进电机控制脉冲的频率进行调节。由于步进电机的转速正比于控制脉冲的频率,所以调节步进电机脉冲频率,实质上就是调节步进电机速度。
步进电机是一种数字电机,在经济型数控机床及自动化设备中应用广泛。控制步进电机的转动需要3个要素:方向、转角和转速。在步进电机的控制中,方向和转角控制简单,而转速控制则比较复杂。
1、硬件定时:假定控制器仍为AT89S52单片机,晶振频率为12MHz,将AT89S52的TD作为定时器使用,设定T0工作在模式1(16位定时/计数器)。今要求它能定时地发出步进脉冲,其定时中断产生的脉冲序列的周期(即步进电机的脉冲间隔)假定为20000s,则可算出TD所对应
的定时常数为B1E0H,CPU相应的程序如下:
主程序:
MOVTMOD,#01H;设T0取工作模式1。
MOVTH0.#0B1H;装入定时常数高8位。
MOVTLO,#0E0H;装入定时常数低8位。
SETBTR0;启动T0定时。
SETBET0;允许T0中断。
SETBEA;允许CPU中断。
$;CPU等待T0的定时到。
中断服务程序:
CLRET0;关T0中断。
CALLI_STEP;控制电机走一步(调用电机的脉冲分配子程序)。
RETI;T0中断返回。
本例中,只要改变T0的定时常数,就可实现步进电机的调速。这种方法既需要硬件(T0定时器)又需要软件来确定脉冲序列的频率,所以是
一种软硬件相结合的方法。它的缺点是占用了一个定时器。在比较复杂的控制系统中常采用定时中断的方法,这样可以提高CPU的利用率。
2、步进脉冲的调频方法
对步进电机控制的一个中心问题就是速度调节。即产生一系列频率可调的步进脉冲序列,送到驱动电源,控制电机绕组的轮流通电,实现电机的转动。脉冲序列的产生用微处理器实现,有软件延时和硬件定时两种方法。
(1)软件延时:通过调用标准的延时子程序来实现。假定控制器基于AT89S52单片机,晶振频率为12MHz,那么可以编制一个标准的延时
子程序如下:
该子程序的入口为(0E)(0D)两个字节,若需要20000us的延时,则给(0E)(0D)两个字节赋值4E20H,即执行下面程序:
MOV0EH,#4EH;20000的十六进制码为4E20。
MOV0DH.#20H
CALLDELAY;调用标准延时子程序DELAY。
若要控制步进电机走100步,每两步之间延时20000s,则汇编程序为:
MOV0FH,#100D;准备走100步。
CONTI:CALLI_STEP;电机走一步(调用电机的脉冲分配子程序)
MOV0EH,#4EH;20000的十六进制码为4E20。
MOV0DH,#20H
CALLDELAY;相邻步之间的延时(决定电机的转速)。
DJNZ0FH,CONTI;循环次数减1后,若不为0则继续,循环100次。
可以看出,采用软件延时方法实现速度调节的优点是程序简单,思路清晰,不占用硬件资源。缺点是浪费CPU的宝贵时间,在控制电机转动的过程中,CPU不能做其它事。