第1部分 产品介绍
MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈,有效防止电机丢步。适合小型机械臂,3D打印机,雕刻机,写字机,自动化产品以及电子竞赛等应用。
硬件开源,性价比高!
第2部分 相关资料下载
2.1 源代码下载
百度网盘:
https://pan.baidu.com/s/1BjrK9SC8pWnDoU32F8jHqA?pwd=mks2
06_例程-arduino系列
第3部分 参数配置和注意事项
3.1 电机参数配置
- 设置波特率: 菜单 → UartBaud → 38400
- 设置从机地址: 菜单 → UartAddr → 01
3.2 注意事项
- 串口和USB下载口共用串口(0,1),USB上传程序时,先拔掉串口线,以免程序上传失败;
- 如果程序上传失败,可以尝试:按住UNO的RESET按键,再点击上传,待arduino显示“正在上传”时,迅速松开按键;
- 42D/57D串口为RS485电平,需要一个TTL转RS485电平模块。
第4部分 脉冲控制电机运行示例
-
接线说明
-
代码说明
代码功能:arduino UNO 主板发送脉冲信号,控制电机循环正反转动。
程序运行后,可观察到:
a. LED灯亮,电机正转一圈
b. LED灯灭,电机反转一圈
c. 如此不断循环
第5部分 读取参数示例
5.1 读取电机实时位置
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口读取电机实时位置信息。
程序运行后,可观察到:
a. LED灯每秒闪烁一次,即串口发出读取实时位置指令;
b. 串口监视器可以观察到每秒输出一个位置值 location = xxxxx;
c. 手转动电机轴,可以看到位置值变化 (增加或减少)。
-
串口监视器输出结果
5.2 读取电机实时转速
-
接线说明
-
代码说明
代码功能:arduino UNO 主板串口读取电机实时转速。
程序运行后,可观察到:
a. 电机匀速运行,每10秒改变一次转速(通过定时器1中断实现);
b. LED灯每秒闪烁一次,即串口发出读取实时转速指令;
c. 串口监视器可以观察到每秒输出一个位置值 speed = xx RPM;
-
串口监视器输出结果
5.3 读取电机输入脉冲数
-
接线说明
-
代码说明
代码功能:arduino UNO 主板串口读取输入脉冲数。
程序运行后,可观察到:
a. 电机匀速运行,每10秒改变一次转速(通过定时器1中断实现);
b. LED灯每秒闪烁一次,即串口发出读取脉冲数指令;
c. 串口监视器可以观察到每秒输出一个位置值 pulses = xxxx;
-
串口监视器输出结果
5.4 读取电机位置误差
-
接线说明
-
代码说明
代码功能:arduino UNO 主板串口读取位置误差。
程序运行后,可观察到:
a. 电机匀速运行,每10秒改变一次转速(通过定时器1中断实现);
b. LED灯每秒闪烁一次,即串口发出读取位置误差指令;
c. 串口监视器可以观察到每秒输出一个位置误差 error = xxxx;
-
串口监视器输出结果
注意:errors = 51200 对应角度值360度
5.5 读取电机IO端口状态
-
接线说明
-
代码说明
代码功能:arduino UNO 主板串口读取IO端口状态。
程序运行后,可观察到:
a. LED灯每秒闪烁一次,即串口发出读取脉冲数指令;
b. 串口监视器可以观察到每秒输出一个IO状态 IN_1=x IN_2=x OUT_1=x OUT_2=x;
c. 改变输入端口状态(比如IN_1端口接地),可以观察到输出IO状态也会跟着变化;
-
串口监视器输出结果
注: 1-高电平; 0-低电平
第6部分 设置参数示例
6.1 设置电机工作模式
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口设置工作模式。
程序运行后,可观察到:
a. LED灯亮,即串口发出设置细分指令;
b. 如果设置成功,LED灯慢闪,可通过屏幕菜单Mode选项,查看设置的工作模式;
c. 如果设置失败,LED灯快闪。
6.2 设置电机工作电流
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口设置工作电流。
程序运行后,可观察到:
a. LED灯亮,即串口发出设置细分指令;
b. 如果设置成功,LED灯慢闪,可通过屏幕菜单Ma选项,查看设置的电流;
c. 如果设置失败,LED灯快闪。
6.3 设置电机工作细分
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口设置工作细分。
程序运行后,可观察到:
a. LED灯亮,即串口发出设置细分指令;
b. 如果设置成功,LED灯慢闪,可通过屏幕菜单MStep选项,查看设置的细分;
c. 如果设置失败,LED灯快闪。
6.4 恢复出厂参数
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口恢复出厂参数。
程序运行后,可观察到:
a. LED灯亮,即串口发出恢复出厂参数指令;
b. 如果恢复成功,LED灯慢闪,屏幕显示“Reload ok”,“Reboot…”,电机会自动重启,需要重新校准电机;
c. 如果恢复失败,LED灯快闪。
第7部分 电机运行示例
7.1 电机速度模式运行
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口控制电机以速度模式运行。
程序运行后,可观察到:
a. LED灯亮/灭一次,电机改变一次速度运行,不停循环运行;
b. 如果运行失败,LED灯快闪;
7.2 电机位置模式1-按脉冲数运行
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口控制电机以脉冲数运行。
程序运行后,可观察到:
a. 电机按设定的脉冲数运行到指定位置(10圈),停止2000ms;
b. 改变方向,再运行到指定位置(10圈),停止2000ms;
c. 不停循环运行;
d. 如果运行失败,LED灯快闪。
7.3 电机位置模式2-按相对坐标运行
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口控制电机按相对坐标运行。
程序运行后,可观察到:
a. 电机按设定的相对坐标(realAxis)运行到指定位置(10圈),停止2000ms;
b. 相对坐标(realAxis)取反,电机运行到起点位置,停止2000ms;
c. 不停循环运行;
d. 如果运行失败,LED灯快闪。
7.4 电机位置模式3-按绝对坐标运行
-
接线说明
-
代码说明
代码功能:arduino UNO 主板通过串口控制电机按按绝对坐标运行。
程序运行后,可观察到:
a. 电机运行到绝对坐标(absoluteAxis=0),停止2000ms;
b. 电机运行到绝对坐标(absoluteAxis=163840),停止2000ms;
c. 不停循环运行;
d. 如果运行失败,LED灯快闪。
注:本文同样适合后续产品MKS SERVO28D/35D闭环步进电机
下一篇:《MKS SERVO42&57D 闭环步进电机_系列11 STM32_脉冲和串口例程》
欢迎加入MKS 闭环步进电机技术交流 Q群(948665794)
欢迎光临 创客基地 B站:https://space.bilibili.com/393688975
欢迎光临 创客基地 淘宝店:https://makerbase.taobao.com/
网盘资料下载 https://pan.baidu.com/s/1BjrK9SC8pWnDoU32F8jHqA?pwd=mks2