Driving a 0-10vDC signal control valve

I have a control valve actuator that accepts a 0-10vDC control signal to dictate the position of the valve.

Is there a circuit that someone has used to do this to drive it from an Arduino PWM?

I assume the 0-5v PWM needs to be turned into an analog signal and then boosted to 0-10v.

Can someone point me in the right direction.

Use an RC circuit (RC circuit - Wikipedia) to flatten the signal and a transistor or MOSFET (depends on the current you need) to boost the signal to 10V. It may even be possible that you don't need the RC circuit, for example if the valve is solenoid driven.

If you need more help provide more detailed information.

Look in the Motors, Mechanics and Power section of the forum.

accepts a 0-10vDC control signal

You may want to read the datasheet for your device to see what kind of signal it is expected. Generally this should be a high-impedance pin so putting a low-pass filter on the pwm output would work.

Otherwise, you may need buffering.

Had a bit more of a search using a variety of terms, unfortunately the search function doesn't like the term '0-10v'.

Is this the kind of thing most people are using?
http://ruggedcircuits.com/html/circuit__20.html

Had a bit more of a search using a variety of terms, unfortunately the search function doesn't like the term '0-10v'.

Is this the kind of thing most people are using?
http://ruggedcircuits.com/html/circuit__20.html

No... An op-amp won't have the current capability to turn a valve. And, if you can use PWM (which I assume you can), you don't need an "amplifier".

If you use a MOSFET (I can't find a schematic at the moment :frowning: ), then the only trick to getting the 10V maximum is to use a 10V power supply. The power supply sets your maximum, and the PWM setting sets the faction/percentage of that maximum on a scale of 0 to 255. For example, if you program the PWM for 50% (128) you will average 5V, and the valve should go to the half-way point.

I think I may have left a vital piece of information out.

The valve is 24vAC powered. The 0-10v is just a signal, I don't think the current draw is very high...

The 0-10v input expects to see a DC input not a DC PWM. So I can't just give it a 0-10v PWM signal.

StuntMonkeh:
I think I may have left a vital piece of information out.

The valve is 24vAC powered. The 0-10v is just a signal, I don't think the current draw is very high...

The 0-10v input expects to see a DC input not a DC PWM. So I can't just give it a 0-10v PWM signal.

Well there's always the possibility to use some sort of DAC (digital to analog converter). You'd be looking for one that will accept 5 V logic level inputs (something that mentions the input(s) being "CMOS" or "DTL" compatible will usually work). On many DAC's the output range is set by the difference in voltage between two supply pins (often named something similar to "V+" or "VCC" and "V-" or "VEE", respectively) and a supply range of > 10 VDC (i.e. the higher voltage being 10 VDC or more above the lower) is fairly common. Since this is just a control signal you won't a need high current on the output either, so if the ICs are listed by maximum power dissipation (this will be the power the chip takes to run plus the power of the output signal) you wouldn't need more than a few hundred mW.

However, another consideration will be how the Arduino interfaces with the DAC. A fast and often cheaper way to interface would be in parallel, but you'd need a pin for each bit of the resolution (i.e. 8-bit resolution requires 8 pins) and while you might not need anything more than 8 to 10 bits that's ties up a big chunk of your Arduino's I/O if done in parallel. There are also DACs that can receive the digital signal serially, either on a very simple two wire bus (one for the signal and one for the Arduino's clock) or using one of the standard bus protocols like SPI or I2C.

Either way this will likely be somewhat more expensive (for low volume orders)than the other options suggested. While some DACs can get around $50.00 each , the ones you'd be using would be more like a few dollars a piece. Still that could be more for a single component than the total component cost for other options. Here's an example of one of the more inexpensive 8-bit DACs you could use (at least in a through-hole package), on Digikey it's ~$1.60 a piece, but notice it requires parallel input for the digital signal.

So I could use something like this?

I remembered a similar situation, someone needed variable "0-10V".
Grumpy Mike came up with a circuit for just that, using Arduino PWM.

See his attachment, "Prop SSR.pdf" --

It worked for jimjam, and it ought to work for you, too.

Nevermind the SSR part. The variable voltage is at the Emitter of the NPN.

I found this circuit which is a 0-10v output.

I'm pretty sure the triangle is an op-amp (LM358M) but what are the transistors doing?

One to buffer the output and another to limit its current.

That circuit requires a 0-10v input.

StuntMonkeh:
I found this circuit which is a 0-10v output. I'm pretty sure the triangle is an op-amp (LM358M) but what are the transistors doing?

You don't like the circuit that I referenced?

dhenry:
One to buffer the output and another to limit its current.

That circuit requires a 0-10v input.

So the transistor with the collector connected to the 24v is to isolate the input signal from the output and the other one is to limit the current.

Maybe I was wrong about the triangle being the op-amp.... Might be more to it than that.

I'm sure you are right about it needing a 0-10v input but can you explain.

Oh no, not that... I have an old HVAC controller and found the circuit in some of the documentation so I was trying to understand what was going on.

You can create gain by inserting a resistor between the two 100k resistors and the output.

See attached.

See attached.

It looks great, except that it wouldn't work.

dhenry:
You can create gain by inserting a resistor between the two 100k resistors and the output.

So if I put a 100k resistor in where you said that would give me a gain of 2.

What does the 100k resistor thats currently located between the output and ground?

I know the circuit I found does not allow for any conditioning of the PWM. I assume I will need some sort of low pass filter on the op-amp input.

Well, you could go to radio shack and get a rectifier to rectify the 24vac into a dc current, use some fat capacitors to smooth the DC ripple, and use a voltage regulating chip (7805, 7812, etc and some small diodes) or a pot to get the output voltage down to ~10v for the base signal. Crude, but might work.