yanniwang

利用ADuC7026控制步进电机运转

0
阅读(3285)

步进电机作为机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。下面介绍如何利用ADUC7026控制步进电机。

  步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

 

 

 

①步进电机的工作原理:

以三相反应式步进电机为例:它的定子上有三对磁极,每一对磁极上绕着一相绕组,绕组通电时,这两个磁极的极性相反;三相绕组接成星形,转子铁心及定子极靴上有小齿,定转子齿距通常相等。转子铁心上没有绕组,转子的齿数为40,相邻两个齿之间夹角为9°。

当某一相绕组通电时,由于定转子上有齿和槽,所以当转子齿的相对位置不同时,在磁场的作用下,转子将转动一个角度,使转子和定子的齿相互对齐,这就是使步进电机旋转的原因。

步进电机运转是由脉冲信号控制。通过改变各相通电的次序可以调整步进电机的运转方向。

改变脉冲信号的周期就可以改变步进电机的运转速度。

我们选用的是四相步进电机,采用四相八拍的方式驱动步进电机。

正方向:A-AB-B-BC-C-CD-D-DA-A

反方向;A-DA-D-CD-C-BC-B-AB-A

② AA,BB,CC.DD 是步进电机的4 个线圈,D8,D9,D11,D12 为续流二极管,是为步进电机的4 个线圈放电用的,当电机断电时,它的线圈要放电用二流管导流。

将ADuC7026端口P2的四个端口P2.0-P2.3连接到步进电机A、B、C、D四个口上,通过改变P2.0-P2.3四个口高低电平的轮流改变实现了步进电机的驱动。通过改变每个周期的高低电平改变时间控制步进电机的速度。

//P2.0--STEPA     P2.1--STEPB       P2.2--STEPC       P2.3--STEPD//

while(1)

       {

              //步进电机正转

                     SendData=0x0e;            /*A相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

                     SendData=0x0c;            /*AB相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

                     SendData=0x0d;            /*B相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

                     SendData=0x09;            /*BC相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

                     SendData=0x0b;            /*C相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

                     SendData=0x03;            /*CD相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

                     SendData=0x07;            /*D相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

                     SendData=0x06;            /*DA相通电*/

                     GP2DAT=SendData;

                     sleep_ms(250);

       }