ESP32 and ADS1015 analog-to-digital converter example

The ADS1015 is a precision analog-to-digital converters (ADCs) with 12 bits of resolution offered in an ultra-small, leadless QFN-10 package or an MSOP-10 package. The ADS1015 are designed with precision, power, and ease of implementation in mind. The ADS1015 features an onboard reference and oscillator. Data are transferred via an I2C-compatible serial interface; four I2C slave addresses can be selected. The ADS1015 operate from a single power supply ranging from 2.0V to 5.5V.

The ADS1015-Q1 device can perform conversions at rates up to 3300 samples per second (SPS). An onboard PGA is available that offers input ranges from the supply to as low as ±256 mV, allowing both large and small signals to be measured with high resolution. The ADS1015-Q1 device also features an input multiplexer (MUX) that provides two differential or four single-ended inputs.

The ADS1015-Q1 device operates either in continuous conversion mode or a single-shot mode that automatically powers down after a conversion and greatly reduces current consumption during idle periods




esp32 and ads1015
esp32 and ads1015



In this example you need the Adafruit ADS1015 library from

#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1015 ads;     /* Use thi for the 12-bit version */
void setup(void) 
  Serial.println("Getting single-ended readings from AIN0..3");
void loop(void) 
  int16_t adc0, adc1, adc2, adc3;
  adc0 = ads.readADC_SingleEnded(0);
  adc1 = ads.readADC_SingleEnded(1);
  adc2 = ads.readADC_SingleEnded(2);
  adc3 = ads.readADC_SingleEnded(3);
  Serial.print("AIN0: "); 
  Serial.print("AIN1: "); 
  Serial.print("AIN2: "); 
  Serial.print("AIN3: "); 
  Serial.println(" ");


Open the serial monitor and you should see something like this

AIN0: 1101
AIN1: 0
AIN2: 337
AIN3: 609

AIN0: 1101
AIN1: 245
AIN2: 207
AIN3: 165

AIN0: 1101
AIN1: 229
AIN2: 0
AIN3: 669

AIN0: 1101
AIN1: 262
AIN2: 252
AIN3: 358

AIN0: 1102
AIN1: 293
AIN2: 241
AIN3: 0



Smart Electronics ADS1015 ADC module development board 12 bit precision analog-to-digital converter

Previous articleESP32 and TM1637 7 segment display example
Next articleESP32 and Si7021 temperature sensor example