Ask for Arduino Uno to control 10 stepper motors + other inputs possibilities

Hi! I’m new to Arduino and I’d like to know if it’s possible that only 1 arduino uno could control 10 stepper motors(bipolar) each individually and with more inputs…
There would be four inputs for each motors:

  • a potentiometer to control the speed of stepper motor
  • a cv jack input also to control the stepper motor speeds by a step sequencer.
  • an arcade button that would put ‘‘on’’ the stepper motor to the speed indicated by the potentiometer.
    a dpdt switch to control the direction
    So I would like to ask if there needs any code for those special things, what stepper motor would be the best for this kind of operation(smaller is better) and also what component would I need, than what is listed in this link or a driver https://www.arduino.cc/en/Tutorial/LibraryExamples/StepperSpeedControl

Cheers

Please have a look at, and edit your Post - it is littered with "[color=var(" which makes it very difficult to read.

If each stepper motor driver needs a step and direction signal then an Uno on its own won't have enough I/O pins for 10 motor drivers. A Mega will have plenty of I/O pins.

You have not told us how you want the motors to move so I have no idea whether a 16MHz Arduino could produce enough step pulses for your 10 motors. For example how many motors need to move at the same time and how many steps per second will each of them need.

...R Stepper Motor Basics Simple Stepper Code

They would move maybe sometimes all together. It would actually be for a ''mellotron'' or ''sampler'' keyboard, run by cassette recorders(themselves run by the stepper motors), so the stepper motors won't have to run at an incredibly high speed. It should go until around 400 rpm (≈1300 pulses per second (≈52 steps per revolution)), so it would mostly be for low speed uses.

froiretoile: It should go until around 400 rpm (1300 pulses per second (≈52 steps per revolution)). so it would mostly be for low speed uses.

Does that mean 13,000 steps per second when all 10 motors are moving?

And what else does the Arduino need to do while the motors are moving?

...R

PS ... where does the 52 steps per revolution come from. Most motors have 200 steps per rev.

Yes the motors shall all variate between 13,000 steps per second and much lower. The arduino will only control the motors and receive cv to what speed and direction to control them. (the 52 steps per revolution was only the speed the cassette tapes needed(=400 rpm)

froiretoile: Yes the motors shall all variate between 13,000 steps per second and much lower. The arduino will only control the motors and receive cv to what speed and direction to control them.

I'm not sure whether a 16Mhz Arduino would be capable of all of that. A great deal depends on the fine details. I suggest you write a program that receives data for and controls (say) 4 motors and see how well that works.

(the 52 steps per revolution was only the speed the cassette tapes needed(=400 rpm)

You need to provide more information. There is no mathematical relationship between 52 steps per revolution and 400 RPM. And you have not said how many steps per revolution your stepper motors have. Please post a link to the datasheet for your stepper motors.

...R

ah then it must have been a mathematic mistake of mine with the 52 steps per revolution... I don't have the stepper motors yet. I'm still looking for some specifically for low speed uses. Thanks a lot for the advices, yes I will first try with 4 stepper motors.

froiretoile: I don't have the stepper motors yet. I'm still looking for some specifically for low speed uses.

You don't need a special stepper motor for slow speeds. Any stepper motor can be programmed to take one step per minute, or per week or per year.

On the other hand getting stepper motors to move at high speed can be a challenge.

...R

400 rpm is pretty high speed for a stepper. At a typical 200 steps per second that's 1330 steps per second per stepper, or indeed over 13k steps per second.To get to these speeds you must use acceleration, that adds to the workload.

I've done much greater stepping rates for a single stepper on an ATtiny at 8 MHz, but having to control 10 independent steppers adds quite some overhead. I think you have to look at a faster controller, such as a Teensy.