Servo keeps returning to 0 after move
my servo reacts should , moves position, it's there returns 0 goes loop of movement.
i have code reads state of switch. if switch low, moves servo down 0. if switch high, moves servo 140.
as stands, if switch low, servo behaves , stays down. if switch high, moves up, shoots down, shoot again in continuous loop. i've tested switch , being read absolutely fine. no issues reading can't life of me figure out what's causing it.
here's code:
i have code reads state of switch. if switch low, moves servo down 0. if switch high, moves servo 140.
as stands, if switch low, servo behaves , stays down. if switch high, moves up, shoots down, shoot again in continuous loop. i've tested switch , being read absolutely fine. no issues reading can't life of me figure out what's causing it.
here's code:
code: [select]
maskbuttonstate = digitalread(maskbutton);
eyesbuttonstate = digitalread(eyesbutton);
if((servostate == false) && (maskbuttonstate == high)){
digitalwrite(eyes, low);
eyestate = false;
delay(500);
(pos = 70; pos <= 140; pos += 1){
myservo.write(pos);
}
servostate = true;
maskbuttonstate = digitalread(maskbutton);
}else if((servostate == true) && (maskbuttonstate == low){
(pos = 140; pos >= 70; pos -= 1){
myservo.write(pos);
}
if(eyesbuttonstate == high){
delay(500);
digitalwrite(eyes, high);
eyestate = true;
};
servostate = false;
}
i wonder if compound ifs doing think
try this
i not claiming have done things correctly, errors should more obvious. , can insert serial.print() statements watch doing.
...r
try this
code: [select]
maskbuttonstate = digitalread(maskbutton);
eyesbuttonstate = digitalread(eyesbutton);
if(servostate == false) {
if(maskbuttonstate == high)){
digitalwrite(eyes, low);
eyestate = false;
delay(500);
for (pos = 70; pos <= 140; pos += 1){
myservo.write(pos);
}
servostate = true;
maskbuttonstate = digitalread(maskbutton);
}
}
}else if(servostate == true) {
if (maskbuttonstate == low){
for (pos = 140; pos >= 70; pos -= 1){
myservo.write(pos);
}
if(eyesbuttonstate == high){
delay(500);
digitalwrite(eyes, high);
eyestate = true;
};
servostate = false;
}
}
i not claiming have done things correctly, errors should more obvious. , can insert serial.print() statements watch doing.
...r
Arduino Forum > Using Arduino > Motors, Mechanics, and Power (Moderator: fabioc84) > Servo keeps returning to 0 after move
arduino
Comments
Post a Comment