Obviously moving a servo draws more current than not moving it. That's not my question.
My question is this:
If my servo is already centered, does it draw more current if I constantly tell it to recenter, than if I leave it be?
The reason I ask is I'm wondering, for power conservation reasons, whether I should check the current position of the servo in code before updating it to see if it needs to be updated.
Also, the servo I'm using is this one:
It's an analog servo. Yet even when I'm not updating the servo's position in code, it seems to be holding its position, like I would expect a digital servo to do. (It makes noise when I try to move the servo arm.)
Have I made a mistake in my code, or does the servo library constantly update the positions of the servos itself?
It probably depends on if there's a load moving the servo away from its set position.
If there's no load, and you don't want the library to keep pulsing the servo, just detach it.
I've just now commented out the servo control code in my program, and found that the deciding factor in whether the servos hold position or not is whether I've called the attach() method. So it is indeed the servo library doing it, not the servos.
And if the servo library is updating their position constantly, then I suppose it doesn't matter if I'm trying to update their position or not.
If there's no load, and you don't want the library to keep pulsing the servo, just deatch it.
Hm... I guess I could do that when my servo arms are down. They're likely to remain in that position for long periods of time, and the parts they're attached to would be tucked away inside the prop so they couldn't be easily moved by hand.
[edit]
Gotta check to see if attaching them causes them to twitch or pause though. Having that happen every time you activate the movement wouldn't be good.
Standard RC servos aren't that intelligent. They maintain position by the pulse width being sent to them remaining constant. You could theoretically run them out to a position and turn them off, but then you have no holding torque to maintain that position so if any force acts to externally change the position and it overcomes the motor friction through the gear train, they will move. To put it in a nutshell, RC servos in operation are always drawing a current, more when they move dependent on the torque load they have to operate against.
They're essentially an electric motor controlled by an h-bridge that has a potentiometer or encoder for position sensing and a PWM input that decodes to provide the position to move to and hold.