The secret of the servo control

To use a servo with the Arduino, you have two possibilities. You can use the servo library, or you control the servo with your own code. But to write your code, you need to know the basics, how a servo works.
There are two facts: The cycle or refresh time and the pulse width.

The cycle or refresh time.
It’s not enough to send a position value to the servo. You must do this over and over again! If you don’t do this the servo forget the actually position and start to move. The normal cycle or refresh time is 25 ms (some sources in the internet say 20 ms). Each 25 ms you must send the position value.

The pulse width.
With the pulse width you tell the servo the position you want.
The longer the pulse, the longer moves the servo. Different servos has different values, but they are similar.
The path of movement is left (short way)- middle – right (long way). So are also the pulse width values. You reach the left position with 500 µs, the middle position with 1500 µs and the right position with 3000 µs pulse width.
The pulse width to reach the middle position is always 1500 µs. But the other two values are different, depending of the type of servo. So it’s possible you starts with 700 µs and ends with 2700 µs or earlier. You should test it.

 

servo_position