I am trying to write code for my hexapod, but when I write a walkForward function add delays into the walking sequence to give the servos time to move to the new positions I am limited to less than 1500 ms total for the function. If I go beyond that, the arduino stats reporting buttons being pushed and released that are not being touched. I have experimented and it is a total of all delays that messes things up.
Any ideas why and if there is a way around it?
Also I get a delay when pushing buttons, I assume it is the “delay(50);” statement at the end of your sample that s causing it, but if I remove the delay the arduino quits finding the PS2 controller.
Any ideas?
This will work:
void walkForward()
{
Serial.println(“Forward working”);
legOneServoTwo.write(UP);
legFourServoTwo.write(UP);
legFiveServoTwo.write(UP);
delay(225); // this delay is to give to servos time to
legOneServoOne.write(FORWARD); // move before the next part of a step
legTwoServoOne.write(BACKWARD); // but if I increase the delays to 250 the
legFourServoOne.write(FORWARD); // arduino gets unstable and goes crazy
legThreeServoOne.write(BACKWARD);
legFiveServoOne.write(FORWARD);
legSixServoOne.write(BACKWARD);
delay(225);
legOneServoTwo.write(DOWN);
legFourServoTwo.write(DOWN);
legFiveServoTwo.write(DOWN);
delay(225);
legTwoServoTwo.write(UP);
legThreeServoTwo.write(UP);
legSixServoTwo.write(UP);
delay(225);
legTwoServoOne.write(FORWARD);
legOneServoOne.write(BACKWARD);
legThreeServoOne.write(FORWARD);
legFourServoOne.write(BACKWARD);
legSixServoOne.write(FORWARD);
legFiveServoOne.write(BACKWARD);
delay(225);
legTwoServoTwo.write(DOWN);
legThreeServoTwo.write(DOWN);
legSixServoTwo.write(DOWN);
delay(225);
}
But if delay is increased to 250 then it goes crazy.
tia
wkinne