loading

How to power multiple servos with an external power source?

I need to power the following servos (with the following quantities):
1 x HS-422 Servo Motor, 2 x HS-645MG Servo Motor, 1 x HS-755HB Giant Scale Servo Motor, 1 x HS-805BB Giant Scale Servo Motor, 1 x HS-485HB Servo Motor.
I have an arduino uno controlling them but am powering them off of 1 6v 2800mAh NiMH battery (I have 2 at my disposal though). I am using the power strip on the side of my breadboard. I connected all my servos and battery to the same power strip. My servos seem to be going crazy when I have more than 1 connected (they don't listen to the input and just keep going from 1-180 degrees). I have attached the layout below.

Picture of How to power multiple servos with an external power source?
sort by: active | newest | oldest
Science102 (author) 1 year ago

Thank you everyone for all of the fantastic advice. The battery seems to have enough power for this application. I believe I have solved the problem using a servo controller as was suggested by Downunder35m. I used the SSC-32U by lynxmotion since I had a few sitting around. The problem was with the wiring through the breadboard as it proved to be too crude for this application, however the SSC-32U seems to have taken care of the problems. I am controlling the SSC-32U using an Arduino Uno using serial.print commands. Thank you all once again for the extensive guidance.

-max-1 year ago

I think some of the problem with this circuit is that there is NO decoupling capacitors at all between the servo's. To worsen that, the breadboard connectors are not suited for heavy current draw. I learned that the internal blades are made of steel and have high resistance. Connect all of the servo power leads as close together as possible and have some large >3000 uF electrolytic capacitor for decoupling, as well as some smaller value (10uF or so) multilayer ceramic capacitors.

--------

While the advice above may help eliminate the problem you face when nothing is connected to any of the servo's, once you connect loads to the servo's you may have worse problems. You may need to use a small LiPo SLA battery.

Science102 (author)  -max-1 year ago

I would appreciate if you could suggest any alternative to using a breadboard. Also where would you place each type of capacitor? Thank you again for your help!

A breadboard might work if all the servos and power are connected as close as possible, but ideally use a protoboard and solder header to them and connect servo power to them. Decoupling capacitor(s) are connected across the load. (Power input to servos).

--------------

Its good to use separate power sources for servos and arduino, just make sure the ground connections are common (connected together).

Also, try and "star" connect everything - don't chain power connections, bring them all to a single point for the ground, and one to the +ve supply. Ideally, take that ground point to the arduino ground THERE, then connect the single points to the battery. This reduces noise.

+1

Yeah, don't EVER use breadboard for serious current. Even a small servo can pull an amp.

+1

Do the math and you'll see the battery is far to weak for the job.

Science102 (author)  Downunder35m1 year ago

I tested the battery with a volt meter as well and the battery has more than enough power. According to my measurement, it could discharge more power than I would need. I was wondering if there is something wrong in my circuit layout. The servos randomly twitch and move many times.

Measuring voltage across the battery when no load is connected tells you NOTHING about the battery. Not even how much life is left in it. Sure, it may measure something like 7.5V when topped off and under no load, but once a heavy load is put on the battery, the surface charge is quickly depleted and equivalent internal resistance will cause a large voltage drop. The voltage could (and might just be) falling below the operational voltage for the servo's.

--------

Also, know that Voltage != power. If you do want to figure out how much power the battery can safely deliver, find some data for that battery. Hopefully you will come across an accurate discharge graph that will show a discharge curves for different amounts of current.The maximum discharge rate graphed is probably also the maximum recommended discharge rate for the cell. You can also make these measurements yourself if you have the right equipment to do the logging.

Science102 (author)  -max-1 year ago

sorry about the lack of specificity. I used a multimeter not a voltmeter. I was getting about 5-8 amps on the multimeter. For the hs 805bb servo, which draws the most current (800 mA idle), the company recomends a 1200 mah battery. The other servos draw as much as an average servo. I also sometimes have some of my jumper cables burn up as well as some of the plastic on the breadboard melts. I have two of the batteries described so should I put half the servos on one and the rest on the other. The battery at hand is similar to the one on this link:

http://www.robotshop.com/en/6v-2800mah-nimh-batter...

Can you guys suggest a better wiring layout? Not sure if I did it the best way.

"I also sometimes have some of my jumper cables burn up as well as some of the plastic on the breadboard melts" You need thicker (smaller gauge) wire, and to eliminate the breadboard for sure.

How did you measure current, I hope you weren't just shorting out the batteries to measure short circuit current because that is equally wrong, and dangerous. If the batteries were only delivering 5-8A completly short circuited, then again, they are not powerful enough. The power you were pulling would be about 5A* (tiny voltage drop across meter ) = tiny power.

But you do know that there are dedicated servo controllers for the Arduino?
How is the Arduino powered anyway?
Even with only a light load a small servo will need at least 250mA - times 6 and you are looking at 1.5A with basically nothing being moved.
Add a normal load to the servos and you will exceed 4A with ease.
Servos need at least 5V to operate properly, so I say again: you battery is far too weak.
You start a lot of topics that could be totally avoided by doing some homework like a simple Google search or in your case here by checking some of the many servo related Instructables.

Science102 (author)  Downunder35m1 year ago

my arduino is powered with a 9v battery. I sometimes use 6 AA batteries. Which would be better? I also have a lynxmotion ssc 32u usb servo controller. Should I use that? If so any suggestions on how to use it? And thank you for your help!

Use yyour multimeter and measure the battery voltage when you move the servos.
If it drops under 5V quickly you know where you problem is.
And for such power hungry devices it really is best to use servo controllers to protect the Arduino and servo.

How can you be sure the battery is too weak if the maximum power/current is not specified in the question? I know that the high discharge LiPo cells used for RC models are cabible of 25C --- 100C discharge rates.

I am just judging by the facts:
6V battery
5V minimum for the servo to operate properly
250mA for each servo moving with no load

Not sure about your batteries but mine break down in voltage if the load is quite high.
And I simply doubt dedicated batteries for high current draw are in use here.

I also doubt the battery is strong enough, just wasn't sure how you were so sure it was far too weak. I don't know much about NiMh and stuff, but if the battery is rated 6V, I expect it to be charged to a peak of 7.5V or so considering it is likely 5 NiMh cells (nominal 1.2v per cell) in series.

Science102 (author)  Downunder35m1 year ago

what size battery do you suggest I have (according to your calculations)?

rickharris1 year ago

Use as Iceng says a separate battery for the micro but with the negative lines common.

Electrical noise from the servos is most likely resetting the micro.

iceng1 year ago

Circuit looks perfect as long as you have a separate battery for the UNO....

Do not use the 6v 2800mah battery for both.

I assuming your SADW is really well coded ?

You do understand each servo needs a continues PWM or sq-wave to hold a position or center.

When you are switching between servos, you must make sure that you maintain that desired same exact high / low timing on each servo just to hold still.

This is done by poling timers or setting interrupts for for transition timing or dedicated servo controllers suggested by Downunder that make programming a snap.

You are getting very good advice from Steve, Downunder and Max with his decoupling capacitors, take it to work ie do it !.

BTW did you know the NiMH have a memory that will deliver less power each time if you recharge it before complete depleting it first.... Then realize, if even for a millisecond the voltage drops below a design level the UNO can start executing schizophrenic code and the servo may reset or lock up... Your meter will never notice short voltage drop outs, But your dropouts are longer which in my opinion are severe if your cables melting !