Servos and Arduino

I am attempting a project which will be using 4 servos.

What kind of battery and how many should I be using for this project?

4 servos + 1 arduino

Will I need a specialized shield to run the servos? I read that it is bad to hook up more than one servo directly to an arduino because of the current draw.

you can use an external power supply or battery. also it will depend on motors please upload motor sheet. to control 4 servos i will suggest use GRBL shield along with arduino.without more project details or Datasheet can't help much. upload motor datasheet

Servo datasheets seldom mention current, from what I've seen.

Here's how to calculate the power of a motor:


where :
P= power in Watts
T=torque in Nm
ω=angular speed in rad/s (ω is lower case omega)

Now spec sheets usually give Torque in kg∙cm and speed in seconds/60 degrees so we need a few conversions.

A kg∙cm is 0.1 Nm so divide the kg∙cm by 10 for Nm
60 degrees is pretty close to a radian which is 57 degrees so let's not quibble. So ω in 57degrees/s is the inverse near as dammit of the speed they quote in s/60degrees, so we want 1/speed.

Therefore for a motor of X torque in kg∙cm and Y speed in s/60degrees:

P=Tω = (0.1X)(1/Y)

Example: TowerPro SG90 micro servo has torque X= 1.8kg∙cm and speed Y = 0.12s/60degrees, so:

P= 0.1X/Y = 0.1x1.8/0.12= 1.5W

Now, we also now that:

P=VI or I=P/V

where P=power in Watts, V=volts and I=current in amps.

The TowerPro page quotes the above torque and speed at 4.8 volts, so:

I = 1.5/4.8= 0.3A.

But that assumes very good conversion of electrical energy to mechanical, so probably call it 0.5A (at 4.8V), and remember this is a micro servo.

A beast like a PowerHD has a torque X of 35kg∙cm @ 6V and a speed T of 0.2s/60degrees.

So P= 0.1X/Y = 0.1(35)/0.2 = 17W @6V

And I=17/6 = 2.8A best case with good efficiency, perhaps budget about 4-5A maybe?

So if your servo datasheet doesn't quote current, now you can figure it out from what they do tell you, the torque in kg∙cm, the speed in s/60degrees, and volts; remember to add some wiggle room for inefficiency.

That was extremely helpful! Thanks so much for that!

The specifications for my servo are:


Speed: 0.23 sec/60° @ 4.8V; 0.19 sec/60° @ 6V
Torque: 44 oz-in (3.2 kg-cm) @ 4.8V; 57 oz-in (4.1 kg-cm) @ 6V
Dimensions: 1.6 x 0.8 x 1.4 in (1-9/16 x 13/16 x 1-7/16 in) (40 x 20 x 36 mm)
Weight: 1.3 oz (37 g)
Connector: "J" type with approx. 5 in lead

P = (0.1X)/(Y)
X = torque [kg cm] = 4.1
Y = speed sec/60 = 0.19
P = (0.1 * 4.1) / (0.19) = 2.16 [W]

I = P/V [amps]
I = 2.16 / 6 = 0.36 [A] or 360 [mA]

Considering efficiency maybe 5 [A]?

Did I do all that correctly?
What kind of mobile battery can provide this current?
I have been considering some NiMH batteries as that seems to be the most popular.

For standard servos you can pretty much budget 1A per servo. High torque is another matter.

Yeah I meant 500mA (0.5 A) per servo haha.
I read that 1A per servo is a good estimate on a few websites as well. I bought a 6v NiMH battery pack and will see how that works with the servos, I will be using a 9v alkaline battery to power the arduino by itself so will see how this all goes.

Thanks for the help everyone!

This tutorial from helped me a lot with understanding my whole battery issue