I was working with a servo controller recently. My initial design was using two 555 timer. One is an astable which generate 20ms period and a monostable which i use a potentiometer to control the pulse duration. I was able to control the speed and the position of the servo by varying the potentiometer.

I'm using a futaba servo motor.

Then I decided to implement the system using microcontroller. But I could not slow down the servo rotation speed.

I tried put multiple steps. Initially i put 25 cycles for each pulse duration from 1ms to 2ms with increment of 0.1 ms. The transition is not smooth even reducing to 15 cycles.

I tried running from 1ms to 2ms with increment of 1us. It causes the servo to hum and jam at the position.

Is there any possible way to control the speed of rotation of the servo motor using a microcontroller? Thanks