Voltage Divider Calculator (Loading, Power, ADC & Logic Level Use Cases)
Use this divider tool as a calculator and a design checklist: verify loading, resistor power, and signal integrity when you scale voltages for ADCs, GPIOs, UART, or other digital inputs.
Inputs
Enter Vin/R1/R2. Optional: add Rload to simulate real input loading.
Quick presets (common engineering tasks)
Presets also configure a reasonable Rload when relevant (ADC / MCU input).
Loading check
Models the load as R2 || Rload. Useful for ADC inputs and digital pins.
Example: ADC input impedance or GPIO input equivalent. If unknown, start with 100kΩ–1MΩ.
Quick picks
What this tool checks (in practice)
- Ideal divider: Vout = Vin·R2/(R1+R2)
- Current draw: I = Vin/(R1+R2)
- Resistor power: P1 = I²·R1, P2 = I²·R2
- Loaded Vout (optional): replace R2 by (R2 || Rload)
Results
ideal + optional loadWith load
R2 || Rload“Loading ratio” is a quick sanity metric (higher is better). Rule of thumb: aim for Rload ≥ 10×R2.
Diagram
live labelsThevenin resistance is useful to reason about RC filtering and edge-speed (Rth = R1 || R2).
Practical use cases
Signal level scaling
Scale a higher voltage down to protect an input: GPIO, ADC, comparators, analog sense pins.
- Check loading (Rload)
- Check resistor power
- Consider RC filtering
ADC front-end
Sense battery/rail voltages, current shunts, or noisy signals with optional filtering and impedance control.
- Thevenin resistance matters
- Sampling capacitor settling
- Use RC + clamp if needed
Quick logic downshift
Often OK for one-way digital inputs like UART RX. Not a general translator.
- UART: usually OK 5→3.3
- I²C: usually not OK
- SPI: depends on speed/load
UART level shifting with a divider
A resistor divider is a common “quick fix” to feed a 3.3V UART RX from a 5V UART TX. It’s typically safe because UART inputs are high impedance.
When it works
- • Unidirectional path (5V TX → 3.3V RX).
- • Moderate baud rates and short wires.
- • Receiver input has decent margin (3.3V logic thresholds).
Where it breaks
- • Very fast edges / high baud + large input capacitance.
- • Noisy environments / long cables.
- • Need for bidirectional comms on the same line (not UART anyway).
Choosing R values
- • Keep Rth (R1||R2) low enough so RC edge doesn’t smear bits.
- • Don’t go too low: avoid wasting current and overloading the TX driver.
- • Rule-of-thumb:
R1+R2from ~5k to ~200k depending on speed and environment.
If you need more details on UART specifically, check out our comprehensive UART Serial Communication Guide which covers framing, timing, and hardware design in depth.
Why a divider is (usually) wrong for I²C
I²C lines are open-drain and bidirectional. A resistor divider is rarely the correct solution for level shifting this bus.
Why it fails
- • Breaks pull-ups: The divider interacts with pull-up resistors, altering logic levels and rise times.
- • Threshold violations: Can easily violate VOL (Voltage Output Low) or VOH requirements.
- • Blocking bidirectionality: Standard dividers are one-way; I²C needs to send data both ways (ACKs, clock stretching).
The correct approach
For I²C, always use a dedicated solution designed for bidirectional open-drain signals.
- MOSFET-based I²C level shifter
- Dedicated bidirectional translator chip
ADC front-end tips
For ADCs, the divider interacts with the ADC’s sample-and-hold capacitor. The key concept is the divider’s
Thevenin resistance Rth = R1 || R2.
What to verify
- Acquisition time: ensure the input settles within your error budget.
- Noise: high impedance increases susceptibility; add RC if needed.
- Protection: series resistor + clamp diode for harsh rails.
Common pattern
- Divider to scale voltage
- Small series resistor (optional)
- Capacitor to ground near ADC pin (anti-alias + charge bucket)
This calculator gives you current, dissipation, and loading effect. For ADC settling, you can use Rth as the source resistance in your RC time constant estimate.
Sizing rules (fast decisions)
| Goal | What to favor | Typical range | Gotchas |
|---|---|---|---|
| Low power | High R total | 100k–1M | More noise, slower edges, more ADC settling issues |
| Fast digital input | Lower Rth | 5k–100k | Don’t overload driver; watch power if Vin high |
| ADC accuracy | Controlled impedance + RC | Rth < 10k–50k | Validate acquisition time, source impedance spec |
| Harsh environments | Protection | Depends | Add series R, TVS/clamps, filtering, layout discipline |
These are pragmatic heuristics. Always validate against your receiver thresholds, timing, and datasheet constraints.
Share & export
Copy a permalink, export Markdown, or download CSV.
Works offline. Nothing is sent anywhere.
FAQ
Can I use a voltage divider to level shift UART TX?
Often yes for 5V → 3.3V on UART TX into a high-impedance RX input. It’s unidirectional and the edge rate is slowed by input capacitance. For high baud or noisy environments, prefer a buffer/translator.
Can I use a voltage divider for I²C?
Usually no. I²C is bidirectional open-drain; a divider breaks logic levels and rise-time behavior. Use a MOSFET I²C level shifter or a dedicated bidirectional translator.
What is the loading effect and how do I check it?
A load on Vout appears in parallel with R2 and reduces Vout. A quick rule: Rload ≥ 10×R2. Enable Rload in this tool to simulate the shift.
How do I pick R1/R2 for an ADC input?
Pick values that keep divider impedance low enough vs ADC sample/hold and noise, but high enough to minimize current. Add an RC filter if needed and verify ADC acquisition time.
Is a divider a replacement for a regulator?
No. A divider is not regulated and sags under load. Use a regulator (LDO/buck) to power circuits.