# Drive stepper motor with a battery efficiently

I bought a bipolar stepper motor (Mercury SM-42BYG011, 12V, 0.33A) and an LN293 H-bridge. I drive the motor with a 9V alkaline battery. Unfortunately the stepper motor empties the battery very quickly. I don't need a lot of torque, and I don't need high accuracy (the motor turns 1/10 of a turn every few minutes). How could I drive the motor using as little battery as possible? Would some driving sequence, hardware implementation (resistor, capacitor...), or something else help saving battery? Does turning off the motor after each turn be enough not to use battery when static (or should I get the 9V battery with a transistor or something)? I should add that I control the motor with a raspberry pi.

• Just to make sure, you're not powering the RPi with the 9V battery, too, correct? Dec 4 '17 at 23:11
• No, the rPi is powered by a separate 5V LiPo battery.
– baca
Dec 4 '17 at 23:48

Basically, use the enable function of the LN293. For each step, provide a short enable pulse and the motor will only draw current for that period. What "short" means depends on the load.

When the battery effective series resistance approaches the equivalent load resistance you approach the maximum power transfer to the motor but only at 50% efficiency. Any voltage drop in the transistor drivers is another loss of battery power.

This application is like starting your car in winter every minute but not having an alternator to keep it charged.

You indicated that you do not need a lot of Torque or accuracy, yet you are using big NEMA 17 motors (1.7"sq.) to rotate 1/10 rev. without any inertial load defined.

Generally when you operate off battery for a long time, you define how long that time must be. For example a digital watch should last > 1yr or a remote control car may last 30 minutes using high quality LiPo batteries (C/60 ). So we don't know how long is important, but obviously a 9V 0.55Ah or 5Wh wont last very long on a stepper motor rated for 4 Watts.

Step 1: define battery duration and budget.
Step 2: define rotational mass , friction (if any)
Step 3: define max time to increment angle
Step 4: Turn off current after motion, unless there is a reaction force
Step 5: Consider a bigger battery and smaller motor.

• ESR battery and driver should be< 5% of motor DCR
• ( 12V/0.33A = 36 Ohms. for this NEMA 17, 9V ESR

Step 6: Derate capacity of battery from 1C = 20h discharge rate on datasheet if life is less than 20h.

e.g. 5V LiPo and FET H Bridge rated for > 5x motor current.

## > These stepper motors are 200 steps /Rev so 1/10 Rev is 20 full steps. How you control that is up to you.

I'm not sure if you are familiar with motor maximum acceleration is proportion to current limit and max RPM is proportional to Voltage. Yet Steppers are often used with fixed Voltage and time intervals per step, which is sub-optimal. The answer is to slew the step phases to reduce each step time by an acceleration constant until max. velocity is reached and then reverse the speed ramp while coming to a stop.

In my case, I used 8mm gears and 200 steps per rotation NEMA 1.7 (like yours) and I used 1000 mm/s max linear speed and 3000 mm/s² max acceleration rate using 12V drivers with 1.5A limit on pot . Your load/power source will require slower rates.

• Thanks. Next time, I'll think more carefully before to buy motors. But for now I already bought few so I'll try to use them.
– baca
Dec 5 '17 at 2:16
• Can you accelerate the 10 steps then slow down last 10 steps with the shortest possible elapsed time with IQ outputs without skipping? ____------___---_--_-__--___------_____ then disable inputs or better all outputs=0V Dec 5 '17 at 2:38
• Could you please develop the steps sequence? I'm not following. I don't know what IQ outputs are either. Thanks.
– baca
Dec 5 '17 at 2:46
• IQ are sometimes used as labels for In-phase and Quadrature coil voltages , This driver can run off 1 LiPo cell pololu.com/file/download/drv8834.pdf?file_id=0J617 \$10 Dec 5 '17 at 3:50
• Early 10MB 5.25”stepper HDDs used quadrature counters with clock intervals that would step shorter to half way or max speed then slowdown to achieve shortest seek times Dec 5 '17 at 4:28