Powering stepper motor from Arduino directly vs external power supply.

Hello All,

As a newbie I am about to make a dumb question, so here it goes:
This is the first time I am working with a stepper motor which is this one:
http://www.valuehobby.com/arduino-and-cnc/stepper-motors/42-20-stepper-motor.html

As you can see it has a rated voltage of 3.5 V and current of 1 A.

My question is if I can run this directly off Arduino Uno or if I need an external power supply just for the motor. I am inclined to say that Arduino Uno can do it as it can accommodate voltages up to 5V, but I am unsure about the current.

For the future, can anyone tell me what are the current limitations to consider if I want to power something off the Arduino Uno? How acceptable is 1A?

Many thanks!

You should not power ANY motor from an Arduino board. Motors need more current than an Arduino board can provide.

You should ignore the rated voltage for that motor. The important factor for a stepper motor is the current. They work better with higher voltages - 12v or more. But you need a specialized stepper motor driver such as an A4988 or DRV8825 because they have the ability to limit the current to protect the motor.

...R
Stepper Motor Basics
Simple Stepper Code

I think the usual recommendation is to get the actual motor drive power from a separate supply, or possibly from the same supply that runs the Arduino, but not going through the Arduino's voltage regulator. Motors draw a lot of current, and of course it's inductive, so there are spikes when current turns off. The Arduino I/O pins are used to drive the transistors which in turn handle the motor current - an H bridge circuit or whatever. So the Arduino handles the control lines, but the motor's power comes from somewhere else. That's not to say the other way wouldn't work, and I'm sure you can find Youtube videos of it working. But that doesn't mean it's best practice.

I think what a lot of people do for steppers and servos is just power them from USB in parallel with the Arduino. Depending on the motor and the max current provided by the USB port, that can work ok. The biggest problem I've had with even small servos is that they draw a lot of current when first powered up, and that can lead to reboot cycling.

Hi guys,

Many thanks to both!! I have the DRV8825, but when I got them I was hoping that perhaps since this is a tiny motor that maybe it would be possible to drive it off the arduino. I got these sometime ago, so I do not entirely recall the details.

Is there a rule of thumb for the currents which we can consider safe to draw from an Arduino?

Many thanks also for the links.

Best,
R.

There is no "rule of thumb". There are specifications listed in the processor data sheet. For instance, for the mega328 chip (Uno, Nano, etc. processor) the absolute maximum current into (sinking) or out of (sourcing) any pin is 40mA. 200mA for the chip and 100mA for each port. Exceeding any of those specifications can cause permanent damage.

The recommended max for any pin is 20mA.

Thanks groundFungus!

rhjpires:
since this is a tiny motor

The motor in the link in your Original Post is certainly NOT a tiny motor.

These are tiny motors

micro-stepper-motor.jpg

...R

micro-stepper-motor.jpg