1、#000P1500T1000!
解析:"#"和"!"是固定英文格式。
000 代表 ID编号(范围 000-254),必须为 3 位,不足补 0。比如 3 号舵机为"003"而不能为"3"。
1500 代表 PWM 脉冲宽度调制(P)(范围 0500-2500),必须为 4 位,不足补 0。比如 PWM 为 800,则必须为"P0800"。
1000代表 TIME 时间(T)(范围 0000-9999),同样必须为 4 位,不足补 0,单位 ms。比如 TIME 为 500,则必须为"T0500" 。
多个舵机控制指令:{#000P1602T1000!#001P2500T0000!#002P1500T1000!}
该指令可以叠加同时控制多个舵机。多个指令同时使用时(2 个或 2 个以上叠加)需要在整条指令前后加"{}"。
使用场景1:控制一个270度总线舵机,ID号为003。初始中间位置指令为#003P1500T1000!
如果我想要它逆时针最快转动135°,发指令#003P2500T0000!
然后,再顺时针最慢转动270°,发指令#003P0500T9999!
解析:P后面的0500-2500的范围值代表270度角度范围。T后面0000-9999代表的是时间,单位ms毫秒,舵机轴朝着自己,1500-2500方向为逆时针转动1500-0500为顺时针转动。
使用场景2:控制两个270度总线舵机,ID号分别为001和003。初始中间位置指令为{#001P1500T1000!#003P1500T1000!}
如果我想要001号它逆时针用1000ms时间转动67.5°,003号顺时针用2000ms的时间转动90°,发指令{#001P2000T1000!#003P0833T2000!}
解析:#001P2000T1000!其中P后面2000为1500-2500的中间值,也就是135度的一半为67.5°。003号舵机转动90°,是1500-0500之间有1000数值代表135°。那么90°为
1500-((90/135)*1000)≈833。
2、#000PID!
解析:指定 ID 检测,该指令时读取 000 的 ID,检测当前舵机是否为 000 这个 ID 号,是返回#000P! #OK!。否则无返回。
如果不知道舵机ID号是多少,推荐用广播模式#255PID!读取
3、#000PID001!
解析:指定修改 ID,该指令是把 000 号 ID 改为 001 号,修改成功后返回#001P!。不成功无返回。
如果不知道舵机ID,就用255修改,比如广播模式#255PID001!修改,返回#001P!
C
/**********************************************
* @总线设备基本控制指令表:
* 1. #000PID! //读取ID指令
* 2. #000PID001! //设置ID指令
* 3. #000PVER! //读取版本
* 4. #000PBD1! //设置波特率 默认115200 1:9600 , 2:19200 , 3:38400 , 4:57600 , 5:115200 , 6:128000 7:256000 8:1000000
* 5. #000PCLE! //恢复出厂设置包括ID
* @总线马达ZMotor控制指令表:
* 1. #000P1500T1000! //电机速度控制
**********************************************/
uart3_send_str((u8 *)"#255PID001!");
delay_ms(500);
uart3_send_str((u8 *)"#001PID!");
delay_ms(500);
uart3_send_str((u8 *)"#001P2500T3000!");
delay_ms(5000);
uart3_send_str((u8 *)"#001P0500T3000!");
delay_ms(5000);
uart3_send_str((u8 *)"#001P1500T1000!");
此控制板不错
FlyMCU烧写程序配置: