Skip to content

步进电机(ULN2003 驱动) ​

四相五线制 · 相序脉冲控制 · 整步/半步模式

一、理论基础 ​

1.1 器件概述 ​

步进电机是一种将电脉冲信号转换为角位移或线位移的执行机构。每输入一个脉冲信号,步进电机就转动一个固定的角度(步距角)。通过控制脉冲的个数、频率和相序,可以精确控制步进电机的转角、转速和方向。

本实验系统采用四相五线制步进电机,由 ULN2003 达林顿管阵列驱动。

1.2 工作原理 ​

步进电机内部有多个绕组(相位),通过按特定顺序给各相绕组通电,产生旋转磁场,带动转子转动。

四相步进电机的工作模式:

模式说明特点
整步模式(单相)每次只给一相通电步距角大,力矩小
整步模式(双相)每次给两相同时通电步距角大,力矩大
半步模式交替使用单相和双相步距角减半,精度高,运行平稳

半步模式脉冲分配(4 相 8 拍):

序号当前状态正转脉冲反转脉冲
1010001010001
2010100010100
3000110010101
4100110000001
5100010101001
6101000101000
7001001101010
8011001000010

整步模式脉冲分配(4 相 4 拍,双相):

序号当前状态正转脉冲反转脉冲
1010110010110
3100110101010
5101001101001
7011001010101

1.3 关键参数 ​

参数规格
电机类型四相五线制步进电机
驱动芯片ULN2003(7 路达林顿管阵列)
控制口P1.4~P1.7(4 相控制)
步距角5.625°/64(减速后)
供电VCC5
控制方式相序脉冲 + 延时控制转速

1.4 典型应用 ​

  • 3D 打印机、CNC 机床
  • 机器人关节、机械臂
  • 智能小车(精确里程计)
  • 摄像头云台、自动对焦
  • 纺织机、印刷机、包装机
  • 自动阀门、风门控制
  • 教学实验(电机控制原理)

二、实验实例:步进电机控制 ​

2.1 实验目的 ​

  1. 掌握步进电机的工作原理
  2. 掌握步进电机控制程序的编程方法

2.2 实验内容 ​

在 IAR 集成开发环境中编写步进电机控制程序,通过循环控制 4 个相序使步进电机旋转。

2.3 预备知识 ​

  1. 了解 C 语言的基本知识
  2. 了解 IAR 中编写和调试程序的方法
  3. 了解步进电机相序控制原理

2.4 实验设备 ​

  • 硬件:WSN-V 教学实验箱(带电机扩展板)、PC 机
  • 软件:Windows + IAR EW for 8051

2.5 驱动电路 ​

ULN2003 为驱动芯片,提供控制步进电机所需的驱动电流。CC2530 的 P1.4~P1.7 输出相序控制信号,经 ULN2003 放大后驱动步进电机的 4 个绕组。

步进电机驱动电路原理图

电路说明:

  • U1(ULN2003)为 7 路达林顿管阵列驱动芯片
  • P1.4~P1.7 连接 ULN2003 输入端(1B~4B)
  • ULN2003 输出端(1Q~4Q)连接步进电机 M2 的 4 个绕组
  • VCC5 为电机供电,COM 端接 VCC5
  • ULN2003 内部集成续流二极管,保护驱动管

2.6 关键代码 ​

c
unsigned char pluse_table_1[] = {
    0x05, 0x09, 0x0a, 0x06,  // 整步双相模式:0101, 1001, 1010, 0110
};

void main(void)
{
    unsigned char i;
    P0DIR = 0xf1;   // P0.0, P0.4~P0.7 为输出
    P1DIR = 0xf1;   // P1.0, P1.4~P1.7 为输出
    P2DIR |= 0x01;  // P2.0 为输出
    P0_6 = 0;       // 停止直流电机

    while(1)
    {
        for(i=0;i<4;i++){
            P1 = (pluse_table_1[i] << 4);  // 输出相序到 P1.4~P1.7
            delay();                          // 延时控制转速
        }
        P0_0 = ~P0_0;  // 反转 LED 指示
        P2_0 = ~P2_0;
    }
}

2.7 实验步骤 ​

  1. 连接好仿真器,及带电机扩展板的通用调试母板
  2. 新建工程 StepMotor,添加相应文件并修改工程设置
  3. 创建 StepMotor.c 并加入到工程中
  4. 编写 StepMotor 相关函数,控制步进电机循环旋转
  5. 编译下载运行,观察步进电机的循环旋转速度

2.8 实验现象 ​

  • 步进电机按设定的相序和延时循环旋转
  • 改变延时函数的时间可以改变电机转速(延时越短,转速越快)
  • 反转脉冲表可以使电机反转
  • 半步模式(8 拍)比整步模式(4 拍)运行更平稳、步距角更小

知识点

步进电机的转速由脉冲频率决定(频率越高,转速越快),转角由脉冲个数决定,方向由相序顺序决定。步进电机存在启动频率限制:如果启动时脉冲频率过高,电机可能无法启动(丢步)。实际应用中通常需要"加速—匀速—减速"的曲线控制。ULN2003 是达林顿管阵列,只能提供单向驱动(吸电流),适合驱动小功率步进电机;大功率电机需要使用专用步进电机驱动芯片(如 A4988、DRV8825)。

内容来源:《WSN-V 物联网综合教学实验指导书》第 7 章·7.3 步进电机实验,结合课程教学经验整理。


aioteer · 物联网专业课程群

💬AI 伴学配置