docs 05 无编码器电机控制例程
ST3215 总线舵机
ST3215 总线舵机一款大扭矩的可编程串行总线舵机,具体可点击 详情页 查看。以下提供总线舵机的简单控制程序。
上传程序
下载 依赖库文件,下载完成后解压到 C:\Users\username\AppData\Local\Arduino15\libraries 路径下。

点击 例程下载 打开 Servo.ino,用 USB 线将多功能驱动板和计算机连接起来(此处插入的是多功能驱动板 USB 的 Type-C 接口),点击“工具”→“端口”,再点击新出现的 COM(这里新出现的 COM 为 COM26)。

在 Arduino IDE 中,点击“工具”→“开发板”→“ESP32”→“ESP32 Dev Module”。开发板以及端口都选择好后上传程序。上传程序后,将总线舵机和驱动板上的 ST3215 总线舵机接口连接上,将 XH2.54 供电接口接上电源后运行程序,可以看见舵机会来回摆动。
程序解析
#include <SCServo.h>
SMS_STS st;
#define S_RXD 18 //设置串口接收引脚
#define S_TXD 19 //设置串口发送引脚
void setup()
{
//初始化串口通信,这个串口是用于 USB 线和电脑上的串口监视器通信的
Serial.begin(115200);
//初始化串口 1 通信,用于控制总线舵机的;SERIAL_8N1 为配置数据、奇偶校验和停止位;指定了串口引脚
Serial1.begin(1000000, SERIAL_8N1, S_RXD, S_TXD);
//将 SCServo 对象的串口参数设置为 Serial1,表示使用 1000000 串口来控制舵机
st.pSerial = &Serial1;
delay(1000);
}
void loop()
{
st.WritePosEx(1, 4095, 3400, 50); //设置舵机 1 的位置、速度和加速度,延迟 2s
delay(2000);
st.WritePosEx(1, 2000, 1500, 50); //设置舵机 1 的位置、速度和加速度,延迟 2s
delay(2000);
}