Can I control 30 stepper motors with arduino?

I’m working on a project whereby I need to control 30 stepper motors, one at a time.

Each motor will only receive a 1 or 0 command, with 1 being a full 360 rotation, and 0 being no movement.

These commands will be sent once per second to each motor, starting with the first (motor 1, then motor 2, then motor 3, etc., every 1 second)

There will be several different combinations available to be sent to the controller (arduino?), which will determine the commands sent to the motors.

For example,

  • the code 00101100… would tell motors 3, 5, & 6 to rotate at seconds 3, 5, & 6, while motors 1, 2, 4, 7, & 8 remain idle,
  • the code 11010010…would tell motors 1, 2, 4, & 7 to rotate on seconds 1, 2, 4, & 7, while motors 3, 5, 6, & 8 remain idle.

Can I do this, with 30 motors, with arduino?

Any additional help is much appreciated!

Which arduino board you are using?

None yet. Looking for guidance…


Thank you!

Any guidance on what arduino board I can do this with?

Take a view here to get some ideas:

An Arduino Mega should do what you want. Each motor will have a related Step pin, the other pins can be shared.

1 Like

Thank you!

Will I need a driver and power supply for each motor, or is this something that can be done using one driver and one power supply?

(only one motor will be rotating at any moment)

One power supply but a separate driver for each motor.

Note that a stepping motor draws the maximum amount of current when it is stationary. So the motors not moving must be disabled by the driver to minimise the current draw. However then the motor is free to be rotated by hand when it is disabled.

Also what is attached to the motor, when you start the system up a stepping motor doesn't know where it is, a limit detector of some type is needed to produce a defined a start position.

1 Like

Have you decided on a stepper motor?
What will it be driving?
Is it an art presentation/

Thanks.. Tom... :grinning: :+1: :coffee: :australia:

Classic beginner error, Nema 23 only defines the case size of a motor, nothing else.

1 Like

I believe a Nema 23 motor is what I will use.

It will be driving a piston one revolution (forward and back) within a cylinder.

So basically a 30-cylinder setup, with one motor per second either rotating once or not, depending on the code sent.

That’s why I’m here :grimacing:

Take a view to this tutorial:

1 Like

I am hoping this is going to work:

That is a big beast and 30 of them will cost quite a lot. Also 8.4 Amps per motor will need a hefty power supply, and a hefty motor driver.

Are you sure you need the motor this big?
And what about the initial position indication?

I’m not 100% sure if I need that motor yet, but I definitely need some torque.

I’d rather have too much torque than not enough.

Not sure about initial position indication. (???)

See reply #9

1 Like


I need the motors to stay put if they are not rotating.

So in that case I may need a power supply for each motor.

Unless I can relieve the torque from the motor after it resets to its starting position. (:thinking: hmm)

They should start and end in the same position each time.

Any guidance on driver and power supply needed for this particular motor is much appreciated :pray:

NOTE: I can’t reply any more for 24 hours :man_facepalming:
Just signed up to the forum and already got limited on my responses.

I am in the USA, and would love a willing mentor, or even a partner in this project, if the right person comes along.

This is for an automation project, for which I wil be spending my own money.

I am prepared to invest a fair amount of time and money to make this work, as the finished product will very likely be worth the expense.