DAC with high current [max 5V 400mA]


I would like to control a proportional valve that drains a current of 400 mA at its maximum aperture. The principle of the proportional valve is simple: 0V -> closed, 5V -> fully open, 2.5V -> half open.

I would use the PWM output of Arduino but it wouldn't be able to output the needed current AFAIK. So I thought of some DAC chip, but those I have seen are limited in current.

Do you have any suggestion for my problem?

I don't need high precision (8 bits are more than enough).

Thanks very much in advance.


Datasheet for the proportional valve?

If its current controlled and solenoid operated then PWM may work.

If driving the valve directly with PWM won't work, then if you have a supply of more than 5V available, you could drive the valve from an op amp and transistor or mosfet configured as a unity-gain buffer. You can drive the input of the buffer either from a DAC or from an R-C smoothing network fed from a PWM pin.

If you have only 5V available, then it is possible to generate a +9V supply from a PWM pin using a couple of diodes and capacitors. This can provide power to the op amp, and by using a mosfet used as the output device, you can pass up to the full 5V to the valve.

To MarkT:

the datasheet of the valve is here: http://www.clippard.com/downloads/PDF_Documents/Clippard%20Full%20Line%20Catalog/Clippard%20Catalog%20by%20Page%20Number/167-225%20Electronic%20Valves/Page%20190.pdf

it is a solenoid valve, look at this table:

| Nominal Voltage Range @ 73°F (VDC) | Input Current Range (amps) | Coil Resistance @ 73°F (ohms) | Max. Voltage Required (VDC) | | - | - | - | - | | 0 to 5 | 0 to 0.370 | 13.5 | 6.2 | | 0 to 10 | 0 to 0.185 | 54 | 12.4 |

If I want to use the 5V model it will need 0.370 A as maximum current, but Arduino can only output 40mA.

Maybe something like this guy does could work? http://bildr.org/2011/03/high-power-control-with-arduino-and-tip120/

To dc42: are you suggesting me something like this: http://www.learningaboutelectronics.com/Articles/Unity-gain-buffer ? The idea is to power the circuit with a battery (6V or 9V), which can be used also for powering the valve of course.

guys, thanks very much for your suggestions, if you have any further comment, examples or schematics, I would be very grateful !

Ah yes, I remember now, these things tend to have a soft-iron core so PWM won't work (very heavy eddy current losses).

So you need a current amp after the DAC (or PWM/LPF). Look for circuits using an opamp to drive a power transistor in emitter follower mode to get precise high current amplification.

If you want the circuit to power up in the same state as previously there are some clever DACs available with a little EEPROM on board that is used to set the output voltage at power-up - rather than outputing zero until the microcontroller gets round to setting it up.

are you suggesting me something like this: What is a Unity Gain Buffer? ?
The idea is to power the circuit with a battery (6V or 9V), which can be used also for powering the valve of course.

See attached schematic, which also builds on Mart T’s suggestion of a current amplifier.

You should not have any problem getting the PWM to start at 0 with this configuration, just make a pinMode call to set the pin to be an output in setup().

thank you for the diagram!! I have ordered the valve but I haven't received it yet, as soon as I test it I will let you know.

thanks again...

Might also need diode backwards across the valve in case you shut the current down fast and get an inductive spike (depends on the time constant of the low-pass-filter and inductance of the solenoid's coil - but better to be safe)