ESP32 ADC Voltage Measurement: Extending DC Range with Dividers

Added:

ADC Basics
Voltage Divider
Resistor Calibration
Safety & Limits
Conclusion Tips

ADC Basics

0:02
Playing Section
  • 1

    ESP32 ADC measures 0-3.3V using 12-bit resolution.

  • 2

    Basic formula converts raw readings to voltage.

  • 3

    Ideal range is 0-3V for linear accuracy.

Basic DC circuit theory, specifically Ohm's Law and how voltage behaves in series and parallel circuits.
The fundamental formula and operation of a passive resistor voltage divider.
The concept of Analog-to-Digital Conversion (ADC), including resolution (e.g., 12-bit) and reference voltage limits.
Familiarity with the ESP32 hardware specifications, specifically its standard 3.3V operating voltage limit on GPIO pins.
Calibrating the ESP32's ADC to compensate for its inherent non-linearity and hardware-specific offset errors.
Using Operational Amplifiers (Op-Amps) as voltage followers (buffers) to prevent impedance loading effects on high-resistance dividers.
Implementing overvoltage and transient protection circuits, such as clamping diodes, to protect ESP32 pins from voltage spikes.
Applying signal conditioning techniques, including hardware RC low-pass filters and software averaging algorithms, to reduce measurement noise.
Developing practical telemetry projects, such as LiPo battery state-of-charge monitors or solar panel voltage tracking systems.
85K views1.8Klikes8:11@G6EJDOriginal Release: 2019-01-15

The ESP32's built-in ADC has a maximum input range of 3.3V, but this can be extended to measure higher DC voltages by using a voltage divider circuit (Vout = Vin × R2/(R1+R2)), where the divided voltage must not exceed 3.3V. Since standard resistors come in preferred values rather than exact calculated values, software compensation is necessary to improve measurement accuracy. The ADC has an input impedance of approximately 200kΩ, so external circuitry should have lower impedance. Additionally, the ADC exhibits nonlinearity above 3.3V, making it important to keep input voltages within the linear range or apply proper voltage division.