controlling a hundred solenoids

I've got a project where I need to control around 100 solenoids to regulate airflow in and out of many dozen containers in an air sampling experiment. I'm thinking of buying some used solenoid banks on ebay because they are cheaper than new, and they come with handy quick connect fittings for the air tubing. But I'm wondering what's the best way to control that many solenoids? How are those banks usually controlled? Would one Arduino Mega be able to handle it with the help of something to increase the outputs? Is there something else I can use besides solenoids to shut dozens of air lines on and off?

Uses only four pins on the Arduino and allows 16, 5A/30V channels per board which can then be chained up to 25 boards.

If you're dealing with low pressure you could use push/pull solenoids or RC servos to pinch or unpinch silicone tubing to act as a "valve" (e.g. use a clothespin to pinch the tubing shut, then use an actuator to open the clothespin). With a leadscrew and linear rail you could make a little trolley to move between the tubes and open/close them. Perhaps that sounds silly but I suppose it's not that far-fetched given that you'll be spending hundreds of dollars for those solenoids.

You need to know several things:- 1) how much current you will draw for each solenoid, this will determine how you drive them. 2) how often you want to change their state, this will determine what sort of port expander you should use. There are many different types, most give 16 outputs and you can have up to 8 connected at one time so you should have enough. You don't need a mega for the outputs alone an UNO will do

As my question is nearly the same, I’m using andywatson’s thread.
I’m about to use a minimum of 20 solenoids ( I’d like to control 50 if I can get them at a cheaper price )
Those are 24V solenoid valves and seem to draw 200 mA.
I’ve read about the logo electro’s 16 channel driver but it does not seem to be available any more.
My electronic skills are not very strong so I wondered If this board is worth the price?

if it’s not, I wondered if creating my own arduino mega based prototyping would be a more adapted solution
Can I control my solenoids like in this fritzing sketch?
Thanks for your help

Yes that is the basic idea but with controlling so many you will need a powerful power supply and some extra decoupling:- Make sure the FET you use says "Logic Level" in the data sheet, and you only need a 100R in the gate to limit peak charge current. However don't even think about using 20 solenoids on a solder less bread board.

There are lots of output shields around to give you more outputs but you can also make your own for much cheaper.

thanks Mike. I followed this circuit: It shows a TIP102 FET and a 1N4004 diode. this FET does not show the logic level spec. can I pick this one: Sorry for this naive question but what is the difference between a non logic level fet and a classic one in my project?

I'm also a bit afraid by the decoupling. What would you think about daysy chaining some logo electro boards? It would prevent me from any conception errors?

If you are interested, I designed a PCB that has up to 20 x TPIC6B595 shift register/latches that can control up to 160 LED strips or solenoids of up to 500mA each. These chips also have clamp diodes built in.The outputs all latch, so you only have to update the chips when something changes. The board has the arduino chip on board with a socket, and a 5v regulator and a wireless receiver module. The board is in the .LAY format of the SPRINT pcb design format, but I can post the Gerber files, and the sketch.

You can currently get the Logos 16ch driver shields from SeeedStudio ( and ( I will have them back in stock again just as soon as IRF delivers some more parts.

what is the difference between a non logic level fet and a classic one in my project?

A logic leve FET will turn on fully with a 4.5v signal applied to the gate. Most FETs take 10v to do this. Beginners are often fooled by the gate threshold value, this is not the fully on value but when the FET starts to conduct. The FET can get hot enough to melt solder and destroy itself if it is not fully on and passes a lot of current.

Yes that FET is OK, it gives the Ron value with a gate voltage of 5v in the data sheet.

thanks everybody for these information. I will choose the Logos driver solution as I need this project to be done quickly.. Creating any custom PCB will be too long for me, and my skills are too week for the moment to achive this with condidence...

I'm going to have more of the 16 ch shields in stock late next week -- Digikey is finally shipping the parts.

Sorry, your Fritzing sketch isn’t right. It shows the solenoid permanently connected across the supply, and the MOSFET shorting the supply out when it turns on.

dc 42,
so where do I have to plug the solenoid?

Of the 4 blue wires that are connected to the diode, remove all except the bottom left one. Also disconnect the black solenoid wire from the ground rail. Then add the following connections:

  • Mosfet source terminal (the one on the right) to ground rail
  • Mosfet drain terminal (the one in the middle) to diode anode
  • Solenoid black wire to diode anode/mosfet drain

I'm assuming your mosfet pinout is G-D-S.

thanks dc42.

fritz.tiff (103 KB)

That looks correct to me.