The Thevenin equivalent of a voltage divider reduces a two-resistor network into a single ideal voltage source ($V_{th}$) in series with a single equivalent resistance ($R_{th}$). If you need a stable 3.3V logic or ADC reference from a 5V USB supply, use R1 = 10kΩ and R2 = 20kΩ. This yields a Thevenin voltage ($V_{th}$) of 3.33V and a Thevenin resistance ($R_{th}$) of 6.67kΩ, keeping quiescent current low while strictly satisfying the ATmega328P ADC sampling impedance requirements.

The Voltage Divider Thevenin Equivalent: Core Topology

To analyze any voltage divider under load, we must map the physical circuit to its Thevenin equivalent. This concept, formalized by Léon Charles Thévenin in 1883, allows us to treat complex networks as simple single-source models. For a comprehensive breakdown of the underlying theorem, refer to the foundational guides on Thevenin equivalent circuits at All About Circuits.

Topology and Node Labels:

  • Node A ($V_{in}$): The 5V source rail.
  • Node B ($V_{out}$): The midpoint junction where R1 and R2 meet, and where the load ($R_L$) attaches.
  • Node C (GND): The 0V reference plane.

R1 is placed between Node A and Node B. R2 is placed between Node B and Node C. The physical open-circuit voltage at Node B is your Thevenin Voltage ($V_{th}$), calculated as:

V_{th} = V_{in} × [R2 / (R1 + R2)]

The Thevenin Resistance ($R_{th}$) is the equivalent resistance looking back into Node B with the voltage source shorted to ground. Because R1 and R2 appear in parallel from Node B's perspective, the formula is:

R_{th} = (R1 × R2) / (R1 + R2)

Why does this matter? When you connect a load (like a microcontroller ADC pin) to Node B, that load has its own internal impedance ($R_L$). This $R_L$ forms a parallel combination with R2, dragging the actual output voltage down. By using the Thevenin equivalent, calculating the loaded voltage becomes trivial: V_{loaded} = V_{th} × [R_L / (R_{th} + R_L)].

Behavior Matrix and Extreme Failure Modes

Understanding how the circuit reacts to component drift or catastrophic failure is critical for robust design. The table below contrasts normal parameter shifts against extreme short/open failure modes.

Component Event Effect on $V_{th}$ Effect on $R_{th}$ Physical Result on Load
R1 increases (drift) Decreases Increases Lower voltage, higher output impedance (slower ADC settling).
R2 increases (drift) Increases Increases Higher voltage, risk of overvoltage if $V_{th}$ exceeds 3.3V limit.
R1 Shorts (0Ω) Rises to $V_{in}$ (5V) Drops to 0Ω Catastrophic: 5V is forced directly into a 3.3V ADC pin, destroying the silicon.
R2 Shorts (0Ω) Drops to 0V Drops to 0Ω Reads 0V. High current flows through R1 (5V/10k = 0.5mA), safe but non-functional.
R1 Opens (∞Ω) Drops to 0V Rises to R2 value Node B floats to ground through R2. ADC reads 0.
R2 Opens (∞Ω) Rises to $V_{in}$ (5V) Rises to R1 value Hazard: Node B pulled to 5V through R1. Overvoltage condition on the load.
Callout Tip: The most dangerous failure modes are R1 shorting or R2 opening, as both expose the load to the full 5V rail. If your load is highly sensitive, place a 3.3V Zener diode or a TVS diode (like the Littelfuse SMAJ3.3A) in parallel with R2 to clamp overvoltage transients.

Design Walkthrough: Sizing for a 12-bit ADC Input

Let's design a 5V to 3.3V divider to feed the analog input of an ATmega328P (Arduino Nano). The target $V_{th}$ is 3.3V. The ratio required is 3.3 / 5.0 = 0.66.

Step 1: Select standard resistor values.
We choose R1 = 10kΩ and R2 = 20kΩ.
$V_{th} = 5V × [20k / (10k + 20k)] = 3.33V$. This is safely within the 3.3V logic tolerance.

Step 2: Calculate Thevenin Resistance.
$R_{th} = (10k × 20k) / (10k + 20k) = 6.67kΩ$.

Step 3: Verify against ADC Sample-and-Hold physics.
This is where most hobbyists fail. The ATmega328P datasheet explicitly states that the analog source resistance should be ≤ 10kΩ. Why? Inside the microcontroller, the ADC uses a sample-and-hold (S/H) capacitor (typically ~14pF). When the ADC multiplexer switches to your pin, this empty capacitor must charge to the input voltage within 1.5 ADC clock cycles to achieve 10-bit accuracy.

Your $R_{th}$ (6.67kΩ) and the internal $C_{sh}$ (14pF) form an RC low-pass filter. The time constant $ au = R_{th} × C_{sh} = 6.67kΩ × 14pF = 93.3ns$. To charge to 10-bit accuracy requires roughly $7 au$, or 653ns. At the default Arduino ADC clock of 125kHz, 1.5 cycles provides 12µs of charging time. Our 653ns requirement easily fits inside this window. If we had chosen 100kΩ and 200kΩ to 'save power', $R_{th}$ would be 66.7kΩ, $ au$ would be 933ns, and $7 au$ would be 6.5µs—leaving almost zero margin for error and resulting in readings that are mysteriously lower than the actual voltage.

Step 4: Check Power Dissipation.
Quiescent current $I = 5V / 30kΩ = 166µA$. Power dissipated in R1 is $I^2 × R1 = 0.27mW$. Standard 1/4W (250mW) through-hole resistors are operating at roughly 0.1% of their thermal capacity, ensuring zero thermal drift.

Raw Divider vs. Buffered Topology: The Decision Path

A raw voltage divider is cheap and simple, but it is not universally appropriate. When should you abandon the passive divider and buffer it with an operational amplifier (like the MCP6001) or a dedicated LDO? Use the decision matrix below to lock in your topology.

Design Constraint Choose Raw Voltage Divider Choose Op-Amp Buffer (Voltage Follower)
Load Impedance ($R_L$) High and static ($R_L > 100kΩ$) Low, dynamic, or unknown ($R_L < 10kΩ$)
Current Draw Microamps (ADC sampling, CMOS logic gates) Milliamps (driving LEDs, relays, or multiple ICs)
Precision Required ±2% to ±5% (Standard 10-bit ADC, logic level shifting) < ±0.1% (Precision 16-bit+ ADCs, metrology)
Source Impedance Limit Source $R_{th}$ easily meets load spec (e.g., < 10kΩ) Source $R_{th}$ violates load spec, requiring active isolation

The Verdict: For our specific scenario—feeding a single high-impedance microcontroller ADC pin from a stable 5V USB rail—the Raw Voltage Divider wins. It requires no extra ICs, consumes negligible quiescent current, and our calculated $R_{th}$ of 6.67kΩ perfectly satisfies the silicon's internal S/H capacitor requirements.

Breadboard Verification: Step-by-Step Testing

Do not trust the color bands on your resistors. Tolerance stacking can easily push a 5% divider out of the safe 3.3V window. Follow this exact verification sequence on your bench before connecting the microcontroller.

  1. De-energize the circuit: Disconnect the USB cable from the Arduino Nano or breadboard power rail.
  2. Verify individual components: Set your multimeter to resistance mode. Measure R1 and R2 individually off the breadboard. Record the exact values (e.g., R1 = 9.98kΩ, R2 = 20.15kΩ). Recalculate your expected $V_{th}$ using these real numbers.
  3. Check for shorts: With resistors installed but power off, measure resistance between Node B ($V_{out}$) and Node C (GND). It should read exactly the value of R2. If it reads near 0Ω, you have a breadboard short or a miswired ground.
  4. Measure Open-Circuit $V_{th}$: Apply 5V power. Set the multimeter to DC Voltage. Probe Node B relative to Node C. You should read your calculated $V_{th}$ (e.g., 3.34V). If it reads 5V, R2 is open or unseated. If it reads 0V, R1 is open or unseated.
  5. Simulate the Load: To prove the Thevenin model works, place a 10kΩ test resistor across Node B and Node C. This simulates a heavy load. Measure the voltage at Node B again. It should drop to exactly $V_{loaded} = 3.34V × [10k / (6.67k + 10k)] = 2.00V$. If the voltage drops to 0V or stays at 3.34V, your power supply is current-limiting or your meter is misconfigured.
  6. Final Hookup: Remove the 10kΩ test resistor. Connect Node B to the microcontroller's ADC pin (e.g., A0). Upload a basic analogRead() sketch and verify the serial monitor reports a value near 682 (which corresponds to 3.33V on a 5V/10-bit scale).

Final Component Selection & Default Recommendation

Stop guessing with 5% carbon composition resistors. For any voltage divider feeding an ADC or logic threshold, thermal noise and tolerance drift will ruin your data. You must use 1% metal film resistors.

Default Pick: Use the Vishay PR02 series (1/2W, 1% tolerance, ±100ppm/°C temperature coefficient). They are widely available, mechanically robust for breadboarding, and cost roughly $0.10 each in small batches.

  • R1 (10kΩ): Vishay Part # PR02000201002JR500
  • R2 (20kΩ): Vishay Part # PR02000202002JR500

By standardizing on these exact values and part numbers, you guarantee a Thevenin resistance of 6.67kΩ and a highly stable 3.33V reference that will not drift as the ambient temperature in your enclosure rises. Build it, test the open-circuit voltage, and your ADC readings will be accurate from the first boot.