Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Newbie question about servos

Status
Not open for further replies.

insight

New Member
I uploaded the basic servo program into my Arduino. Its just sweeping from 0 to 180. Now, 0 is not 0 and 180 is not 180. The total physical sweeping angle is less than 180, maybe about 160 degrees. If I tell servo to go to 200 degrees, than servo just stands still without moving.

Is the fact that hardware sweep is less than software sweep problem with a servo?
 
Most servo's will mechanically go through 180 degrees of motion, you could probably get more out of them but you'd have to modify the potentiometer. Servo's can be modified for 360 degree rotation, but they become speed controlled motors at that point there position can't be controlled anymore, only the direction and speed.

You have to keep in mind though most simply hobby servos use pulse stretchers to translate the incoming servo pulses into the pulses that the motors actually get, the 1ms to 2ms standard servo signal should give you 45 degree's of movement either side of center, pulses less than 1ms and greater than 2ms will give you the 180 degrees however this can cause the servo to tweak out of the internal pulse stretcher signal overlap, which can occur depending on the rate you send the servo signal pulses. There's a lot of variability though because there are no real standards for hobby servo's, just conventions.
 
If I understand correctly movement of servo is directly proportional to the lenght of signal. For example, if signal lasts 1.543 milliseconds, than servo will go to 93.5 degrees. Pulled numbers out of hat, just for the illustration.
 
THe pulse length determines the absolute position the RC servo will go to, NOT the amount of travel to move relative to it's current position.

The frequency of the pulses doesn't matter much either as long as it is frequent enough so the servo doesn't "forget" where it was supposed to be. The only thing it is looking at is on-time of the pulse.
 
so what you say, is that you do not just send one pulse of a certain length, in order to keep servo at a desired position. You actually need to keep sending that same pulse, of the same length, again and again, in order to keep servo at the same absolute position.
 
You didn't know that insight? Standard servo signals have to be sent roughly ever 20ms minimum, this is what standard RC equipment does. Higher frequency updates can increase the available torque on the servo but can also cause the servo to tweak out towards it's extreme positions off center.
 
Last edited:
I am just learning electronics. Got up to the servo's lesson :D

So basically it is PWM signal, with 20ms period.
 
1-2ms pulses repeated every 20ms, yes. Conventionally 1.5ms is considered 'center' the actual position this represents is dependent on the servo maker. I've successfully 'overdriven' the 20ms period (50hz) to nearly 100hz (ever 10ms) however this has to be tested on specific servo's, it will increase responsiveness and available torque by a measurable amount.
 
I've never heard of an overdriven servo burning out, the gears will break long before the motor in a servo generally gives out. The only risk is that if you send the pulses too fast at the extremes of servo throw (the 1ms and 2ms sides) the servo may get a new servo pulse before he last one has exited the pulse stretcher, this will cause the servo to spastically twitch and go to random positions. It's probably slightly temperature dependent, but in general I'd say it's no risk and all benefit to do 75hz update rate, approximately 13ms.

So called 'digital servos' do this for you, they record the servo pulses remember them and regenerate them internally while taking in the standard 20ms spaced pulses. The benefit is greater holding torque and power for short throw movements and if the servo is lightly loaded it will increase the speed as well. In some cases it can cause 'hunting' if you have an elastic load attached to the servo arm but this is seldom an issue, hunting means the servo will bounce back and forth just a tiny little bit at a relatively high frequency at it's set point. Only digital servos really have issues with hunting, simply over driving a signal isn't likely to cause it.
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top