12V DC motors - advice on hardware

Hi all,

I've decided to invest in some decent 12V motors for my balancing robot.

these Pololu look good for my project.

I'm using an Uno R3 for controller.

I want to make sure I won't fry things so I have some questions:

  1. I have an Arduino motor shield , will it be enough to drive these motors? Shield specs say it can give up to 2A / motor but the motors datasheet says 5A stall current. I imagine for a self-balancing robot motors are stalled often. Not sure though. If it can't do the job I was planning on buying this motor driver that can provide 3A with 5A peaks. Is it any good?

  2. What battery would you recommend? I heard LiPo are good but need to be taken care of; at the moment I'm learning electronics and motor control so I don't want to spend too much time understanding batteries :slight_smile: (I imagine AA batteries won't do)

Thanks a lot!

For a higher-power alternative to this shield, please consider the Pololu dual VNH5019 motor driver shield, which can deliver a continuous 12 A per channel.

A balancing robot is going to be "stalled" almost all the time.

You will need high current, high capacity batteries for the motors. RC car batteries are less expensive and I've had good luck with the Tenergy series 9.6 - 12.0 V. The NiMH batteries are much less problematic if mistreated than LiPO batteries (as in, they don't explode if overcharged or die completely if overdischarged even once).

Something like Tenergy NiMH 12V 4200mAh Rechargeable Battery 11600 - Tenergy should run your robot for 1/2 hour or longer, depending largely on how clever your self-balancing algorithm is. You probably don't need 12 volts, so consider lower voltage packs too.

michinyon:

For a higher-power alternative to this shield, please consider the Pololu dual VNH5019 motor driver shield, which can deliver a continuous 12 A per channel.

A balancing robot is going to be "stalled" almost all the time.

No, you confuse stationary with stalled. A stalled motor is prevented from turning and
thus pulls max current from the power supply. If a balancing robot motor gets
near stalling it will risk losing closed-loop control.

Chosing a motor is not (just) a question of finding "decent" ones, you have to calculate or
determine the torque and speed requirements...

Thanks all !

I'll go for the VNH5019 motor driver then.

MarkT, I had a look at other balancing robots and advice, for a small one (say 1kg, 30cm high) it seems the minimum is 200 RPM 1 kg.cm. Many people use these Pololu 29:1 with great results so I figures, if I can't make it work I can only blame myself :smiley:

Correct me if I'm wrong:

  • the stall current happens when motor is blocked while at max voltage (max PWM)
  • If the motor is sent 10% pwm, and can't turn, then it pulls 10% stall current

Is that correct?

Thansk again!

No, you confuse stationary with stalled.

I'm not confused. You are confused.

My advice would be to get a motor driver which is capable of providing 5 amps on a continuous basis.

When DC motors start up from stationary, for a short time they can draw close to the stall current regardless of the load. The initial rate of increase of the current is determined by the winding inductance and peaks due to the winding resistance. After the armature starts to turn and generate back EMF, the current will drop significantly.

If you rapidly reverse a DC motor, it can draw nearly twice the stall current. This is something that is likely to happen with a self-balancing robot, so I agree with michinyon that you need a motor driver capable of delivering at least the stall current.

Finally, PWM does not necessarily limit the peak current, but does limit the average current. The details depend on the PWM frequency and motor characteristics.

Edit: Those high current startup peaks are short duration (unless your motor is heavily loaded or stalled) so you could probably get away with the following inexpensive driver (3 amps/channel continuous, limited to 6.5 amps/channel) http://www.pololu.com/product/2503