arduino外接微动按键控制sg90舵机程序的问题

初学者试着编辑了个两个按键控制伺服电机正反转的程序,但按下开关电机转到目标值会发生小幅往复转动的情况,请教一下是代码哪里出了问题还是硬件的问题。
#include <Servo.h>
Servo myservo;
int pushButton1 = 2;
int pushButton2 = 4;
int pos = 90;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

myservo.attach(9);
pinMode(pushButton1,INPUT);
pinMode(pushButton2,INPUT);

}

void loop() {
// put your main code here, to run repeatedly:
int buttonState1 = digitalRead(pushButton1);
int buttonState2 = digitalRead(pushButton2);
Serial.print(buttonState1);
Serial.println(buttonState2);
delay(15);
if(buttonState1==0){
for(pos =90;pos<=160;pos++)
myservo.write(pos);
delay(15);
}
if(buttonState2==0){
for(pos=90;pos>=10;pos--)
myservo.write(pos);
delay(15);
}

}

img

懂了,经过排查发现是for循环初始值的问题,POS不应该为一个确定值,而应该是当前值,否则电机会优先执行回到90度