Hello all,
I am new to the Arduino world and was given a task to run 60 NEMA 17 stepper motors using an Arduino Mega 2560 Rev3. Currently the issue that I am having is that when I only run 6 stepper motors with a set of code, the steppers seem to run at full speed. When all 60 are just ran or even increasing to 12 motors, the speed is much less and I am not sure why. I am using a 12V power to power 12 steppers each with A4988 motor drivers. Would this be a processing power issue of the Arduino mega, or would this be a power supply issue?
Could be either or both, but I would start from power supply. Anyway, you need to illustrate your wiring, motor specs, power supply specs and code.
Depends mainly on your sketch, the needed speed and the processing power of the Mega.
Of course you also need a powerfull PSU for 60 steppers. But if that is not powerful enough you usually run in other problems then 'only' slower speed.
Please post the sketch, a schematic how everything is wired and technical data of your steppers. If you want to control all steppers independently from each other you need more pins than the Mega provides. Do you already have a solution for this?
Agree with @MicroBahner, it’s all about choices.
e.g. AccelStepper is limited to around 4000 steps/second on as many motors as you might have with a 16Mhz clock
If you manually manage the stepping without speed ramping, you can get more than 30K steps/sec.
Hopefully these are the images you are looking for.
Image 1 how how each of the A4988 are connected.
Image 2 is the 12V power supplies attached
Image 3 is the power from the Arduino to the motor drivers
Previously, the people working on this project had one male pin that was soldered to two pins to split the one Arduino pin to go to two different stepper motors. Would this also cause an issue or no? This is because two motors will be stepping together on each side of the device.
What about the specs for the motors?
You cannot power all that drivers from the Arduino - espicially not if you power the Arduino with 12V. The power consumption of a single driver is fairly small - but with 60 ... its too much.
The 4000 steps/sec is only for a single motor. With every additional motor the max speed decreases linearly. So with 60 motors it is 4000/60 ( if you want to move them all at the same time with max speed ).
You can do so, if you never want to drive them individually ( e.g. if they are mechanically connected )
What would you recommend to make sure that all 60 steppers have enough power?
with the 4000steps/sec, would that mean the fastest I can set each stepper to move at only a speed of 66 steps/sec? Or is there a way to increase that speed?
I am unclear what you mean by "You can do so if you never want to drive them manually". the 60 motors will be in 30 pairs, and each pair will be doing the exact same motions, meaning less pins will be needed correct?
Sounds similar…
You need a big beefy power supply if you need to drive them all together!
Would I need one large power supply to supply all 60 and the Arduino? Or do I just need to get 24V power supplies to switch out for the 12V ones?
It seems the stepper motor has a max of 3000 steps/sec
Hi!
It depends, if your motors work at 12V you need a 12V but very powerful power supply, you have to look at how much current each motor absorbs, but if the motors and drivers can also work at 24V perhaps a 24V power supply given the power needed , it could be useful to halve the current absorbed compared to 12V. While if the 24V motors absorb the same current as what they would absorb at 12V, developing more power, you will have to get a very powerful power supply, if the current does not decrease by raising the voltage I advise you to continue operating at 12V but with a Very powerful power supply, which unfortunately could be expensive.
Everything depends, what these motors have to do. How much torque you need.
If those motors that you were already trying were running well with 12V, I would not raise the voltage.
If he needs more output pins he could probably use shift registers like the 74CH595, it would slow down the maximum speed a bit since the data must be loaded serially with a clock and after being loaded the shift register outputs can be activated , therefore to load 8 bits to go from 3 Arduino outputs to 8 it would use 8 clock strokes, but it would greatly increase the number of outputs, if you consider that the shift registers can be connected in series so as to increase the overall outputs even further using only 3 arduino outputs
The A4988 driver works very similar to a buck converter. So the current from the PSU decreases when the voltage rises. To select the correct PSU you must consider the power the stepper needs.
Yep, you're right, it depends also if he need a lot of torque, because if the needed torque is high the current is higher then a lower needed torque
Ah, cool, so probably a 24V power supply is better, in this way he can has the same power but whit nearly the half of the current respect 12V. it's depends also from the efficiency of the driver
Depends what you really need. If you always combine two steppers, you only need to create 30 step outputs. Do you need automatic acceleration/deceleration? That needs cpu time and decreases the possible max speed.
Maybe you should tell a little bit more about your project.



