教程五 ST3215总线舵机控制例程
来自Waveshare Wiki
各模块使用教程
- 序章 安装Arduino IDE
- 教程一 带编码器电机控制例程一
- 教程二 带编码器电机控制例程二
- 教程三 带编码器电机控制例程三
- 教程四 无编码器电机控制例程
- 教程五 ST3215总线舵机控制例程
- 教程六 PWM舵机控制例程
- 教程七 IMU数据读取例程
- 教程八 SD卡读取例程
- 教程九 INA219电压电流监测例程
- 教程十 OLED屏幕控制例程
- 教程十一 激光雷达和在ROS2中发布雷达话题
- General Driver for Robots 主页
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); }