It works better now. I simply sent the desired positions 4 times, and now the servo moves from approx. 45°, but not the desired full 90 degrees around its middle position.
Is there a better way? Like leaving out the delays and calling the servoPulse routine 10 times?
void loop() {
// cycle through every angle (rotate the servo 180 slowly)
for (myAngle=0; myAngle<=180; myAngle++) {
servoPulse(servoPin, myAngle);
delay(100);
servoPulse(servoPin, myAngle);
delay(100);
servoPulse(servoPin, myAngle);
delay(100);
servoPulse(servoPin, myAngle);
delay(100);
servoPulse(servoPin, 90);
delay(100);
servoPulse(servoPin, 90);
delay(100);
servoPulse(servoPin, 90);
delay(100);
servoPulse(servoPin, 90);
delay(100);
}
delay(1000);
}