16 Stepper Motors At Once Possible?

I'm planning to build a machine that uses 16 6w peristaltic pumps with stepper motors. Each fill will be 9ml at a rate of 2ml per second. Every pump will dispense the same amount, but they all should run simultaneously.

The issue with this plan is the number of pins it will require (4 per motor). Is there a way to control all of them with a single Arduino since all motors are getting exactly the same command?

Using stepper drivers is neccessary due to the current needed. Then the I/O will need 2 lines per stepper. Driver boards usually have an "Enable" input that can be hard wired or controlled using one I/O for all steppers.
Maybe a Mega will do. It has plenty of I/Os. Else multiplexers will be needed.
Any help?

What about "simultaniously"? It will take some microseconds from pulsing the first stepper until the last one has got its command.

A stepper driver bus?

Do post a link to the data sheet of those steppers.

What speed do you require of the steppers?

If they all are doing the exact same thing, you can tie all 16 steppers together such that the Arduino only believes it is driving 1. This solution will require the driving board to be able to handle 16 x 6W = 96W of power so it better be prepared for it.

ne10:
The issue with this plan is the number of pins it will require (4 per motor). Is there a way to control all of them with a single Arduino since all motors are getting exactly the same command?

You don't drive the motors with the pins. (just in case, not saying you would) You control transistors with the pins (+ resistors) or control a driver board with the pins.

A ULN2803 (IIRC or the 08) can turn a few mA into a few 100 mA for 8 pins, 500mA max and every pin has a protection diode. The cheaper ULN2801 has 7 channels but the heat of 4 should be enough to sink. I have an old book on parallel-port robotics showing ULN's driving small steppers.

You can buy more efficient and powerful drivers than ULN280x chips, a driver board will include heat sink and circuitry.

Or you can do a study and roll your own: H-Bridge Secrets | Modular Circuits

Maybe smarter to have one motor turn all the pumps?

If you connected the stepper wires to FETs gated by shift register pins you could get 2 motors per chip. It takes less than 20 micros to change and --- the changes appear on the outgoing pins when the latch is closed, all the shift registers on the SPI daisy chain share the latch as a bus line.

Railroader:
Using stepper drivers is neccessary due to the current needed. Then the I/O will need 2 lines per stepper. Driver boards usually have an "Enable" input that can be hard wired or controlled using one I/O for all steppers.
Maybe a Mega will do. It has plenty of I/Os. Else multiplexers will be needed.
Any help?

Yes. This is a help. Thank You. Current is not the only reason. The main reason is because steppers are more precise and I need an exact 9ml fill at a slow speed.

Railroader:
What about "simultaniously"? It will take some microseconds from pulsing the first stepper until the last one has got its command.

I would need them all to run at the same time.

wvmarle:
Do post a link to the data sheet of those steppers.

What speed do you require of the steppers?

Not sure exactly what speed they need to be. More than likely I will be adjusting and playing with the amount of time they run to get the fill right. I requested a data sheet from the manufacturer. I'm still waiting to hear back.

blh64:
If they all are doing the exact same thing, you can tie all 16 steppers together such that the Arduino only believes it is driving 1. This solution will require the driving board to be able to handle 16 x 6W = 96W of power so it better be prepared for it.

That's a great idea! do you know a board that can handle 96w of power simultaneously? The power will only be flowing for about 4-6 seconds. The cycle time between fills will be 5 minutes. Heat may not matter. Do you happen to have a picture of a project layout with a similar setup?

GoForSmoke:
You don't drive the motors with the pins. (just in case, not saying you would) You control transistors with the pins (+ resistors) or control a driver board with the pins.

A ULN2803 (IIRC or the 08) can turn a few mA into a few 100 mA for 8 pins, 500mA max and every pin has a protection diode. The cheaper ULN2801 has 7 channels but the heat of 4 should be enough to sink. I have an old book on parallel-port robotics showing ULN's driving small steppers.

You can buy more efficient and powerful drivers than ULN280x chips, a driver board will include heat sink and circuitry.

Or you can do a study and roll your own: H-Bridge Secrets | Modular Circuits

Maybe smarter to have one motor turn all the pumps?

Thank you for the info on the chips. I couldn't have all of them run by one motor since there will be 64 nozzles laid out in a grid. If I had just one motor, I would have to make a manifold which would result in a less accurate fill.

Here is a sketch of what I think it will be laid out like based on all of your input:

[See attachment]

I’m using:

16 of these peristaltic pumps

1 110V Stepper Motor Bus (does it matter that Nema 34 is the lowest? The motor I’m using is Nema 17)

1 100VDC/1A Power Supply

1 Arduino Uno

1 Momentary Switch

Am I on the right track? I found this video which seemed to explain a lot of what I needed: https://youtu.be/oI2DACP_U58

I’m still unclear on if I can just tie all of the pump motors together in parallel to the bus.

You can purchase as many of these as you need and then simply tie them all together so each driver chip only has to worry about the current on one pump. Your power supply seems a bit undersized since it can only deliver 1A. You need to look for a 24V, 16A supply. You can also buys several 24V <16 A supplies and only wire ~4 pumps per supply.

ne10:
Yes. This is a help. Thank You. Current is not the only reason. The main reason is because steppers are more precise and I need an exact 9ml fill at a slow speed.

Syringes may be more exact than peristaltic pumps.

For moving them all at the same time and same number of steps, you can use one big board, but you can also use 16 smaller boards (one for each stepper) and connect the step pins together, and to a single output of the Arduino. May be better, as due to differences in the coils of the steppers mean one will get more current, and another less.

You seem to be looking for accuracy. Remember to take care of the liquid draining from the output of the pumps when they stop pumping. Gravity has a way of sucking out the remaining liquid.

Paul

Paul_KD7HB:
You seem to be looking for accuracy. Remember to take care of the liquid draining from the output of the pumps when they stop pumping. Gravity has a way of sucking out the remaining liquid.

Paul

Exactly. I'm using barbed flow nozzles on the end of each hose. They basically have a membrane inside that only allows flow in one direction and seals when it's not pumping. That also keeps air bubbles from forming meaning an exact fill every time.

wvmarle:
Syringes may be more exact than peristaltic pumps.

For moving them all at the same time and same number of steps, you can use one big board, but you can also use 16 smaller boards (one for each stepper) and connect the step pins together, and to a single output of the Arduino. May be better, as due to differences in the coils of the steppers mean one will get more current, and another less.

Good to know about the current. The boards are pretty cheap, so I might just do that and use more power supplies.

Syringes are not very durable, so I can't use them for my application. There will be hundreds of cycles every month. I also need a constant flow of liquid. That can't be done with a syringe.

As @wvmarle tells in #11, there You get as much simultanious stepper action that can be achieved.

wvmarle:
you can also use 16 smaller boards (one for each stepper) and connect the step pins together, and to a single output of the Arduino.

Each fill will be 9ml at a rate of 2ml per second

That pump only does 1 1/3 ml/sec, from web page:

Output Speed : 0.1 mL - 80mL per minute

You need to know the current requirement of each pump, web page doesn't say.

ne10:
I couldn't have all of them run by one motor since there will be 64 nozzles laid out in a grid. If I had just one motor, I would have to make a manifold which would result in a less accurate fill.

You have 16 steppers that turn pumps.

I don't know about you but I'd line the pumps up so that a single shaft turned them all using a geared stepper motor.

That pump design came out of Extracorporeal, the company that made the first dialysis cartridges.