← All parts

ADS1015 12-bit ADC

ADS1015

Texas Instrumentsic data converter

The ADS1015 is an ultra-small, low-power, 12-bit analog-to-digital converter with an I2C interface. It includes a programmable gain amplifier, an internal reference and oscillator, a multiplexer for four single-ended or two differential inputs, and a digital comparator.

In stock

Specifications

12
Resolution
12 Bits
Operating Voltage
2.0 to 5.5 V
Supply Current
150 µA
Max Sample Rate
3300 SPS
Min Sample Rate
128 SPS
Interface
I2C
Operating Temperature Range
-40 to +125 °C
Input Channels
4 single-ended or 2 differential
Package
X2QFN-10, SOT-10, VSSOP-10
Full Scale Input Voltage Range
±0.256 to ±6.144 V
Programmable Gain Amplifier
Yes
Comparator
Yes

Pinout

10
PinNameFunctionsNotes
1ADDR
GPIO
I2C target address select
2ALERT/RDY
GPIO
Comparator output or conversion ready. Open-drain output.
3GND
GND
Ground
4AIN0
ADC
Analog input 0
5AIN1
ADC
Analog input 1
6AIN2
ADC
Analog input 2
7AIN3
ADC
Analog input 3
8VDD
POWER
Power supply
9SDA
I2C
Serial data input and output
10SCL
I2C
Serial clock input

Interactive pinout

Highlight:
ADS1015

Click a pin to copy its name · tap a tag above to spotlight a bus.

Starter code

Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.

Arduino (C++)

Arduino library: Adafruit ADS1X15

arduino
// ADS1015 12-bit 4-channel ADC (I2C) — community starter example
#include <Adafruit_ADS1X15.h>

Adafruit_ADS1015 ads;

void setup() {
  Serial.begin(115200);
  if (!ads.begin()) { Serial.println("ADS1015 not found"); while (1) delay(10); }
}

void loop() {
  int16_t raw = ads.readADC_SingleEnded(0);
  Serial.print("A0="); Serial.print(raw);
  Serial.print("  V="); Serial.println(ads.computeVolts(raw), 4);
  delay(500);
}

MicroPython

MicroPython library: ads1x15 (robert-hh/ads1x15)

python
# ADS1015 (ESP32) — community starter example
# lib: robert-hh/ads1x15 (ads1x15.py; ADS1015 = 12-bit)
from machine import Pin, I2C
from ads1x15 import ADS1015
import time

i2c = I2C(0, scl=Pin(22), sda=Pin(21))
adc = ADS1015(i2c, address=0x48, gain=1)

while True:
    print(adc.read(0))
    time.sleep_ms(500)

Wiring

PinArduino Uno R3ESP32 DevKitC (WROOM-32)Notes
VDD+5V3V32.0-5.5 V
GNDGNDGND
SCLA5/SCLGPIO22I2C clock
SDAA4/SDAGPIO21I2C data
AIN0..AIN3--Analog inputs (0..VDD)

Typical uses

  • Fast 12-bit analog inputs over I2C
  • Adding ADC channels with a programmable-gain front end

Related parts

6