Voltage to GND vs Relative Voltage

Hi Forum Members,

I am relatively new to the world of electronics and still trying to grasp some of the fundamentals. So this may be a very basic question. Please refer to both attached diagram and picture supplementing my narrative below.

I was playing around with my Arduino Uno, building a circuit to see how pullup resistors function. The experiment went as expected, with the open gate triggering a HIGH condition at digital input pin #7. I specifically used a very large resistance to see if it would register a voltage across, as part of the voltage divider circuit with the large pin internal resistance/impedence. For this reason the pullup resistor consisted of three 820kOhm resistors in series.

Things got interesting when I started measuring voltages. With the gate OPEN, the voltage across the three resistors measured around 0.22V, telling me that pin 7 saw a sufficiently high voltage to trigger the HIGH condition, which it did.

I then measured the voltage relative to ground for each of the three resistors (please see diagram). As expected V1 registered V1 = 5V. The voltage taken from inbetween R1 and R2 and GND registered at 2.74V. Similarly, V3 = 1.89V and Vx = 1.43V. How is this possible if the voltage at Pin 7 was sufficient to trigger a HIGH condition? I assume the voltage measured by Pin 7 is relative to the same GND I used in my measurements (please see photo).

I am obviously missing something elementary. Any advice/direction would be appreciated.

Two things -

The Arduino has an input resistance/impedance, but it doesn't have an internal resistance to ground.

And, I think the resistance of your meter is affecting the voltage it's measuring... It's measuring accurately, but it changes when you connect the meter.

An open (unconnected) Arduino can read high or low. If you read an analog input, you'll usually read somewhere in the mid-range. But if you connect your meter, the meter's resistance should pull it down to zero, or almost zero.

A common DMM (digital multimeter) has an input impedance of 10Megohm.
If you measure a voltage through a high value resistor, then you see a volt-drop,
because of the voltage divider you have created.
10Meg/(10Meg+0.82Meg)*5volt= 4.62volt (5-4.62= 0.38volt across the 820k resistor).

An Arduino analogue input pin has a much higher impedance, but not exactly to ground, and temp dependent.
Best to keep presented impedance to the pin <=10k.
If you must go higher, then a (100n) buffer cap from pin to ground might be needed.
Leo…

Thank you very much guys, well explained, makes sense.

How to post an image

Something else to consider with high resistances is your body. Use your mulitmeter to measure the resistance between your hands: For the purposes of this reply I have just done so and got 4M Ohms, which is high but not infinite. Touching high value resistors will significantly change what you measure. Also, your body acts as an aerial for all the electromagnetic radiation around you (mostly mains hum at 50 or 60Hz), which will get fed into high impedance inputs and change what they register.

++Karma; // For experimenting and asking sensible questions about what you find.

Thank you for taking the time to check this yourself Perry. Now that you mention it, when my fingers made contact with the metallic part of the multimeter probes it significantly changed the readings. I have also found that keeping my feet grounded versus not also made a difference in some cases.