Stepper Motor
About 3 min
Stepper Motor
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
- Peripheral capability, supported device types, and wiring constraints.
- Web console configuration fields and recommended parameter values.
- PeriphExec integration, validation steps, and troubleshooting 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.
步进电机
功能说明
步进电机外设支持 4 引脚半步/全步驱动模式,可精确控制转速和方向。适用于精确定位、机械臂、3D 打印等场景。
支持的外设类型
| 类型 | type值 | 说明 |
|---|---|---|
| STEPPER_MOTOR | 42 | 步进电机(4引脚驱动) |
硬件接线
ULN2003 驱动板 + 28BYJ-48 步进电机
| 驱动板引脚 | ESP32 GPIO | 说明 |
|---|---|---|
| IN1 | GPIO 32 | A 相 |
| IN2 | GPIO 33 | B 相 |
| IN3 | GPIO 25 | C 相 |
| IN4 | GPIO 26 | D 相 |
| VCC | 5V | 电源(需外部供电) |
| GND | GND | 地 |
步进电机电流较大,建议使用外部 5V 电源,不要直接从 ESP32 取电。
配置方式
方式1:Web界面配置(推荐)
步进电机保存前重点核对驱动板 IN1-IN4 引脚顺序、步数和速度参数。
步骤1:进入外设管理页面
- 打开浏览器访问 ESP32 IP 地址
- 登录后点击左侧菜单 外设配置
步骤2:添加步进电机外设
点击 新增外设 按钮
填写配置:
字段 填写内容 说明 外设ID stepper1唯一标识符 名称 28BYJ-48步进电机显示名称 外设类型 步进电机 (type: 42) 4引脚驱动 引脚配置 32,33,25,26IN1-IN4对应GPIO 每转步数 204828BYJ-48半步模式 转速 10RPM(建议≤15) 半步驱动 true半步=更平滑 点击 保存
步骤3:验证配置
- 在外设列表中找到刚添加的外设
- 点击 启用 开关
- 使用控制面板测试旋转(输入步数)
⚠️ 重要:步进电机需外部5V电源,引脚顺序必须对应IN1-IN4
方式2:JSON配置文件导入
将以下配置添加到 data/config/peripherals.json 的 peripherals 数组中:
{
"id": "stepper1",
"name": "步进电机",
"type": 42,
"enabled": false,
"pins": [32, 33, 25, 26],
"params": {
"stepsPerRevolution": 2048,
"speed": 10,
"halfStep": true
}
}参数说明
| 参数 | 说明 |
|---|---|
| stepsPerRevolution | 每转步数(28BYJ-48 半步模式为 2048) |
| speed | 转速(RPM) |
| halfStep | 是否使用半步驱动(true=半步,false=全步) |
pins[0]-pins[3] 分别对应驱动板的 IN1-IN4
控制命令
通过 MQTT 或 Web 界面发送控制命令:
[{"id": "stepper1", "value": "2048"}]- 正值:正转指定步数
- 负值:反转指定步数
0:停止
与外设执行联动
Web界面配置步骤
创建步进电机控制规则
- 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 配置触发器(定时触发或事件触发)
- 添加步进电机动作:
- 动作类型:设置PWM(步进电机使用步数控制)
- 目标外设:stepper1
- 动作值:2048(正转一圈)或 -2048(反转一圈)
- 点击 保存
💡 提示:正值=正转,负值=反转,0=停止
JSON配置示例
定时旋转
{
"name": "定时旋转步进电机",
"enabled": true,
"triggers": [
{
"type": "timer",
"params": { "interval": 5000 }
}
],
"actions": [
{
"type": "gpio_write",
"params": {
"periphId": "stepper1",
"value": "512"
}
}
]
}按键触发旋转
{
"name": "按键控制步进电机",
"enabled": true,
"triggers": [
{
"type": "event",
"params": { "periphId": "btn1", "event": "pressed" }
}
],
"actions": [
{
"type": "gpio_write",
"params": {
"periphId": "stepper1",
"value": "2048"
}
}
]
}注意事项
- 供电要求:步进电机需独立 5V 电源,切勿从 ESP32 USB 口直接供电
- 发热问题:长时间锁定(保持通电)会导致驱动板和电机发热,不用时建议断电
- 步数精度:28BYJ-48 减速比为 1:64,实际每转步数约 2048(半步模式)
- 速度限制:速度过快会导致丢步,建议 RPM ≤ 15
- 引脚顺序:4 个引脚顺序必须与驱动板 IN1-IN4 对应,接反会导致电机振动不转
