1、一 控制原理1.1 步进电机原理步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为 100%)的特点,广泛应用于各种开环控制。比较常用的步进电机包括反应式步进电机(VR) 、永磁式步进电机(PM ) 、混合式步进电机(HB)和单相式步进电机等。本文用的步进电机为永磁式四
2、相步进电机,步进角为 。如下图:7.5图 1-1 五线四相以及四线四相步进电机步进电机内部构造如下图所示:不管是两相四相,四相五线,四相六线步进电机。内部构造都是如此。至于究竟是四线,五线,还是六线。就要看 A 和A 之间,B 和 B之间有没有公共端 com 抽线。如果 a组和 b 组各自有一个 com 端,则该步进电机六线,如果 a 和 b 组的公共端连在一起,则是5 线的。而 4 线则是没有 com 公共抽线的。可见,只要控制发送脉冲的顺序以及每秒发送脉冲的数目就可以控制电机的转动方向以及转动速度。1.2 步进电机相关概念相数:产生不同对极 N、S 磁场的激磁线圈对数。常用 m 表示。拍数
3、:完成一个磁场周期性变化所需脉冲数或导电状态用 n 表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即 AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A。步距角:对应一个脉冲信号,电机转子转过的角位移用 表示。=360 度(转子齿数 J*运行拍数) ,以常规二、四相,转子齿为 50 齿电机为例。四拍运行时步距角为 =360 度/(50*4)=1.8 度(俗称整步) ,八拍运行时步距角为 =360度/(50*8)=0.9 度(俗称半步) 。定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的
4、)静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。本文用的控制方式是四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A。每个脉冲转动半个步进角,即 3.75 度。二 硬件及连接1控制芯片 STM32F103C82. 电机驱动芯片 UDN2916、ULN2003D图 2-1 驱动芯片 UDN2916 以及 ULN2003D两款是常见的步进电机驱动芯片,用于产生步进电机的驱动信号以及提供足够的电压电流。芯片本身没有逻辑控制功能,逻辑信号由控制芯片产生(比如 ARM 芯片的 IO 引脚) 。以芯片
5、 UDN2916 为例,该芯片内部由两组相同的电路组成,每组电路包括PWM 控制器、电桥以及辅助电路。如图所示:外部逻辑信号通过 PWM 控制器输入(即 IO1、IO2) ,而步进电机的驱动信号则由电桥输出(即 OUTA、OUTB ) 。该驱动芯片外部电路连接以及与控制芯片的连接如下:三 程序实现程序的编写主要包括两部分,一部分是控制的芯片的配置以及初始化,另一部分是步进电机逻辑控制信号的产生,即脉冲顺序和频率大小。因此,程序的核心代码只有下面两个部分:1. 相序的选择unsigned char RUN_F8=0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6; /
6、五线步进电机相序表unsigned char RUN_T8=0x30,0x0e,0x39,0x07; /四线步进电机相序表2. 逻辑信号的产生,以及延时for (i=0; i8; i+) /一个周期转 3.75*8=30 度GPIO_Write(GPIOA, RUN_Fi /取数据 从 GPIOA 口输出Delay(0x01FFFF); /调节转速GPIO_Write(GPIOB, RUN_Ti /取数据 从 GPIOB 口输出Delay(0x01FFFF); /调节转速延时函数由控制芯片的内部时钟做一个简单延时实现。四 总结综合上述,步进电机的控制为简单的控制,如果只要求控制步进电机速度及方向的话(比如一般的打印机) ,实现起来是十分简单的。原因在于逻辑信号的产生简单、驱动芯片只根据逻辑信号产生响应的驱动信号而不需要做其他的设置与控制。本文中两个电机采用相同的四相八拍运行方式工作,四线与五线的区别也只是两相绕组有无公共端的区别,因此在控制方式以及脉冲产生顺序上是一致的(在验收时把跟 IO 端口的连接的线接反了,导致其中一个电机转动不正常) 。