8 Solenoid Valves w/ Continuous Individual Control

I am trying to make a controller that will be able to continuously adjust 8 solenoid valves independently. Each valve needs to be supplied 0-1.8A and run at 9-16V. I would also like to run a handheld controller which would dictate the amount of current sent to each valve with a real-time current readout. I do not know where to start and would like some hardware suggestions. Currently I am looking at the ATmega2560 and running a motor shield rev3 on top of it although this will not provide enough channels so I would need to run 4 of these setups. I would have to assume there is a more efficient way. Any and all suggestions would be greatly appreciated.

Also, if it would make things easier, I could run 4 individual controls that operate 2 magnets each as it would be preferred to have them operate in pairs even with completely independent control.

DMcCart:
I am trying to make a controller that will be able to continuously adjust 8 solenoid valves independently. Each valve needs to be supplied 0-1.8A and run at 9-16V. I would also like to run a handheld controller which would dictate the amount of current sent to each valve with a real-time current readout. I do not know where to start and would like some hardware suggestions. Currently I am looking at the ATmega2560 and running a motor shield rev3 on top of it although this will not provide enough channels so I would need to run 4 of these setups. I would have to assume there is a more efficient way. Any and all suggestions would be greatly appreciated.

Also, if it would make things easier, I could run 4 individual controls that operate 2 magnets each as it would be preferred to have them operate in pairs even with completely independent control.

You ask for any suggestions, so here is one. Start learning about the Arduino and the software and the sensors and way to output control to devices. From your rambling description, you seem to have no concept of what you want this project to include. So more education is necessary.

What experience do you have with electronics and computer software?

Paul

Motor controllers are for motors, not for solenoids. Use a simple MOSFET to switch solenoids.

wvmarle:
Motor controllers are for motors, not for solenoids. Use a simple MOSFET to switch solenoids.

The OP mentions continuous control, so I think he has/wants proportional controlled solenoids.

Paul

I do have proportional controlled solenoids.

I'll be honest, I don't have much electrical experience as far as controllers go. I am in charge of designing and building large complex wiring harnesses for demo vehicles as well as re-flashing and tuning the control unit, I just don't know what goes on inside of it and now someone is asking me to make a new and less expensive controller.

I admit to not having much experience with Arduinos, I just know they are good for small prototype/development work so I figured I would start there.

Between a rock and a hard place. Does someone want you to fail?

First step is to gather ALL the detail specifications for EVERY part of the entire system, as it is today. Second is to document every part and operation of the existing controller. Then you can see if you think you can make a cheaper controller. Part of the price of the existing controller is the development costs and the testing costs. Be sure to estimate those costs in the cost of your CHEAPER controller.

Paul

So the most difficult part about this project is that we source the boxes from a third party and they are heavily protected. Even if I were to open one up, I wouldn't necessarily know what does what and how different components interact.

I have a vague idea of what I want to do, maybe you could at least give me some guidance as to whether I am on the right track or not. I wanted to have 8 linear pots set up to work as inputs for the arduino. The board would measure the resistance and assign that a value which would then correspond to an output value. It would then simply convert that output value to a set duty cycle to alter a PWM signal varying the current sent to each solenoid. I would also like to run some sort of feedback loop to ensure the current remains constant and provide a digital readout of the current being sent.

Based on the lack of information and your questions, do you have a year or more to develop such a device? Will it be a one-off device?

Paul

If I can efficiently move forward with this project, I don't see it being a problem if I need a year. To help put this particular project in perspective, the current controller that we use is overkill and costs about $15,000, I'm trying to build something that costs closer to $1000 so we can start selling it as an aftermarket add on. The only people who are paying $15,000 are OEMs.

DMcCart:
If I can efficiently move forward with this project, I don't see it being a problem if I need a year. To help put this particular project in perspective, the current controller that we use is overkill and costs about $15,000, I'm trying to build something that costs closer to $1000 so we can start selling it as an aftermarket add on. The only people who are paying $15,000 are OEMs.

Fair enough! Do you have anyone in the area that can help you with the electronics and the software? You will not get enough help on this forum because no one has the devices and complete system, nor the time to follow the steps you need to test. I hope you have someone locally to look over your shoulder.

Paul

As of right now, I do not have anyone to help me. I do however know MATLab quite well so I'm not too concerned about the software. Once I figure out the hardware, I'm confident I could figure something out software wise. My biggest issue right now would be choosing a brain for the system and then finding some sort of controller to interpret the outputs from the main board.

Do they make specific controllers that are intended to control proportional solenoid valves? Also, would I have a better shot coding this controller in IDE or trying to use something like Python? I know that probably sounds like an amateur question, I just know how powerful some of the other languages are and I've never used IDE before.

Without complete documentation on the valves and all the other stuff you have to interface with, and the power supply to make it all operate, it's way too early to be thinking about which Arduino controller to use.

After that, you need to do a budget of the signals,and the type, analog or digital, you need to accept and to produce. Then you can determine the controlling adapters needed, and finally the number of i/o pins needed to do the job.

The proportional valves will likely need some type of h-bridge to provide + and - signals, but may actually be current operated and the current to each side of the solenoid will have to be controlled. Documentation!!!

And by the way, there is no pseudo code interpreter, such as Python, for the Arduino.

Paul

Well, an IDE is a generic name for a kind of software (IDE = Integrated Development Environment). There are many IDEs out there, the Arduino IDE is what we mostly use for Arduino development. Microcontrollers are usually programmed in C++, not Python (if only because Python is interpreted, so won't do well on a small controller).

For your project: you first have to write down exactly what has to be done, from a high level perspective. What inputs do you want (you're talking about linear pots), what outputs do you want (some kind of solenoid), and how does the output have to react to the input.

One input controls one solenoid fully independently? Or are they interdependent somehow? How so? Do the solenoids have any feedback loop as well?

This are some very essential questions that you must have answered before you can design your system.

When you know WHAT you've got to do, you can start thinking of HOW you're going to do it. Which exact solenoids do you need for the amount of flow (liquid? Gas?) and the amount of control you need?

Then: which controller is suitable for that solenoid? Fair chance the manufacturer has suggestions, maybe it even has controllers built in, making it easier.

Power supply comes in play. You probably need a pretty serious power supply for those solenoids - that's some 14A when all are engaged.

Look at the inputs; which exact parts do you have? Again, do inputs affect one another or are they independent?

If there are eight fully independent units, build them as such. You end up with eight microcontrollers in the final product but those are cheap, and it will make development easier: you develop one, and then just copy another seven times. If interdependent it becomes a lot harder.

Each solenoid is independent of the others. Right now I only have 2 physical constraints to work around, the power supply an the solenoids. I have to use solenoids that already exist as part of an assembly, the specs for these solenoids are shown in one of the attachments.

I have also drawn up a simple diagram showing what I would like to do which is also attached. I need to run everything off of a vehicle’s electrical system so a nominal 12V but more realistically closer to 14V with the alternator running properly. I would also like to run a feedback loop as the current draw will change as the solenoid heats up and changes resistance.

TechSpecs.JPG

You have to provide more detail on the solenoid - especially on how it is to be controlled exactly. Preferably complete data sheets. The data you offer just mentions a current, no indication of reversing polarity or so. If you just need to control the current, a MOSFET with PWM control is appropriate. 1.8A is not much current for a MOSFET.

Your image suggests there is a separate controller that actually handles the solenoid, and the Arduino giving command to the controller, with some kind of feedback loop from the controller. Is this a ready made controller? If so please offer data sheet.

Are you sure the feedback is a measurement of the current given to the solenoid? Not a measurement of what that solenoid does - e.g. controlling the actual flow of whatever passes through?

As they're independent, I'd go for one Arduino per solenoid (you may later want to replace this by an ATtiny, for lower cost and smaller size, but better start with a regular Arduino for development - much easier). That makes it modular, so if you have an application that needs just four solenoids you can simply take four modules. Or maybe two solenoids per Arduino, if they always work in pairs.

The controller in my sketch does not currently exist. I was thinking I would need some sort of control module between the Arduino and the solenoid because the Arduino may not be able to supply the appropriate power.

I don't have much more info on the solenoids that I can share since they are a proprietary design. These solenoids are controlled using variable current sent via PWM, they are rated to about 3A although they are designed to operate between 0 and 1.8. The feedback loop only needs to provide current feedback, there is nothing measuring flow or flow area.

Is a MOSFET capable of continuous control? I saw that come up a few times and was confused because it seemed like a MOSFET was more like an on/off switch.

A MOSFET is used as on/off switch in conjunction with that PWM signal. The duty cycle gives the fraction of the time it's on, and that's also roughly the fraction of the current you get. So if say 100% duty cycle you get 2A total current through your system, at 50% duty cycle you'd get 1A.

The solenoid is an inductor, which messes around with the current big time as it resists change in current. That's why you always need that flyback diode. It also means that sensing the current through a PWM driven solenoid is not straightforward. this article and this design note give you an idea of what you're up against.