3
\$\begingroup\$

The tl;dr version of my question is - how can I trade off ability to hold an exact position for current draw.

The full version - I've got a battery-powered system with a servo. the servo is controlling the rudder of an RC sail boat. As such, precision of positioning is secondary to power consumption, and the amount of resistance the servo will encounter will vary with conditions. Since this is a standard hobby servo, it'll draw a pretty substantial amount of current (for the environment) if it can't reach the requested position. How do I cut off the amount of current it will draw until such time that the amount of mechanical resistance drops enough for it to reach its target?

EDIT: Based on a comment, here's some additional info / measurements

There are two servos at play here, though the question applies to both the same. One controls the rudder, the other controls the sails (the second is basically a winch). Both will experience variable mechanical resistance.

I hooked each of them up to the 5V line on an Arduino and measured the current they draw:

The rudder servo, when moving without resistance draws about 50mA, some amount of resistance pushes the current draw up to 200mA

The winch servo draws about 100mA normal, as much as 500mA when there's resistance.

\$\endgroup\$
1
\$\begingroup\$

A simple current limiting circuit may meet your needs. This will prevent the servo from drawing any more current than you want it to by adjusting the value of the resistor in the circuit. http://www.radio-electronics.com/info/circuits/diode_current_limiter/power_supply_current_limiter.php

\$\endgroup\$
  • \$\begingroup\$ It's easy enough to test, but how do you think this will affect the servo control circuitry? Will it just slow it down / let it slide a bit? \$\endgroup\$ – kolosy Feb 19 '14 at 16:54
  • \$\begingroup\$ I don't think it would unduly effect the control circuit until current starts to be limited and, after that point, it should allow the motor to give under excess pressure. \$\endgroup\$ – Void Star Feb 25 '14 at 3:30
4
\$\begingroup\$

Before you do anything else, wire up a 555 and a one-transistor inverter and PLAY with your servo. Take some measurements. See what you're really up against.

An RC servo control circuit knows where the limits of motion on the servo are, and it stops the motor, and stops drawing current, when it hits the limits. You're going to be at one stop or the other when you're tacking, and you're going to be rudder amidships, or almost amidships, when you're holding a constant point of sail (beating upwind, beam reach, broad reach, running straight downwind). In this situation, the rudder is just a trim tab, to compensate for the boat's pointing moment. (Beating upwind, especially, the forces on the sails produce a net torque that tries to turn the boat into the wind. The rudder acts against the moving water to produce a countering torque.)

What will hurt you is servo "buzz", which is caused by instability in your control system. The easy cure for this is a big electrolytic capacitor across the servo power supply. For a Tower Hobbies Royal Titan Standard servo, 250 uF worked great for me, and I would NEVER attempt to operate ANY RC servo without such a capacitor in place.

\$\endgroup\$
  • \$\begingroup\$ This is so much better than my answer that I'm embarassed. I gave a solution to the problem stated without stopping to think whether it's a solution to the situation. I have some experience with servos and would tend to agree with Mr. Strohm here. I highly doubt your rudder will take so much torque that your current gets sucked all the time. The smoothing cap is also an excellent recommendation. \$\endgroup\$ – Void Star Feb 19 '14 at 5:18
  • \$\begingroup\$ The cap part is definitely something i'm going to do. I did take some measurements, and I see the servo drawing as much as 500mA @ 5V when encountering resistance, but around 100mA during normal motion. I still need a way to limit current. \$\endgroup\$ – kolosy Feb 19 '14 at 16:54
  • \$\begingroup\$ @kolosy: Not really. If you don't supply the demanded current to the servo, it may not move at all. Many years ago, when I did the experiment I describe in the first paragraph, I learned that a Royal Titan Standard servo draws 250 mA in smooth motion under no load, and spikes up to half an amp in "buzz" under no load. I didn't have a good way to measure it under load, but I would expect more current draw. The "buzz" was caused by motor noise getting onto the +5V supply line and back into the 555, causing instability in the command signal to the servo. \$\endgroup\$ – John R. Strohm Mar 28 '17 at 23:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.