Go Down

Topic: Positive and Negative Voltages (Can I do this circuit?) (Read 1 time) previous topic - next topic


I was wondering about having a Varying voltages from negative to positive.. I was wondering if I can do this kind of circuit?

if not do you have any ideas how to measure positive and negative voltages that are varying?
I've read, in order to  read negative values you can have a voltage divider. But my problem is that i have only one vi.. and if i put the positive values on a voltage divider, i may get 10V.

I am hoping for your response.. thank you.


Your basic idea looks like it would work, with a couple of limitations...

What kind of source do you have?   What's it's impedance or current capability?

Diodes are nonlinear.   You need to have 0.5 - 0.7V across them before they turn-on.  That means you are not going to read any positive voltages below around 0.5V, and you'll need to add the diode-voltage drop to any readings you get.   (You can do the compensation is software.)    The biasing resistors on the negative input will turn-on the "negative" diode, so you will be able to read small negative voltages, but again you'll have to compensate for the diode-voltage drop.

Also, you WILL need that voltage divider for +10V, because connecting more than 5V to an input pin can damage the Arduino.


Feb 21, 2013, 05:09 am Last Edit: Feb 21, 2013, 05:15 am by kawoonoon Reason: 1
thank you very much for the reply.
that's a good idea of the voltage drop of the diode. i almost forgot that.. ^_^
I think i will handle the programming of this. I won't stop till it work..

Im worried of my setup that it won't work.
But because you said it would possibly work, I will try it later this day.

i am thinking of an input of a Function Generator that gives a sine wave that has maximum of  + and - 3 volts peak.
I just want to show my instructor that arduino can also read negative voltages.

A question about the input impedance or current capability, is this very strict?
Do i need to put resistors to balance their impedance?


You might try just the "-" circuit shown without the diode, and apply your +/-3V
signal. Use R1 = R2 = 10 Kohms, see what happens.

The important thing about R-values here, and everywheres, is that your measurement
ckt should not load down the source voltage. So, you should have Z(source) much less
than Z( measurement circuit).


now i get it..
if i have -3 volts i should have + 2 Volts to multiply to R1/(R1+R2) and the arduino reads 1 volts. Is that right?

But with the +3 volts i should have +8 Volts to multiply the Voltage Divider so arduino reads 4 volts.. nice idea there..
Thank you very much.


Feb 21, 2013, 05:54 am Last Edit: Feb 21, 2013, 06:02 am by oric_dan Reason: 1
You have the right idea, although I think my equations are a little different.

For Vin = -3V,  Vout = -3 + (5 - -3)(R2/(R1+R2)) = -3 + 8(0.5) = 1V
For Vin = +3V,  Vout = +3 + (5 - +3)(R2/(R1+R2)) = +3 + 2(0.5) = 4V

Or superposition,

Vout = -3(0.5) + 5(0.5) = 1V
Vout = 3(0.5) + 5(0.5) = 4V

Now I see what you did, you added the voltages and multiplied by the same voltage
divider in both cases, but that won't work if R1 <>  R2. Try it.


opps sorry i was thinking R2 was the one in series with Vcc. you are correct and thank you for the great idea.

I was still thinking if the one in the schematic works? for future use ^_^

I will be using the voltage divider. Very Very useful. thank you once again.


First the theory, then the practical, time to go test, :-).


yeah your right.. Im gonna test it when i get back my arduino. ^_^


hi i got great news.. it works.. but ive not tested it yet to other voltages. i was surprise when i put -5v it was zero, and when i put +5 v it was 5v, now i just edited my processing and it works pretty well. i just need to try it on a function generator. maybe tomorrow. thank you once again.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131