# Uno - measure the voltage, NOT connecting GND

I'm trying to use an Arduino Uno, to measure the Voltage over a Resistor in a circuit. I guess the usual way would be to connect GND to one side of the Resistor and the AD0 Pin to the other end, and scale the (0..1023) to (0..5V).

The problem is however, that connecting the GND to one side of the Resistor affects the circuit. Since the GND of Arduino is also connected to a Servo Driver (and other stuff), Some of the power that was supposed to be consumed by my Resistor, is now consumed by the parallel circuits.

Is there any way to measure the Voltage over the resistor without using GND?

If I understand the description correctly, neither side of the resistor is at ground potential. There's a wide gamut of methods of dealing with this, for example using a differential ADC unit, or using an instrumentation amplifier ahead of a single-ended ADC. But perhaps the simplest method is to use two ADC channels, one attached to each end of the resistor, with ADC ground connected to some common reference point. Measure both voltages and take their difference .

• Thank you! Yes you got the question right. Nice idea specifically since I can't afford to add more circuitry. And True, The Resistor's "GND" doesn't need to level with the GND of the rest of the circuit. I'll implement soon and provide feedback May 11 '17 at 13:04
• It turns out that by attaching two ADC channels to the ends of the resistor, I don't get a valid or even stable result. The result is a chaotic number. Any suggestions? May 16 '17 at 13:41
• @MakanTayebi, Do you print all 3 values? (Ie, both analogs & their difference)? If not, printing them all might indicate if variation at one end is causing the problem. Or might indicate wrong pin being read. Note, if you use the same ref voltage for both readings, subtract the two readings before scaling instead of after May 17 '17 at 3:47
• I print both and both fluctuate, so much that their difference is not also meaningful. And that's even before scaling. But what about the Refererence Voltage? What PIN would that be? May 17 '17 at 18:39
• The `AREF` pin can be used to input a reference voltage of 1 V or more, which can be selected for use via `analogReference(EXTERNAL)` (see link). By default, `analogReference(DEFAULT)` is in effect, and it selects +5 V on a 5 V board, or 3.3 V on a 3.3 V board. For most-stable results on Unos/Nanos, use `analogReference(INTERNAL)` if a 1.1 V max reading is acceptable. May 17 '17 at 21:07

Why you are using AD0 pin for analog read? use A0-A7 for Arduino mega and A0- A5 for arduino uno case for reading of analog values. For more detail study the voltage devider and you will understand the problem more easily. As i understand there is no need to use ground.

• I don't get why this answer has gotten negative reps. I'll try taking the GND out of the loop. May 11 '17 at 13:07
• “There is no need to use ground” is untrue. Yes, voltages are differences in potential between points, neither of which need be ground. But when you measure voltages using an Arduino ADC, some ground-reference point in the circuit under test should connect to the Arduino's ADC ground (which, on Mega, Uno, Nano, is wired to digital ground...) May 11 '17 at 13:45
• And what do you think `AD0` refers to in this context? May 11 '17 at 13:56