Servo help for a noob please.

Hi Folks,

My Arduino arrived yesterday and so far, I have blinking LEDs, singing piezo, knock sensor etc. All very interesting. However, I am pulling my hair out with the servo example from the playground.

When I upload the sketch, the servo does noting. (Expected :)) When I send a 90s, the servo goes all the way to the limit and "quivers" there. There is considerable load (not measured but the 7805 heats up rather quickly)

I have tried a number of different demos but to no avail. They all do the same to the servo. Could it be the pulse width that is wrong? I thought they all standard. I have tried playing with various different values but that too has had no effect.

The servo is a Futaba 3010. According to the tech spec, it's neutral pulse width is 1250usec.

Any help is appreciated.



Most servos should have a range of approx. 1 to 2 ms with a center around 1.5 (these figures vary between brands and even between servos of the same model) Try values in this range. Check your code to be sure you are using the correct clock values. If the servo is driven against its stops it will 'stall' and the current will be at maximum, also you run the risk of stripping the gears inside so keep the drive voltage low and don't run it too long if it runs to the stop.

Thanks for the info. I had actually sussed it eventually. As you said, it was the timing issue.
I found the info on the servo somewhere. The problem was I was not setting the min pulse width.
servo1.setMinimumPulse(450); did the trick. Works like a charm now.

Onwards and upwards…