上一篇 | 下一篇

第十四章 步进电机的单片机控制(单片机应用教程之课次三十,电子圈原创)

发布: 2008-5-30 08:14 | 作者: feller | 来源: 本站原创 | 查看: 166次

14.2.2 并行控制

        在并行控制中,单片机通过数条并行口线,直接发出多相脉冲信号,通过功率放大后,送入步进电机的各相绕组。这样就不再需要脉冲分配器,脉冲分配器的功能可以用软件的方法实现,从而简化了硬件电路。

        (1)硬件电路

        如图14-5所示用单片机80C51的P1.0~P1.2作为并行输出,依次循环输出驱动三相反应式步进电机所需的6个状态:

        A->AB->B->BC->C->CA->A

图14-5  软件代替脉冲分配器

        三相步进电机为三相六拍运行状态,正转6个控制字和反转6个控制字分别存入内存单元(30H~35H,38H~3DH)。控制字见表14-1

表14-1  三相步进电机三相六拍控制字

 

        (2)参考程序

        入口参数(R0):控制字地址

        出口参数(R0):控制字地址

        以下程序为步进电机走一步的子程序。

        正转子程序:

ZZ:   SETB  RS0          ;1寄存器

          INC   R0       

L0:   CJNE  R0,#36H,LL1  ;六拍未结束,则转LL1

        MOV   R0,#30H      ;六拍结束,则转回第一拍

LL1:  MOV   A,@R0        ;取控制字

         MOV   P1,A         ;控制字输出

        CLR   RS0          ;返回0区

         RET

        反转子程序:

FZ:   SETB  RS0

         INC   R0

        CJNE  R0,#3EH,LL2

        MOV   R0,#38H

LL2:  MOV   A,@R0

         MOV   P1,A

        CLR   RS0

         RET

 

14.3 步进电机的转速控制

        由式(14-2)可知,改变脉冲电源的频率就改变了步进电机的转速。控制脉冲电源的频率实际上就是控制各通电状态秩序时间的长短。采用调延时子程序或定时器定时中断的方法可以实现时间控制。由于延时子程序占用大量CPU时间,因此实际应用中常采用定时器中断的方法进行时间控制。

        下面以80C51中的T0定时器为例介绍速度控制子程序。设定时器T0以方式1工作,改变速度的时间常数放在内部RAM的30H(地位)和31H(高位)中,改变转向的标志放在F0中。在定时器中断服务程序中,要完成的操作有保护现场、步进电机走一步、定时器重装初值和恢复现场共4步。

        主程序:

  MOV   TMOD,#01H       ;T0方式1

  MOV   A,#DATA1        ;转速初值

  ADD   A,30H

  MOV   TL0,A

  MOV   A,#DATA2

  ADDC  A,31H

  MOV   TH0,A

  SETB  TR0             ;TO开始计数

  SETB  ET0             ;开中断

  SETB  EA

  JB    F0,FZ1          ;判断反转,转FZ1

  MOV   08H,#2FH        ;正转控制字地址初值

  …

  LJMP  DIR

FZ1:  MOV   08H,#37H        ;反转控制字地址初值

  …

DIR:  …

 

        T0中断服务子程序:

TOZD: PUSH  ACC

      PUSH  PSW

      JB    F0,FZ1

      LCALL ZZ

      SJMP  T0ZZ

FZ1:  LCALL FZ

TOZZ: CLR   TR0

      MOV   A,#DATA1

      ADD   A,30H

      MOV   TL0,A

      MOV   A,#DATA2

      ADDC  A,31H

      MOV   TH0,A

      SETB  TR0

      POP   PSW

      POP   ACC

      RETI

14.4 步进电机加减速定位控制

14.4.1 加减速定位控制原理

        步进电机的最高启动频率一般为几百到几千Hz,而最高运行频率则可以达到几万Hz。当以高于最高启动频率的频率直接启动时,将出现“失步”现象,有时甚至转动不起来。而如果先以低于最高启动频率的频率启动,在逐步提高频率,使电动机逐步加强,则可以达到最高运行频率。此外,对于正在快速转动的步进电机,若在达到终点时,立即停发脉冲令其立即准确锁定,也是很难实现的,由于惯性电动机往往冲过头,也会出现失步。

        如果电动机的工作频率总是低于最高启动频率当然不会失步,但电动机工作速度和工作效率太低。采用加减速定位控制,就可以充分发挥电机的潜力,此时电动机的定位过程如图14-6所示,通过加速->恒定高速->减速->恒定低速->锁定,就可以既快有稳地准确定位。

图14-6  加减速定位控制

        图14-6中,纵坐标是脉冲频率(步/s),它反映了转速的高低。横坐标是时间,各段时间内走过的步数用N1、N2等表示,步数反映了距离。加速的起始频率f1应等于或略低于系统的最高启动频率。由于最高启动频率fmax与电动机的驱动方法、机械负载的性质和大小等因素有关,所以通常由试验来决定。

        当然,短距离移动定位时,电动机可能还没有加速到最高运行频率就必须减速了,所以没有恒定高速运行阶段。

        加减速规律一般有两种选择:一种时按指数规律,另一种是按直线规律升降速。直线加减速规律计算比较简单。

        步进电机的加减速定位控制就是控制步进电机拖动给定的负载,经过加速、恒定高速及减速过程,从一个位置快速运行到另一个给定位置。对电动机而言,就是从一个锁定位置,运行若干步,尽快到达另一个位置,并加以锁定。这样就有两个基本要求:第一是总步数要符合给定值;第二是总的走步时间应尽量短。

        用单片机对步进电机进行加减速控制,实际上就是控制每次换相的时间间隔。升速时,使脉冲频率逐渐升高,减速时则相反。若单片机使用定时器中断方式来控制脉冲的频率,那么加减速控制实际上就是不断改变定时器装载值的大小。为了简化程序,可以用阶梯曲线来逼近图14-6中的升降曲线,如图14-7所示。对于每一档频率,软件系统可以通过查表方式查出所需要的装载值。

图14-7  阶梯升速

        下面用实例进行说明。假定系统的最低频率f1为100脉冲/s,最高运行频率fmax为1000脉冲/s,相邻两档速度差100脉冲/s,用速度字k表示速度档次,则各档频率(包括最高频率)为:

        fk=k×100脉冲/s   k=1,2,…100     (14-3)

        对于直线升速,图14-7中的阶梯Δt为常数;对于指数升速,Δt为变量。Δt的大小可以通过下式计算确定:

        Δt=tm/km           (14-4)

        其中:tm:加速时间,一般可由实验方法来确定,以升速快而不失步为原则。

        km:阶梯升速分档数

        km=fm/f1-1          (14-5)

        阶梯升速过程中,各档频率(不包括最高运行频率fm)为

        fk=kf1              (14-6)

        式中k=1,2,3,…,km(km≤100)

        注意fm与fmax的区别,前者为某一运行过程中的最高频率,后者为步进电机最高允许频率。当然fm≤fmax。各档频率fk内的运行步数为

        Nk=fkΔt=kf1Δt=kΔN              (14-7)

        式中ΔN=f1Δt

        升速过程内应走的总步数为:

                                (14-8)

        在程序执行过程中,对每一档速度都要计算在该档应走的步数,然后以递减方式检查应走的步数。当减至零时,表示该档速度应走的步数已走完,于是速度字k加1,进入下一档速度。与此同时,还要递减升速过程总步数,直到升速过程总步数走完为止。

        减速过程的处理方法和升速过程相仿。通常,减速时间可选取与升速的时间相同。

TAG: 步进电机 单片机 电子 教程 应用

字号: | 推荐给好友

 

评分:0

我来说两句