Skip to content

示例8:步进电机控制 ​

实验概述 ​

通过 ULN2003 驱动板控制4线步进电机的连续正转、反转、目标转速与显式停止。FastBee 内置 STEPPER_MOTOR(type:42)固定使用8相半步序列,没有定步数运动、到位反馈或精确角度保证。

2026-10-04主仓受检GPIO改动尚待集中测试和设备验收:部分输出/停止失败保留原脚及错误状态,不能以规则动作成功推断机械已经停止。详见步进电机生命周期说明。

硬件接线 ​

开发板标识GPIO引脚连接设备
IN1GPIO15ULN2003 驱动板 IN1
IN2GPIO2ULN2003 驱动板 IN2
IN3GPIO0ULN2003 驱动板 IN3
IN4GPIO4ULN2003 驱动板 IN4

下表引脚只是示意,须按实际板卡保留脚、启动脚和其它占用重新核对。电机与驱动电源须符合实物规格,不能由ESP32 GPIO直接供电;2048为当前调度默认参数,不能当成已校准的一圈。

JSON 配置示例 ​

json
{
  "peripherals": [
    {
      "id": "stepper_01",
      "name": "ULN2003步进电机",
      "type": 42,
      "enabled": false,
      "pins": [15, 2, 0, 4],
      "params": {
        "stepsPerRevolution": 2048,
        "speed": 8
      }
    }
  ]
}

参数说明 ​

参数说明默认值
stepsPerRevolution调度间隔使用的每转步数,需按实际机构校准2048
speed转速(RPM)8

外设执行联动 ​

场景1:开始连续正转(平台触发) ​

功能:通过平台触发规则开始连续正转;须另行配置适合现场的停止条件。

Web界面配置步骤 ​

步骤1:创建规则

  1. 点击左侧菜单 外设执行
  2. 点击 新增规则 按钮
  3. 填写基础配置:
    • 规则名称:步进电机正转
    • 上报数据:✅ 启用
    • 启用:✅ 启用

步骤2:配置触发器

  1. 点击 添加触发 按钮

  2. 填写触发器配置:

    字段填写内容说明
    触发类型选择 平台触发接收云平台指令
    操作符选择 匹配模式匹配指令
    比较值{"cmd":"forward"}正转指令

步骤3:配置动作

  1. 点击 添加动作 按钮

  2. 填写动作配置:

    字段填写内容说明
    动作类型选择 电机控制步进电机专用动作
    目标外设选择 stepper_01步进电机外设
    动作参数forward开始连续正转
  3. 点击 保存 按钮

执行流程:

收到正转指令
  ↓
接受 stepper_01 的 forward 命令
  ↓
定时器依次请求受检半步相位
  ↓
独立stop命令停止并申请清理

启动动作以非阻塞方式安排后续相位;返回成功不表示电机已转完。当前没有 stepper_move 定步数完成接口。


场景2:显式停止(平台触发) ​

功能:通过独立平台触发规则停止后续相位,并尝试确认原IN1~IN4低电平与输入模式。

Web界面配置步骤 ​

步骤1:创建规则

  1. 点击 新增规则
  2. 填写基础配置:
    • 规则名称:步进电机停止
    • 上报数据:✅ 启用
    • 启用:✅ 启用

步骤2:配置触发器

  1. 点击 添加触发 按钮
  2. 填写:
    • 触发类型:选择 平台触发
    • 操作符:选择 匹配模式
    • 比较值:{"cmd":"stop"}

步骤3:配置动作

  1. 点击 添加动作 按钮

  2. 填写:

    • 动作类型:选择 电机控制
    • 目标外设:选择 stepper_01
    • 动作参数:stop
  3. 点击 保存 按钮

支持的动作 ​

参数行为边界
forward连续正转没有自动到位停止
reverse连续反转没有自动到位停止
stop停止调度并申请释放线圈SDK确认不等于机械急停
{"periphId":"stepper_01","action":"setSpeed","value":"8"}目标转速8RPM实际速度受调度/电机影响

注意事项 ​

  1. 电源:步进电机需 5V 独立供电,ULN2003 不能从 ESP32 3.3V 取电
  2. 发热:步进电机静止时仍有保持电流,长时间不用应断电
  3. 速度限制:28BYJ-48 最高约 15RPM,超过会丢步
  4. 引脚顺序:IN1-IN4 顺序必须正确,否则电机会震动但不转
  5. 停止失败:保留故障与原脚,成功清理后才能再次启动;不要用新的方向指令覆盖未知输出状态

蜂信物联 | fastbee.cn