11 Resistive Dividers and ADC Loading
11.1 Start With the Measurement Story
Check One Voltage Before Trusting the Number
Picture a water sensor whose resistance changes as a tray fills. The controller cannot read resistance by itself. A pair of resistors turns the change into a voltage, and the input circuit turns that voltage into a number. Each step can change the result.
A voltage divider means two resistors that share a supply voltage. An analog-to-digital converter means a circuit that turns a voltage into a number; it is called an ADC. Firmware means software stored on the controller. Resolution means the smallest change the number can show. Loading means the input circuit changes the voltage it is trying to measure.
Measure an empty, middle, and full tray with a meter and with the ADC. Then lower the supply, use a larger resistor, shorten the sample time, restart the firmware, and repeat the test. Record the raw voltage, the ADC code, the chosen reference, and the final physical state.
This runway does not choose the best resistor or prove the sensor is linear. The deeper sections show divider math, supply cancellation, sensitivity, input loading, buffer choices, and the evidence needed for a reliable reading.
A resistive sensor only becomes useful when its changing resistance becomes a measurable voltage. The story is the divider, the ADC input, the loading error, and the evidence that the chosen values still leave enough resolution.
11.2 Learning Objectives
After this page, you should be able to:
- Explain how thermistors, LDRs, FSRs, and potentiometers convert physical changes into resistance changes.
- Use voltage-divider math to convert resistance into an ADC-readable voltage.
- Apply the ratiometric trick so supply drift cancels from ADC codes.
- Choose divider values that balance sensitivity, battery current, and ADC source-impedance limits.
- Diagnose ADC loading when high-value dividers under-charge the sample-and-hold capacitor.
11.3 After Sensor Circuit Basics
Sensor Circuit Fundamentals introduces voltage dividers, filters, switches, and LED protection as reusable blocks. This page focuses on the analog-input details that decide whether a divider reading is trustworthy after it reaches the ADC.
Use it when a thermistor, LDR, FSR, or potentiometer circuit works on a multimeter but reads differently in firmware. The likely causes are reference mismatch, poor fixed-resistor choice, high source impedance, short sample time, or a missing buffer capacitor or op-amp buffer.
11.4 Resistance to Readable Voltage
A large family of sensors are, electrically, just variable resistors. A thermistor's resistance falls as it warms; a photoresistor (LDR) drops as light increases; a force-sensitive resistor (FSR) drops under pressure; a potentiometer's wiper resistance tracks an angle. This is resistive transduction: the physical quantity changes a resistance.
The underlying physics can be summarized as R = rho * l / A: resistance rises with conductor length l, falls with cross-sectional area A, and changes when the material's resistivity rho changes. That distinction helps classify real resistive sensors. A strain gauge changes shape as the foil stretches, so l and A move slightly. A thermistor or resistive moisture probe mainly changes effective rho as temperature, water content, ions, or contact conditions change. The firmware still sees one problem: turn that resistance change into a voltage or bridge output that preserves enough margin to make the decision.
Resistive transduction is not the only option, and naming its neighbors clarifies why this chapter's circuits look the way they do. A capacitive sensor varies capacitance instead of resistance, following C = epsilon * A / d: a capacitive water-level probe varies the dielectric epsilon as water rises between two plates, a MEMS accelerometer varies the plate spacing d as a suspended proof mass shifts under acceleration, and a capacitive slider or joystick varies the overlapping plate area A as a conductive element moves across a track. A piezoelectric sensor goes further still: certain crystals (quartz) and semi-crystalline polymer films (PVDF) generate a voltage directly from mechanical stress, with no supply needed to produce a signal — the basis for quartz sonar and surface-acoustic-wave transducers, and for flexible PVDF force-sensing insoles. Both families need very different front-end circuits than a resistive divider — a capacitance-to-digital front end or oscillator for capacitive sensors, a charge amplifier or very-high-impedance buffer for piezoelectric sensors — because their native output is a capacitance or a transient charge, not the steady resistance a simple divider can read. This chapter stays with resistive transduction because the divider is the simplest and most common of the three, and the one an ESP32-class ADC reads directly.
The problem is that a microcontroller's ADC measures voltage, not resistance. It has no direct way to read ohms. The bridge between them is the most common sensor circuit in embedded systems: the voltage divider, which pairs the sensing resistor with a fixed reference resistor so that a change in resistance becomes a change in voltage at their junction.
Worked example. Put a 10 kΩ fixed resistor on top, a 10 kΩ thermistor on the bottom, and power the divider from 3.3 V. At 25 °C the junction is 3.3 * 10k / (10k + 10k) = 1.65 V. A 12-bit ADC using the same 3.3 V rail reads about 1.65 / 3.3 * 4095 = 2048. If the thermistor warms to 5 kΩ, the junction becomes 3.3 * 5k / (10k + 5k) = 1.10 V, or about 1365 counts. Firmware does not need to know resistance directly; it watches the count move from roughly 2048 toward 1365 and maps that movement to temperature after calibration.
That count movement is also what makes simple decisions reliable. If a fan should turn on above the warm point, a threshold around 1500 counts leaves about 2048 - 1500 = 548 counts of margin from the 25 °C reading and 1500 - 1365 = 135 counts from the warm reading. The circuit turns a physical change into numeric separation that software can test.
Intuition: two resistors in series across a supply split the voltage in proportion to their sizes. Make one of them the sensor, and the split point moves as the physical world changes. The ADC watches that moving split point.
11.4.1 Overview Knowledge Check
11.5 Divider Math and Ratiometric ADC
For two resistors in series from supply Vs to ground, with the ADC tapping their junction, the output voltage is:
Vout = Vs × Rbottom / (Rtop + Rbottom)
Worked example: 10 kΩ NTC thermistor divider at 3.3 V
Put a 10 kΩ fixed resistor as Rtop and a 10 kΩ NTC thermistor as Rbottom, supplied from 3.3 V:
At 25 °C the NTC is 10 kΩ: Vout = 3.3 × 10k / (10k + 10k) = 1.65 V The NTC is negative-tempco, so as it warms its resistance falls. Say at ~50 °C it reads 4.0 kΩ: Vout = 3.3 × 4.0k / (10k + 4.0k) = 0.943 V Warmer -> lower NTC resistance -> lower Vout.
Swap the two resistors (thermistor on top) and the direction reverses: warmer would raise Vout. Choosing which leg is the sensor sets the sign of your reading.
Now translate those voltages into ADC counts. With a 12-bit converter referenced to the same 3.3 V rail, 1.65 V is about 2048 counts and 0.943 V is about 1170 counts, a separation of 878 counts. That is large enough for a simple threshold or lookup table. If the supply droops to 3.1 V and the ADC reference droops with it, both voltages shrink but the code ratio stays the same. If the divider uses 3.3 V while the ADC uses a separate drifting reference, the same physical temperature can produce a different code, so calibration no longer transfers cleanly.
The ratiometric trick: if you feed the divider from the same reference that the ADC uses (Vref = Vs), then code = 2^N × Rbottom/(Rtop+Rbottom). The supply value cancels out. The reading depends only on the resistance ratio, so it is immune to supply drift and ripple — a free and widely used robustness win.
11.5.1 Practitioner Knowledge Check
11.6 Divider Sensitivity and ADC Load
Two second-order effects decide whether a divider that works on paper works on the bench.
Sensitivity is not uniform
The output moves most per ohm when the two resistors are comparable. Choosing the fixed resistor near the sensor's resistance at the operating point you care about places the divider in its most sensitive, most linear region there.
The divider is inherently nonlinear
Because resistance sits in the denominator, equal resistance steps do not give equal voltage steps. Over a wide range the response curves, so firmware still needs a calibration or linearization step, not just Ohm's law.
ADC loading and source impedance
The ADC's sample-and-hold capacitor must charge through the divider's output impedance during the sample window. If the legs are very high (hundreds of kΩ), the cap under-charges and readings come out low.
Fixes for high impedance
Keep the source impedance under the ADC's recommended limit (often around 10 kΩ), lengthen the sample time, add a small buffer capacitor at the ADC pin, or drive the ADC through a unity-gain op-amp buffer.
Impedance is a genuine trade-off. Low-value legs load the ADC lightly and settle fast, but they draw continuous current through the divider — wasteful on a battery node. High-value legs sip almost no current but fight the ADC's input capacitance. The sweet spot balances power against settling.
Worked example. The ADC sees the divider through its Thevenin output resistance, Rtop || Rbottom. Two 220 kΩ legs look like 110 kΩ at the ADC pin. If the sample capacitor is about 5 pF, the charging time constant is 110k * 5pF = 0.55 us. A 12-bit conversion needs roughly nine time constants to settle near half an LSB, so the sample window should be on the order of 9 * 0.55 = 5 us or more. If the ADC samples for only about 1 us, the capacitor has not reached the true divider voltage and the code reads low. Change the divider to 10 kΩ legs and the source resistance becomes 5 kΩ; now tau = 25 ns and nine time constants are only 225 ns.
The divider calculation is incomplete until the ADC has acquired the node voltage. Inspect Figure 11.1 at that acquisition boundary so the high-impedance remedies can be tied to the conversion they protect.
At the left of Figure 11.1, Vin is the conditioned voltage presented by the divider. Inside the ADC, Vref sets scale and N bits set steps, but the third label—sample window—is the one threatened by a large Thevenin resistance: the sampling capacitor may not settle to Vin before conversion. The resulting Code is therefore a digital count of the voltage actually acquired, as the displayed count = Vin / Vref × (2^N − 1) relation makes explicit. Lowering source resistance, lengthening acquisition time, adding a pin capacitor, or buffering the node all act before that code is formed. The numerical settling example above can now be read as evidence for choosing among those fixes.
11.6.1 Under-the-Hood Knowledge Check
11.7 Turn a Warm Thermistor Into a Code
In the resistive divider, a thermistor on a pipe changes resistance, but the ADC pin can only see voltage. At this ADC loading boundary, with 10 kΩ above the junction and a 10 kΩ thermistor below it, a 3.3 V supply places the cold junction at (3.3\times10/(10+10)=1.65\ \text{V}). A 12-bit ADC then reports about (1.65/3.3\times4095=2048).
Read Figure 11.1 from the resistive divider through source impedance and filtering to the ADC sample capacitor. Then use Figure 11.1 to follow the same value from (V_{in}), past the (V_{ref}) scale and bit count, to the final code. If the warm thermistor falls to 5 kΩ, the junction becomes (3.3\times5/(10+5)=1.10\ \text{V}), or about 1,365 codes. The direction of that 683-code change is part of the circuit contract.
11.7.1 Predict the Divider Reading
- Predict: The ADC reference falls with the same supply that powers the divider. Will the ideal code for a fixed resistance ratio change? Check: No. Both numerator and full-scale reference move together in this ratiometric circuit.
- Predict: A large source resistance cannot charge the ADC sample capacitor in time. What appears? Check: The measured voltage can lag or read low even when a handheld meter sees the correct divider node.
11.8 Release Checklist
Before relying on a resistive sensor divider, confirm these points:
Start by divider orientation is documented so firmware knows which direction the reading moves. Then the fixed resistor is near the sensor resistance at the operating point that matters most. Next divider supply and ADC reference are shared when ratiometric cancellation is expected. After that divider Thevenin resistance is within the ADC source-impedance guidance or sample time is lengthened. Finally battery-current cost is acceptable, or the divider is duty-cycled with enough settle time.
11.9 See Also
Start by Sensor Circuit Fundamentals for the broader circuit block overview. Then Signal Conditioning for filtering, amplification, bridges, and protection. Next Sensor Data Processing for filtering and calibration after acquisition. Finally Accuracy, Precision, Drift, and Hysteresis for reporting the remaining measurement uncertainty.
11.10 Next
Return to Sensor Circuit Fundamentals once the divider and ADC boundary are verified, then continue to Signal Conditioning for amplification and filtering chains.
