Learning about stepper motors

I'm currently using 5V Stepper Motor 28BYJ-48 and sinking the current using uln2003 and everything works great.

Now I want to use a stronger stepper, for example : 17HS4401 (similar to the motors the reprap 3d printers has), and I understand I need to use a different motor driver. something like : A4988

Why do I need a "driver" what exactly his purpose and what abilities does he provides that i can't do without him ?

Why I can't just connect it like the small stepper and sinking using something similar to the uln2003 but supports higher current.

The ULN2003 that you used with the 28BYJ-48 is the driver for that small unipolar motor.

The Pololu A4988 or DRV8825 are drivers for bi-polar motors. These specialized stepper drivers have extra features - they can be used with high voltage power supplies because they can limit the current to protect the motor. They can do microstepping. And they take a large computational load from the Arduino which only needs to produce step and direction signals.

Make sure that you choose a motor that is adequate for the project. And make sure you choose a driver that can comfortably provide the current required by the motor. The Nema17 or Nema23 designations only tell you the size of the front face of the motor. They tell nothing about its electrical characteristics.

...R
Stepper Motor Basics
Simple Stepper Code

Steppers are "inductive" loads. They resist changing current. To get a lot of current flowing quickly, you need a high voltage. But too much current will overheat the motor. So the stepper driver carefully regulates current through the motor windings and it really doesn't care about voltage. Give it "enough" volts, which may be 12V or 24V or whatever you have and it will drive your steppers to the maximum performance.

Wow,
Thank you for your answers and the link to the very helpful post.

Just one question, I know that steppers use their maximal current when they are not moving.
When I've used the 28BYJ-48 I wrote my own stepping library, and after rotating the stepper to where I want, I cut all current off (I don't need any holding torque).

Is it possible to achieve the same thing when I'm using a driver like Pololu A4988 ?

What I'm trying to achieve is virtually zero current consumption when the thing is not operating. (I'll send the arduino to sleep...)

tautau123:
Is it possible to achieve the same thing when I'm using a driver like Pololu A4988 ?

Yes, there is an ENAble pin.

However if you want "virtually zero" current consumption maybe you also need a relay to turn off the stepper motor power supply, or more accurately, to turn it on.

In case it matters you should be aware that when you re-power the stepper driver the motor might shift a step in either direction even if there had been no external force on it when it was de-powered.

...R

tautau123:
Just one question, I know that steppers use their maximal current when they are not moving.

Not always true. The A4988 and similar drivers cut the current to 70% when not moving.

You can also reduce the drive current by modulating the current-control pin - replace the trimpot on the board. That's probably not necessary.

tautau123:
I'm currently using 5V Stepper Motor 28BYJ-48 and sinking the current using uln2003 and everything works great.

Now I want to use a stronger stepper, for example : 17HS4401 (similar to the motors the reprap 3d printers has), and I understand I need to use a different motor driver. something like : A4988

Why do I need a "driver" what exactly his purpose and what abilities does he provides that i can't do without him ?

Why I can't just connect it like the small stepper and sinking using something similar to the uln2003 but supports higher current.

Because these motors are low-impedance motors, they have very low resistance windings of an ohm or two,
and resistances of an ohm or so. To spin fast they need a reasonable voltage, perhaps 20V to 50V, to overcome
back-EMF. However if you powered a 1.7 ohm, 1.5A winding at 20V, 12A would flow and the motor would
catch fire.

These motors are meant to be current-driven. You drive them at 1.7A, and whatever voltage they need to
overcome backEMF and IR losses. Chopper drivers act like buck converters but drive constant current output
into the winding which is just what you want, and the switchmode (chopper) action means little energy is
wasted.

The low winding resistance also means the winding inductance is low, which is essential to being able to
spin the motor fast, as a stepper is basically a 100-pole motor so that even a lowly 600rpm means 1kHz
drive current waveform is needed, way above the usual 50 to 100 Hz of other motor types.

Thank you very much for your answers,
What should I choose between A4988 and DRV8825 ?
The only useful thing I found is that the DRV8825 supports 32 micro steps and the A4988 supports 16.

Is there any advantage of one to another ?
The 32 microsteps, is it an advantage ? will it change the speed/torque the motor can provide ?

I believe the DRV8825 is the newer device and it has a slightly greater current capacity. It would be my choice.

...R

Robin2:
I believe the DRV8825 is the newer device and it has a slightly greater current capacity. It would be my choice.

...R

I can't find any tutorials on how to use it (but there are many on the A4988), how new is the DRV8825 ?

The DRV8825 is almost interchangeable with the A4988. The Arduino code will be identical. The Pololu DRV8825 web page has a good wiring diagram.

...R

Thanks