How to control number of 255 solenoid valves ?


How to control number of 255 solenoid valves ? I need your experiences.

Just for clarification, do you mean a 240V solenoid? or 240 individual solenoids?

I suspect its 240V valves, not many people would have experience of controlling hundreds of solenoid valves!


I have revised subject.


canavarim: Sorry,

I have revised subject.


You have not added much clarification.

Do you mean that you want to be able to control 255 separate solenoid valves? Are they just ON/OFF solenoids? What voltage and current do they require? Can you describe the overall project?


My money's on PLCs....

I want to make waterfall swing system.


So I want to able to control more than 25o separate selenoid valves.

I think, on/off solenoid valves ( 12 vdc /24 vdc) are enough.

How to control these solenoid valves with ardunio , is it possible?

Which model ardunio is used ? and last step how to programming ?


You could use latching multiplex chips for the individual on/off control of the solenoid valves (with appropriate electrical parts). Below is a similar project from the past that controlled ~320 Christmas light strings from the parallel port of a pc. This approach could be ported to use an arduino instead of a parallel port. Note the large amount of wiring used.

Simple solenoids are just like driving relay coils, only instead of a pair contacts closing, something beefier is moving back & forth.

So 255 outputs from shift registers, controlling NPN or N-channel MOSFETs to sink current thru the solenoid coils to turn them on or off.

255 outputs can be a string of 32 shift registers. I offer a board that has 12 already, can put 11 on a board and use 3 boards, leaving the 12th open makes it easy to connect the following board for daisychaining of SCK, latch, and serial. Connect +5, Gnd of all 3 in parallel.
If the solenoid coils need <150mA drive current, can even sink that directly using the TPIC6B595 shift registers.

Put a 328P on the first board and program it as you would an Uno, send out 32 bytes using SPI.transfer( ) calls to update the outputs.

If one wanted to simplify the project, then only two output pins of the arduino could be used. One pin for control of the solenoid valves over the swings, and the other pin to control the solenoid valves not over the swings.

It seems to me, you don't actually need 255 valves for that device.

Do you have any rough data on performance? What time accuracy do you need for updating solenoids, how many in total can be on at once, which model of solenoid.

Power distribution needs thinking about.

For that many I'd first make the problem more manageable by designing a 16 or 32 channel board, which can be built and tested without spending all your money up-front. Once that's working you merely duplicate it the relevant number of times.

To keep costs down look at chips like the ULN2803 which has 8 darlington outputs in one package - if your solenoid valves don't take too much current it might simplify things a lot - use a 595 to drive each ULN2803...

If you need more current then MOSFETs will be the answer. Look for existing multi-channel MOSFET driver boards...

As for the data comms you can daisy-chain a serial stream as with 595 shift registers.

You might want to consider DMX512 as a control protocol - all standard theatrical lighting controllers use it and it handles 512 channels. There are shields for it and it gives you other options for control. Its also robust.