Example 8: stepper motor control
About 3 min
Example 8: stepper motor control
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Overview
- Wiring
- JSON Configuration Example
- PeriphExec Linkage
- Notes
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
示例8:步进电机控制
实验概述
通过 ULN2003 驱动板控制 28BYJ-48 步进电机,实现精确的角度和转速控制。FastBee 内置 STEPPER_MOTOR 外设类型(type: 42),支持半步驱动模式。
硬件接线
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| IN1 | GPIO15 | ULN2003 驱动板 IN1 |
| IN2 | GPIO2 | ULN2003 驱动板 IN2 |
| IN3 | GPIO0 | ULN2003 驱动板 IN3 |
| IN4 | GPIO4 | ULN2003 驱动板 IN4 |
ULN2003 模块需外接 5V 电源,28BYJ-48 步进电机每圈 2048 步(半步模式)。
JSON 配置示例
{
"peripherals": [
{
"id": "stepper_01",
"name": "ULN2003步进电机",
"type": 42,
"enabled": false,
"pins": [15, 2, 0, 4],
"params": {
"stepsPerRevolution": 2048,
"speed": 8
}
}
]
}参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| stepsPerRevolution | 每圈步数(28BYJ-48半步=2048) | 2048 |
| speed | 转速(RPM) | 8 |
外设执行联动
场景1:正转一圈(平台触发)
功能:通过云平台指令控制电机正转一圈(2048步)
Web界面配置步骤
步骤1:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
步进电机正转 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 平台触发 接收云平台指令 操作符 选择 匹配模式 匹配指令 比较值 {"cmd":"forward"}正转指令
步骤3:配置动作
点击 添加动作 按钮
填写动作配置:
字段 填写内容 说明 动作类型 选择 调用外设 调用外设方法 目标外设 选择 stepper_01步进电机外设 动作参数 2048正转2048步(一圈) 点击 保存 按钮
执行流程:
收到正转指令
↓
调用 stepper_01 的 move 方法
↓
正转2048步(一圈)
↓
动作完成(阻塞执行)⚠️ 注意:stepper_move 动作会阻塞当前规则直到电机转动完成
场景2:反转半圈(平台触发)
功能:通过云平台指令控制电机反转半圈(-1024步)
Web界面配置步骤
步骤1:创建规则
- 点击 新增规则
- 填写基础配置:
- 规则名称:
步进电机反转 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
- 点击 添加触发 按钮
- 填写:
- 触发类型:选择 平台触发
- 操作符:选择 匹配模式
- 比较值:
{"cmd":"reverse"}
步骤3:配置动作
点击 添加动作 按钮
填写:
- 动作类型:选择 调用外设
- 目标外设:选择
stepper_01 - 动作参数:
-1024(负数表示反转,1024步=半圈)
点击 保存 按钮
步数与角度换算
| 步数 | 角度 | 说明 |
|---|---|---|
| 2048 | 360° | 一整圈 |
| 1024 | 180° | 半圈 |
| 512 | 90° | 四分之一圈 |
| 256 | 45° | 八分之一圈 |
| -2048 | -360° | 反转一整圈 |
注意事项
- 电源:步进电机需 5V 独立供电,ULN2003 不能从 ESP32 3.3V 取电
- 发热:步进电机静止时仍有保持电流,长时间不用应断电
- 速度限制:28BYJ-48 最高约 15RPM,超过会丢步
- 引脚顺序:IN1-IN4 顺序必须正确,否则电机会震动但不转
- 阻塞执行:stepper_move 动作会阻塞当前规则直到完成
