Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] control servo motor

2008-11-10 by Sander Pool

This is probably obvious to the more experienced experimenters here but 
when I worked with servos and a mega128 I had spurious problems with my 
code that I traced back to the power supply getting 'hit' by the servos 
when they were being driven. Make sure you have separate power (common 
ground, of course) and a driver between your µC and servo.

As I recall I used one of the PWM channels.

    Sander

David VanHorn wrote:
>
> >> The period between the pulses can be varied, shorter means more
> >> accurate control.
>
> I worked with this a while back on the 8515. With a longer delay
> between pulses, the servo wasn't active as much, and with extreme
> values, it turned into a "bang-bang-bang" kind of output, with each
> pulse bringing the servo closer to proper position, and not driven
> most of the time. With high rates, the servo was noticably stiffer.
> I didn't measure it, but I suspect that the motor is only driven for a
> short while after the pulse stops.
>
> I also found fairly large variations in the pulse widths for
> "standard" servos. IIRC 750uS was the bottom end. I had a bunch of
> different brands, and ended up implementing a table so that I could
> set the servo brand per channel, and calculate the widths based on
> what I measured for min and max on each.
>
> 1ms should be in-range for most anything. Maybe 1.25 would be safer.
>
> Something I didn't mention before, and I should have, is that you
> don't want to hit the servos with pulses that are out of their
> operating range. They will run into the mechanical stops, and this is
> hard on the motor and gears. You can do it for short times, but it's
> best not to do it at all.
>
> __

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.