Driving proportional solenoid valve using PWM

outsider:
Datasheet don't say anything about suitability for PWM or whether dither is needed. Good luck. :confused:

I agree, no notes about PWM, you need to confirm with supplier/manufacturer that the valve is happy with PWM or a DC current.
If PWM is okay, they should have quoted an operating frequency.
Tom... :slight_smile:

TomGeorge:
Hi,
Good to see you have a result.

What are you using as a power supply for the solenoid?
Can you post a copy of your circuit diagram please?

Thanks.
I am using a wall wart to power the circuit.

I have tried contacting IQValves but they have no information about this "retired" valve.
Also, I couldn't reach SMC (the other valve company) for technical issues. I will retry.

Thanks.

jremington:
No, but you could try different PWM frequencies.

For the new coil, you have to change the circuit constants to result in 165 mA max = 16.5V across a 100 Ohm coil. Study the design hints in reply #14.

That cannot be done without a higher voltage power supply, say 24V.

How do you recommend to change the frequency tp about 1.2KHz using arduino?

If my calculations are correct, R1 = 10K, R2 = 340 Ohms to deliver Vout = 0.165V. Please correct me.

I don't understand why the current value corresponds to voltage (0.165A to 0.165V).
Also in case of Parker, voltage divider calculation yields the same result, i.e. 0.172V or 0.085V corresponds to 0.172A or 0.085A.

voltage divider.JPG

I don't understand why the current value corresponds to voltage (0.165A to 0.165V).

Ohm's Law. V=IR

R1 = 10K, R2 = 340 Ohms to deliver Vout = 0.165V

Correct.

You could also increase the value of the current sense resistor, for example to 10 Ohms, leading to 1.65V for 0.165A through the coil, and then use the original voltage divider.

jremington:
Ohm's Law. V=IR

In this particular case when coil resistance is 100 ohms, yes V=IR.
In#22, both coils can't have same resistance but still their Vouts are similar to output current. Doesn't make sense to me.

jremington:
You could also increase the value of the current sense resistor, for example to 10 Ohms, leading to 1.65V for 0.165A through the coil, and then use the original voltage divider.

Don't have 10 Ohms resistor with higher wattage.
I will test R1 = 10K, R2 = 340 Ohms combination.

Thanks.

Hi,
That valve is not designed for PWM control, the circuit and the info sheet you posted the link to shows it is a DC current type proportional control.
The circuit you are using is for DC current control of the valve, not PWM.
The circuits input control variable is DC Volts, not PWM.
The values and equations are for DC current, NOT PWM.

If you replace the PWM from the Arduino with a variable 5V supply, I think you will get better results.

With PWM your meter is measuring AVERAGE Volt drop and hence AVERAGE current of the PWM system.

The circuit is, via the 1Ohm resistor, current limiting the Valve Coil current, ONLY on the PWM ON time, so the peak current is limited, BUT the average is lower, dependent on the duty cycle.

I hope I explained that clearly enough.
ALL the parameter refer to DC current control, NOT PWM.

Tom.... :slight_smile:

In#22, both coils can't have same resistance but still their Vouts are similar to output current. Doesn't make sense to me.

In both cases you have a 1 Ohm sense resistor, producing a voltage proportional to the coil current, according to Ohm's law.

TomGeorge:
I hope I explained that clearly enough.

Yes thank you.
I will test using a regular 10K pot with 5V as input. I can then vary the voltage.
I have also ordered digital pot X9C103S.
I hope everything would work out as expected.

jremington:
In both cases you have a 1 Ohm sense resistor, producing a voltage proportional to the coil current, according to Ohm's law.

Oops, I missed that out. Thanks.

zeus2kx:
I used FQP30N06L instead.
Its a logic level N-Channel MOSFET with Vgs lower than 3V.

No, the FQP30N06L requires a minimum of 5V gate drive, this is very clear from the specs and
graphs.

Hi guys,
I built the circuit (below) for PVQ31.
driver.JPG
I tested with an input in the range 0-5VDC (not PWM) but the valve opened only at 4.6V.
Therefore the entire opening of the valve was in the range 4.6 - 5V.

Just for testing, I used 0-10VDC and again the valve opened at 4.6V. Here I had a wider range of operation, i.e. in the range 4.6V - 10V.

I would prefer modifying the circuit (needs your suggestion) to drive in the 0-5V range.

Kindly suggest.

Thanks.

1 Like

The circuit is performing as expected.

4.6V across the input divider gives about 0.16V input to the op amp. That corresponds to a current of 0.16A across the 1 Ohm resistor, which is evidently what it takes to open the valve.

If you increase the 1 Ohm sense resistor to 10 Ohms and reduce R1 to about 560 Ohms, 5V input should then lead to about 190 mA maximum coil current. Reduce R1 further to increase the valve current at any given input voltage.

1 Like

zeus2kx:
Hi guys,
I have an old proportional solenoid valve which can be proportionally opened and closed in the supply voltage range of 0-6VDC.
This valve does also support current driving but I want voltage control using PWM (0-5V).
Now how can I use Arduino PWM when I am limited by current?
Can I use easydriver? If so, how do I wire and code?

Thanks.

Z

usually, I make an output pin out of 0 - 5 volts using as below, you can modify it.

byte Vout;

void setup() {
}

void loop() {

analogWrite(2, Vout) ;

Vout++ ;

if ( Vout > 254 ) {

delay( 100 ) ;
}
else
{
delay(1000) ;
}

In my opinion, Ampere follows your supply, but as far as I know, Arduino should not be more than 20mA

1 Like