Powering a stepper - questions

Hi all,

I'm making a motorised camera slider. I'm planning to use a stepper and a timing belt+pulley to move the dolly on the rails.

  • Compactness is a big factor so I'd like to use a single battery to power the board and motor.
  • The rig will be used to make timelapse photos, so the motor will spin for ~1s then stop for ~10s etc... for up to a couple hours total.

I selected the following components:
Motor: NEMA 17, 12V, max continous current 1.8A, max torque 5.62Kg.cm (78oz.in)
Microcontroller: Arduino Pro Mini 5V 16M (chinese copy)
Stepper driver: A4988 breakout chinese copy, drive capacity 35V and 2A
Battery: standard hobbyist LiPo, I have some at home so can choose either a 2cell (~7.4V) or a 3cell (~11.1V).

My questions:

  1. Is there a clean way to power both the Arduino and the stepper from the same battery? I'd really like to avoid using 2 batteries (compactness and convenience of not having to charge 2 batteries)
  2. Since the motor is 12V is was thinking of using a DC step-up such as this one. Is it a good way to power the motor or shouldn't I do this? I was thinking of doing: battery -> (split to arduino raw input and step-up input) -> step-up output to motor. With a 2cell lipo that would give 7.4V to arduino and 12V to stepper. But I'm not sure if step-ups are meant to be used for this kind of load.

Thanks for your help!

The "12V" rating of the stepper appears to be an advisory value -- not sure where you saw that. You can feed it up to the 35V that the A4988 driver can handle (more voltage = more speed) but you have to make sure you stay below 1.8A or it will overheat. "Overheat" means "I can't hold it in my hand for more than 2 seconds". Fortunately your A4988 driver also features current limiting so it's easy to adjust the amount of current.

Connect your battery to VMOT and GND on the A4988 driver and also connect it (in parallel) to your Arduino on Vin and GND. Then connect your Arduino 5V and GND to the A4988 VDD and GND. Just need one battery.

If your stepper isn't moving quickly enough then use a higher voltage battery or use a step up like the one you linked. If it IS moving quickly enough, then experiment using a lower voltage battery and/or reduce the current to the stepper motor (the miniature pot on the A4988 driver) to save power / make it possible to use a smaller battery. More or less you want to test things out first and then decide on a new battery or step up later.

That clarifies a lot of things. Thanks very much!

If you want any sort of battery life a 1.8A stepper is a poor choice. Also an A4988 won't
manage 1.8A, don't expect it to.

For good battery life a DC gear motor with encoder would be much better as current
only has to flow when it moves. Steppers take full current when stationary.

You can disable the stepper driver with the Enable signal, that turns off the motor outputs. Of course that means the stepper can move freely, there is a small amount of detent so if the carriage is horizontal it is unlikely to move.

I am guessing the positioning is not critical (i.e. +/- 1mm).

I agree with MarkT, a DC motor with encoder is not that expensive and a lot less power.

Ah thanks guy for the input, I didn't realise the stepper would take current when stationary. Well I just received it so I'm gonna try to move-disable-move but I'm afraid it'll mess up the positioning. Yes +-1mm is about what I'm aiming for.

I'll also try with a geared DC+encoder.

Thanks again!

Good stepper drivers have a setting for idle current - after a programmable delay
of the stepper not stepping it reduces the current to a lower setting. It is increased
back to normal current level on the next step to be received. It helps reduce the
temperature of the motor.

Stepper motor rated current will increase the motor temperature by perhaps 60 deg C.
You can use less (at the cost of less torque).

Hi and thanks for the replies.

In the end I set the current limit on the A4988 to about 0.7Amps. More importantly I disable the coils (FET outputs) everytime the dolly is stopped for > 1sec. With the intended use the dolly will move only a fraction of the time so that works well. Driver chip gets warm to touch but not burning hot and motor stays cool. Only thing is I won't be able to have the slider vertical but that's not an objective so that's fine.

Anyway I made a crappy video to show where I'm at with this project right now, it's in this topic:

http://forum.arduino.cc/index.php?topic=258729.0

Thanks again!

I would like to see your code that drives the motor