Slowing down servos

The noob is back....
So a servo moves to either of its extreme angles with pwm of 1000 to 2000 milliseconds duty cycle. So i want to slow down the amount of tim it takes for it to go from an angle to another, say 90° in 3 seconds.
I will give it <1200 ms and >1800 ms and i want it to turn 90° in 3 seconds. How do i do this using an arduino nano?

You move 1° by 1° using some sort of time management (millis(), delay) depending on your needs .

Alternatively There is also the VarSpeedServo library

Step the servo so it moves a few degrees at a time, add a wait time, repeat until you have reached the desired position.

In my opinion the usual pulse widths for servos are 1000 - 2000 microseconds, 1.000 to 2.000 milliseconds....

1 Like

Yes, my bad but u get the gist

Okey, mistyping only. Just thought I might save You from coding using milliseconds....
Moving servos using that pulsing was a standard already 1973 when I entered first class at the university.

Also many servos respond to a wider range than 1000-2000. The default for the Servo library is 544-2400.


When I buy a new servo I will test it to see its range of motion versus the pulse width that it will handle. Some will respond to more than 1000 - 2000, some less. Some will go 0 to 180 or more, some less. I test then mark the servo for future reference.


The sweep example does this using loops. Mess with the delay() at the end and you should be able to achieve what you want without messing with duty cycles or timings.

Thanks! Never meant it in a mean way. Help always appreciated