I have a 3V sine wave input and I want to measure resistor precisely from 1 ohm to 40ohm. I have tried using Arduino to measure the resistor using voltage divider but it became obvious that I will not be able to measure within 0.1ohm accuracy. I am now learning to use four point probe (wheatstone bridge). How do I choose resistor value such that it becomes a balanced circuit to measure resistance from 1ohm to 40ohm. I hope to learn from you all.

  • 2
    \$\begingroup\$ Four-wire probing is a Kelvin connection, not a Wheatstone bridge. Are you sure you're not mixing things up? \$\endgroup\$
    – Hearth
    May 14, 2021 at 3:04
  • \$\begingroup\$ Sam, accuracy is something traceable to NIST standards (or DIN, or similar.) Resistors are often specified with 1% accuracy or 2% accuracy (initial-only.) So, suppose you are designing a method to measure 100 milliOhm accuracy of a resistor. How would you approach this problem? What level of accuracy would you require of the parts you use in the experiment? How could you design an arrangement that balances the required accuracy of parts so that it is distributed evenly and not concentrated all in some one part that has to be super-accurate? \$\endgroup\$
    – jonk
    May 14, 2021 at 4:27
  • \$\begingroup\$ @jonk I want to atleast try wheatstone bridge and see what the result looks like. I don't want to be discouraged. What I would like to know is how can I make the circuit balanced such that the output voltage is linear as the unknow resistor goes from 0 to 40ohm. \$\endgroup\$
    – Sam
    May 14, 2021 at 20:36
  • \$\begingroup\$ @Sam An accurate current source is how you would create a voltage that is linear with resistance. \$\endgroup\$
    – jonk
    May 14, 2021 at 21:06

1 Answer 1


As commented you are probably making confusion between Kelvin connections and Wheatstone bridges. They are completely different things!

A Wheatstone bridge is simply a glorified two-voltage-divider system, really.


simulate this circuit – Schematic created using CircuitLab

One divider on the left, one divider on the right and a null detector in the middle (in the original construction). When it was invented you put your X resistor at, like R1 position and tuned R2 or R4 until you got 0V between branches. R3 would set the range, more or less. The advantage is that R1 and R3 can be of different orders than R2 and R4 (it's not practical to make a, say, 10 ohm variable resistor).

These days the Wheatstone is mostly used as an amplifying device for transducers with multiple resistor varying (i.e. strain gauges and similar).

A Kelvin connection (or Kelvin sense or 4-wire resistor measurement) is a way to avoid errors due to connecting lead resistances:


simulate this circuit

The idea is that the 'wire joints' are made directly on the resistor (current shunts have actually 4 terminals precisely connected in that way). With a voltammetric measurement you force a known current in the resistor and measure the drop (Ohm's law follows). However the measurement leads themselves have some resistance (on the order of 0.1 ohm, typically) that would get included in the measurement with a standard ohmmeter. Using two different leads and and high impedance voltmeter you can avoid the error since on the sense leads circulates no current.

Now, measuring a resistor with a Wheatstone bridge and a single ended ADC like the one on the Arduino simply can't be done. You need a differential amplifier for that. And it's actually trickier than it seems since the error and tolerances propagate really fast (also, by the way, the Wheatstone bridge is not linear with only one varying resistor).

1 to 40 ohm with 0.1 ohm precision is quite feasible and not too hard with a Kelvin sense. The main issue is the power you dissipate on the resistor, that could be a problem. Assuming you are not going to use a dedicated amplifier (they make them), if you wanted 2.5V with a 40 ohm resistor you would need 62.5mA and dissipate about 156mW on the resistor in the process.

For the resolution: assuming 2.5Vref and a 10 bit ADC (not sure if the Arduino one is 10 or 12 bits), one LSB is about 2.44mV. 0.1 ohm on a 62.5mA current gives 6.25mV, so it's about 2.5 counts of converter. Could be better but on paper you have the resolution needed, oversampling a lot would help if possible.

As for the precision… well, you didn't say. Precisely is not exactly… precise. In this application the main sources of error are the constant current generator and the ADC Vref (the Vref generator internal to the MCUs usually is quite poor).

  • \$\begingroup\$ Thank you for all the information. What I would like to know is how can I make the circuit balanced such that the output voltage is linear as the unknow resistor goes from 0 to 40ohm. I know how to make a balanced wheatstone bridge but how can I make it balanced for a range of resistor such as 0 to 40ohm. \$\endgroup\$
    – Sam
    May 14, 2021 at 19:01
  • \$\begingroup\$ By definition the bridge is balanced only at one point, when the differential is zero. There is a quadratic relationship for the output when the bridge is not balanced (so for this application it kinda sucks). You could, for example, have the incognito arm as (1-40ohms)+(100ohms) and balance it with (1-40kohms)+(100kohms); the 1-40kohm would be your variable resistor \$\endgroup\$ May 17, 2021 at 8:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.