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.
>
> __Message
Re: [AVR-Chat] control servo motor
2008-11-10 by Sander Pool
Attachments
- No local attachments were found for this message.