arduino编写程序控制舵机

img


arduino ide编写了舵机的程序,为什么每次执行完指令后都会返回到0°呢?求解惑

可以看看这个代码中是否没有对舵机位置进行记录和持久化的操作,导致每次都回到了0°。你可以通过定义一个全局变量来记录舵机当前的位置,并在代码的末尾将其写回舵机。具体实现方法如下:

int currentPos = 0;
void loop(){
if( Serial.available()>0){
dataIndex++;
Serial.print("dataIndex =");
Serial.print(dataIndex);
Serial.print(",");
int pos = Serial.parseInt();
serial.print("set servo position:");
serial.println(pos);
myservo.write(pos);
currentPos = pos; // 记录当前位置
delay(15);
}
}

在程序退出之前,把当前位置写回舵机:

void loop(){
...
}
void exit(){
myservo.write(currentPos); // 将当前位置写回舵机
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^