how to run multiple stepper motors

Hello everyone, I am just starting a project with arduino, and I was wondering if there was a card on wich it is possible to control 6 stepper motors at the same time, if not is there a solution?

Thank you for your answers! :slight_smile:

Six individual stepper drivers should work.

Try the Digilent chipKIT Motor Shield. It's an I2C controller allowing several shields to be used.

These links may be of interest
Stepper Motor Basics
Simple Stepper Code

I agree with Reply #1. I don't know the device mentioned in Reply #2 and there is no link to the product datasheet. However if it is a h-bridge motor driver rather than a specialized stepper driver I would advise against it - especially if you want to control 6 motors.

...R

Thank you all for your answers! Can I use the arduino Uno for example to control six of them or not? Or is the Mega a better choice?

The choice between Uno and Mega depends on how many I/O pins you need. The drivers in Reply #1 require 2 pins each so an Uno could control 6 of them if you don't need extra functionality like changing the microstepping ratio.

But you may also need I/O pins for other stuff you have not told us about.

Another thing you have not told us is what is the maximum number of steps-per-second that you will require when you add all the motors together. Will a 16MHz Arduino be fast enough? Or will it have enough free time to do the other stuff you have not told us about.

...R

Actually, the motors won't be turning at the same time, I will only have to make them turn ones after the others. I Need to be precise in the movements I execute on them so I guess I will be using stepper motors, I don't know exactly how many I/O pins I will need...

If you're only turning one at a time, you could get by with 1 stepper driver, and then some relays to switch the motor drive lines to the appropriate motor.
Just need transistor per group of relays to drive their cools (so 6 outputs) and then however many lines the stepper driver needs.
Then it becomes a tradeoff in cost between drivers and relays.

CrossRoads:
If you're only turning one at a time, you could get by with 1 stepper driver, and then some relays to switch the motor drive lines to the appropriate motor.

I don't think that would be wise. The best way to blow up a stepper driver is to disconnect it from its motor while it is powered up.

One driver for each motor.

...R

Okay so considering that I use 6 stepper motors, using one driver for each, is the mega card enough? Will i be able to plug all of them?

MaloGalliot:
Okay so considering that I use 6 stepper motors, using one driver for each, is the mega card enough? Will i be able to plug all of them?

I'm not sure what you mean by "plug all of them in". If you are thinking that they will all connect to the Mega as simply as a shield connects to an Uno then the answer is NO.

However you should certainly be able to connect them all to the Uno with wires running from the Uno to the different drivers.

But you have still told us nothing about the other things the Mega needs to do or to connect to as part of your project and those things are just as important. Nobody connects 6 stepper motors to anything without also having other things and other program activities.

You will get much more useful advice if you tell us about the whole project.

...R

So my project is actually to build a robot that can solve the rubik's cube. I have already done the code, everything works perfectly. I will only have to pass a string variable to the arduino code so that it knows what to do. The only thing I am not sure of is if I can control 6 stepper motors on one single card...

MaloGalliot:
The only thing I am not sure of is if I can control 6 stepper motors on one single card...

You are still using very fuzzy language so I don't know exactly what is in your mind.

A single Arduino (probably an Uno and certainly a Mega) could receive data from a PC and move the 6 motors in response to the message received.

But you will not find a single piece of hardware that can couple to the Arduino and control 6 stepper motors.

As mentioned already you will need 6 stepper motor drivers and you will gave to figure out our own way of connecting them to the Arduino. One option (if you are using stepper drivers like the Pololu A4988 or Pololu DRV8825) is to make up a simple board from stripboard (Veroboard) and suitable sockets. Conceivably you could build that so it would plug onto a Mega (or Uno) like a shield but I would recommend using wires to connect to the Arduino for greater flexibility if you discover you need to change something. i made a board this way to hold 3 drivers for my small lathe.

...R
PS. I thought 3 steppers would be sufficient to work a Rubik's cube - one for each axis?

May be I didn't say things correctly, but my quedtion is quite simple I think. Can I drive 6 stepper motors to the same card with 1 driver for each motor?
Or how many motors can I control with one card?

What do you mean by "card"?

If you mean an Arduino then the answer is YES and I said so in Reply #12, Reply #10 and implied it in Reply #5

If you mean something else then I'm afraid you will have to explain more clearly.

...R

Yes I mean an arduino! Thank you very much you were very helpfull!! ^^ I am sorry I didn't express myself very well, I am new to arduino!

there is a dual stepper shield from DFR uses a8825 2 amp drivers you would need 3 of these then you use an arduino mega 2560 which has and expansion shield that would hold the 3 shields i.e. they plug in like a shield add stepper 12v supply and 5v arduino and you are good to go. All parts are available from The RobotShop web site

rogertee:
there is a dual stepper shield from DFR uses a8825 2 amp drivers

Interesting, but I can't find it on the RobotShop website. Can you post a link?

...R

Hi,

You can use the same 4 input from the arduino to drive every driver and using 1 more input by driver to enable or disable the drivers. You can't drive every motor at the same time if they don't move the same way (CW or CCW) but if they do, you can !