可以看看这个代码中是否没有对舵机位置进行记录和持久化的操作,导致每次都回到了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); // 将当前位置写回舵机
}
不知道你这个问题是否已经解决, 如果还没有解决的话: