如何通过Arduino串口监视器独立控制两个舵机转动
Arduino双舵机独立控制代码修改方案
以下是修改完成后可实现独立控制的完整代码:
#include <Servo.h> Servo servo1; Servo servo2; void setup() { // 初始化代码仅运行一次 Serial.begin(9600); servo1.attach(6); servo1.write(0); servo2.attach(7); servo2.write(0); } void loop() { // 主循环代码重复运行 String readString; String cmd; String angleStr; int targetAngle; // 串口数据读取逻辑 while (Serial.available()) { delay(1); // 延迟等待缓冲区填充完成 if (Serial.available() > 0) { char c = Serial.read(); // 从串口缓冲区读取单个字节 if (isControl(c)) { break; } readString += c; // 拼接为完整字符串 } } cmd = readString; // 指令匹配与执行逻辑 if(cmd.substring(0,1)=="S"){ angleStr = cmd.substring(1); targetAngle = angleStr.toInt(); delay(100); servo1.write(targetAngle); // 仅控制1号舵机 } else if(cmd.substring(0,1)=="Q"){ angleStr = cmd.substring(1); targetAngle = angleStr.toInt(); delay(100); servo2.write(targetAngle); // 仅控制2号舵机 } }
修改说明
- 新增Q开头指令的判断分支,S开头指令对应控制接在6号引脚的1号舵机,Q开头指令对应控制接在7号引脚的2号舵机
- 删除原代码中S指令下同时给两个舵机写入角度的逻辑,每个分支仅对对应舵机下发角度指令
- 使用时在串口监视器输入
S+角度值即可控制1号舵机转动到对应角度,例如输入S100则1号舵机转到100度;输入Q+角度值即可控制2号舵机转动到对应角度,例如输入Q50则2号舵机转到50度
内容的提问来源于stack exchange,提问作者Filip GG
相关产品推荐
相关产品推荐

