ADS1115 16-bit ADC with ESP32

Supply 3.3-5 V Bus I2C I2C address 0x48 / 0x49 / 0x4A / 0x4B Measures voltage
VDDGNDSCLSDAADDRALRTA0A1A2A3

Pins and ESP32 wiring

PinRoleESP32 pinNotes
VDDPower3V3
GNDGroundGND
SCLI2C clock (SCL)D22
SDAI2C data (SDA)D21
ADDRNot wired to the ESP32—Address select: GND 0x48, VDD 0x49, SDA 0x4A, SCL 0x4B
ALRTInterruptD35Alert / ready output, optional
A0Not wired to the ESP32—Analog input. Never above VDD
A1Not wired to the ESP32—Analog input
A2Not wired to the ESP32—Analog input
A3Not wired to the ESP32—Analog input

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

Starter code (Arduino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);  // SDA = GPIO 21, SCL = GPIO 22
  Wire.beginTransmission(0x48);
  bool found = Wire.endTransmission() == 0;
  Serial.println(found ? "ADS1115 16-bit ADC found at 0x48" : "Not found: check power, GND and SDA/SCL");
}

void loop() {}

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.