generating a -10v...+10v control signal from an arduino

Hello everyone,

I'm trying to build a device to test a proportional valve. This valve requires a 24v input and a control signal that ranges from -10v to +10v. I've read up getting an analog voltage from a pmw signal, and read up on charge pumps to get a negative voltage. But all of this is sort theory, and I don't really understand it fully..... So what attached components would I need to do something like this? Or maybe just a research topic pointer...

Any info would be great and most appreciated.

Thanks Jon

Is this +/- 10V signal an input or an output. The body of the post and the title seem to contradict each other. What sort of resolution do you want? Basically you need some form of power supply, an op amp or some transistors and some filtering.

Hi Grumpy Mike,

The +/-10v would be an output, it is the control signal going to the valve, originating from the Arduino

resolution, i would like it to be analog, or fine enough to appear analog. the valve operates full open / full close over a 20v range. 1000 steps seems reasonable 20mv/step?.

would i be stuck to 255 steps since it is going to be tied to the PWM?

power supply - 2x12v batteries...

this 'tester' i am building would also have an lcd output, theres a bit of math to give me a valve percentage, etc. - this is software stuff.

thanks jon

Filter PWM output to produce a smooth 0-5volt analogue signal. The centre point of your 24 volt battery configuration to be connected to arduino ground. All OpAmps to be powered by +/- 12 volts. Feed the 0-5volt analogue to a unity gain OpAmp/comparator with +2.5 volt fixed offset. This will produce -2.5 to +2.5 volt output. Now feed this to OpAmp with gain of 4 to produce the required -10 to +10 volt drive signal. Probably could be done with a single Opamp/comparator but using two makes it simpler to calibrate.

If your PWM filter reduces the 100% signal to less than 5 volts, let’s say 4.5, then the 50% PWM value should be 2.25 so you need to alter the 1st stage bias voltage to +2.25 and the output will be -2.25 to +2.25. By altering the gain of the second stage to 4.44 you get back to the -10 to +10 output.

Can you point us to a datasheet for the valve? Whether or not you can use a charge pump to derive the negative voltage depends on its input resistance.

You can get more than 255 steps by using 2 PWM pins, if the valve is capable of distinguishing more than 255 steps..

I'm sceptical that a device with a single +24V rail would take a negative voltage on a control input... Plenty of 0..10V proportional valves out there, but Google doesn't find anything for -10V

It is quite unusual, but not impossible, for a valve to have a control signal below its ground.

So before wasting your time thinking about generating a -10 to +10v signal, make sure that your valve does need such a signal. Chances are that it doesn't but read the datasheet to be sure.

Hi Everyone,

Thanks for all the good info. here is a link to the data sheet of the valve.

we have the version that is voltage controlled not amperage controlled.

thanks jon

The datasheet says that the input is a differential amplifier. Therefore, one way of controlling the valve is to use two PWM pins, generate a 0 → 10V signal from each one, and feed them to the inputs. Set one of the outputs to zero (depending on which way you want to move the valve) and the other to 0 to 10V. This requires 2 PWM pins to control the valve, but does not need a negative supply. The attached schematic is one way of generating one 0-10V signal.

Alternatively, only use a PWM pin to generate one of the inputs, and switch the other to 0V or +10V from a digital output pin.

Jonnym: Hi Everyone,

Thanks for all the good info. here is a link to the data sheet of the valve.

we have the version that is voltage controlled not amperage controlled.

thanks jon

That's not the datasheet, that's a catalog entry. This is the datasheet (auf Deutsch!)

If my german is good enough its a 0..10V control signal. But it is differential so you can connect either Ue or Ud to ground and get either sense as (Ud-Ue) is the control voltage (section of the pdf) - anyone got a better grasp of technical german??

anyone got a better grasp of technical german??

No but if you scroll down the data sheet the bottom half is repeated in English! ;)

So yes it is a differential input. That means the two signals both go from 0 to 10V, it is just that when one is up and the other is down that is a 10V signal but when this is reversed it is a -10V input. But there is not a -10V with respect to ground it is just with respect to the other signal. Therefore you need two 0 to 10V analogue signals. I would put the PWM first through a transistor to get it in the 0 to 10V range, and then filter it to remove the PWM switching noise. This is simpler than smoothing it and then having to get a linear amplifier to boost it up to 10V.

The attached schematic is one way of generating one 0-10V signal.

That wouldn't work.

Ignore dhenry, he likes saying things won't work but doesn't provide any justification for his opinion, because he hasn't any.

It will work may have to play with it a little but that's the fun part. low pass and a op-amp and 2 volts above 10 should go 10 to 0 volts

doesn't provide any justification for his opinion

That's called the art of engineering: if you had built your circuit, you would know why it doesn't work.

Something like that is great on paper only.

hi everyone,

thanks for all the pointers and ideas- it seems that the catalog page was missing a bit of info that the data sheet filled in. who would have thought it :slight_smile:

to move this thing in direction “A”, apply a voltage to pin D, this voltage is ranging from 0-10v.
to move this thing in direction “B”, apply 0-10v to pin E.

pin D and pin E are to remain connected to their respective branches of the circuit. i would imagine i could break something it 10v was on pin D and pin E at the same time?

the data sheet says that if only one signal pin is available, then the other needs to be grounded. since i will be using both signal pins - there is no need to ground the pin, when traveling in the opposite direction, correct?

i’ll keep reading a bit and post a circuit sketch in a bit – again thanks for the help


I agree with dc42 that his ckt should work, and all the way from 0V to 10V output, as the LM358 opAmp has input common-mode range down to ground.

The one thing that may be an issue is that 1st-order filtering of the PWM signal will leave a little ripple on the DC-level, so the valve may jitter some. You can deal with that by using a PWM frequency much much greater than the R*C time constant of his filter, but this will also reduce the frequency response of the valve, if that's an issue.

hi oric_dan,

thanks for the reply --- although it is bit above my knowledge level.

...filtering of the PWM so if i look at it on a scope i'll see some stepped lines, and not super smooth, the faster the pwm frequency, the less noticeably this becomes?

...PWM frequency much much greater than the R*C time constant of his filter ??? the math of circuits has got me confused. i used to have respectable math skills, but haven't used them in many years. could you clarify a bit.

...response time of valve. --slow is fine. :)

i'm putting together a parts order now... any suggestions?


This should help explain it,,or.r_gc.r_pw.r_qf.&bpcl=38625945&biw=1153&bih=827&um=1&ie=UTF-8&tbm=isch&source=og

You can see dc42’s same ckt here,

For a 1st-order RC low-pass filter, the 3dB or ‘cutoff’ frequency is given by F3db = 1/(2piR*C). You want the
PWM frequency to be maybe 5X this value to get reasonably small ripple. Probably better to directly access
the Arduino PWM subsystem than to use the analogWrite() function, which I believe has a fairly low frequency.

BTW, I find I’m using google images for almost everything now, in preference to a regular google search. Easier
to zero in on the perfect website, :-).

hi guys,

i am plugging numbers into this calculator... could you verify some of my assumption??

fPWM= 480 (this is the operating freq of the pwm timer? )

duty step -- the output i want. 50% if i wanted around 5v output, based on switching 0-10v

R and C values?? I got a 'pretty' curve at R =5k and C =10u. Could i expect to get better??

what is the fc - cut off frequecy term mean?

thanks jon