Electrical – How to choose the suitable battery for 6 stepper motors

arduinobatteriespower supplystepper motor

I am new to electronics and trying to build a robot that uses 6 stepper motors.
I bought 6 of this stepper motor and used Pololu stepper motor driver A4988 to drive them but I have an issue with the power supply. The datasheet says that the motor operates at 12V , 0.33A current. My application requires that only one motor works at a time, no overlap between any 2 of them, so I assumed that a 12v 1A battery will do the job.

I connected the circuit with Arduino for 1 motor and powered it with the battery and it worked well, but when I connected all of the 6 motors, no one worked, instead, I heard some noise for 2-3 seconds.

When I tested 1 motor, I noticed that when the motor is powered -not receiving commands from Arduino yet to move- the shaft is holding -I can't rotate it with my hand- so it seems that it is drawing current and when I connect all of the 6 altogether without moving, they require more current than the battery provide.

So I think that the motors did not work because I mischoosed the Battery, if so, I need your help to choose the suitable power supply please.
Any help will be appreciated. Thanks a lot.

Best Answer

As others have already mentioned, stepper motors draw power continuously when they are "ON". The data sheet says the winding resistance is 32.6 ohms, so applying Ohm's law you can determine how much current each winding will draw from the battery:

V = I x R --> I = V / R = 12 V / 32.6 ohms = 0.368 Amps

which is roughly the motor's rated current specification of 0.33A (as stated on SparkFun's website). Each bipolar stepper motor has two windings, each continuously drawing 0.368 amps; therefore, each motor continuously draws approximately 0.736 amps when it is energized.

Note that a stepper motor's shaft position is maintained only when the stepper motor is energized. If you de-energize the motor (turn it "OFF"), there is no magnetic field to maintain the shaft's current position, and the shaft free rotates.

Also, the Arduino's digital I/O pins cannot provide enough drive current to adequately energize your stepper motor's windings. Typically, the Arduino sends its low power digital "control" signals to an H-bridge circuit that provides the required voltage polarity and amperage to the stepper motor's windings.