Electronic – arduino – Proportional Solenoid Valve + Arduino

arduinomicrocontrollersolenoid

I am thinking of buying a proportional solenoid (PVQ31) valve for a project. I thought of using Arduino to drive this valve but the issue is – this valve needs a range of current supply (0-165mA for 24V or 0 – 330 mA for 12V) for flow control.
How can I have current control using Arduino?
I thought of using digital pots but they operate at 5V only.

Please suggest a solution.

Thanks.

Z

Best Answer

Driving a solenoid, even a proportional one, is best done with pulses. Solenoids have significant inductance, so do their own current filtering. When the pulses are fast enough, the solenoid "sees" only the average current.

Using pulses not only simplifies the circuit, but makes it efficient. Since power isn't wasted and turned into heat, you don't have the problem of having to use large parts and getting rid of the heat.

Here is a simple circuit:

The gate of the FET is driven directly by a PWM output of the microcontroller. Something around 25 kHz PWM frequency should be fast enough for most solenoids so that the current changes very little during one pulse. That is also above the audible range, so you won't hear any whining. Many modern microcontrollers have plenty of PWM resolution left at 25 kHz.

Q1 is used as a switch, and turns on when the PWM output is high. This applies the full power voltage to the solenoid. When Q1 turns off again, D1 provides a path for the existing current to continue circulating.

I've driven proportional solenoids with exactly this circuit in a real commercial product.