Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit ADS1115 16-Bit ADC: Examples, Pinouts, and Specs

Image of Adafruit ADS1115 16-Bit ADC
Cirkit Designer LogoDesign with Adafruit ADS1115 16-Bit ADC in Cirkit Designer

Introduction

The Adafruit ADS1115 (Part ID: 1085) is a high-precision analog-to-digital converter (ADC) designed to provide 16-bit resolution for accurate measurement of analog signals. It features four single-ended or two differential input channels, making it ideal for interfacing with sensors, potentiometers, and other analog devices. The ADS1115 communicates via the I²C protocol, ensuring compatibility with a wide range of microcontrollers, including Arduino and Raspberry Pi.

Explore Projects Built with Adafruit ADS1115 16-Bit ADC

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Raspberry Pi 4B-Based Current Monitoring System with I2C OLED Display
Image of Virtual Energy Monitoring Circuit: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
This circuit features a Raspberry Pi 4B as the central processing unit, interfaced with an Adafruit ADS1115 16-bit I2C ADC for analog-to-digital conversion and a 0.96" OLED display for visual output. The ADS1115 is connected to a current sensor for measuring electrical current, with the sensor's output and burden pins connected to the ADC's analog input channels. The Raspberry Pi communicates with both the ADC and the OLED display over the I2C bus, using its GPIO2 and GPIO3 pins for data (SDA) and clock (SCL) lines, respectively.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi 4B with I2C Current Sensing and OLED Display
Image of iot task 2: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
This circuit features a Raspberry Pi 4B as the central processing unit, interfaced with an Adafruit ADS1115 16-bit I2C ADC for analog-to-digital conversion and a 0.96" OLED display for visual output. The ADC is connected to a current sensor for measuring electrical current, with the sensor's output connected to the ADC's AIN0 pin and the burden resistor connected to AIN1. The Raspberry Pi communicates with both the ADC and the OLED display over the I2C bus, using GPIO2 (SDA) and GPIO3 (SCL) for data exchange.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi 4B with ADS1115 ADC and OLED Display for Current and Voltage Monitoring
Image of Task2-Virtual_Energy_Monitoring_System: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
This circuit features a Raspberry Pi 4B as the central processing unit, interfacing with an Adafruit ADS1115 16-bit ADC for analog-to-digital conversion of signals from a current sensor and a ZMPT101B voltage sensor. The Raspberry Pi also communicates with a 0.96" OLED display over I2C for data visualization. The circuit is designed to monitor and display electrical parameters such as current and voltage.
Cirkit Designer LogoOpen Project in Cirkit Designer
Xiao ESP32 C3 and ADS1115-Based Light Intensity Data Logger
Image of Thesis Project: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
This circuit features a Xiao ESP32 C3 microcontroller interfaced with an Adafruit ADS1115 16-bit ADC via I2C for reading analog signals from a phototransistor. The phototransistor's output is conditioned by a resistor and fed into the ADC, which converts the light intensity into a digital signal. The ESP32 C3 reads the ADC values and outputs the readings to the serial monitor, allowing for light intensity monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit ADS1115 16-Bit ADC

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Virtual Energy Monitoring Circuit: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
Raspberry Pi 4B-Based Current Monitoring System with I2C OLED Display
This circuit features a Raspberry Pi 4B as the central processing unit, interfaced with an Adafruit ADS1115 16-bit I2C ADC for analog-to-digital conversion and a 0.96" OLED display for visual output. The ADS1115 is connected to a current sensor for measuring electrical current, with the sensor's output and burden pins connected to the ADC's analog input channels. The Raspberry Pi communicates with both the ADC and the OLED display over the I2C bus, using its GPIO2 and GPIO3 pins for data (SDA) and clock (SCL) lines, respectively.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of iot task 2: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
Raspberry Pi 4B with I2C Current Sensing and OLED Display
This circuit features a Raspberry Pi 4B as the central processing unit, interfaced with an Adafruit ADS1115 16-bit I2C ADC for analog-to-digital conversion and a 0.96" OLED display for visual output. The ADC is connected to a current sensor for measuring electrical current, with the sensor's output connected to the ADC's AIN0 pin and the burden resistor connected to AIN1. The Raspberry Pi communicates with both the ADC and the OLED display over the I2C bus, using GPIO2 (SDA) and GPIO3 (SCL) for data exchange.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Task2-Virtual_Energy_Monitoring_System: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
Raspberry Pi 4B with ADS1115 ADC and OLED Display for Current and Voltage Monitoring
This circuit features a Raspberry Pi 4B as the central processing unit, interfacing with an Adafruit ADS1115 16-bit ADC for analog-to-digital conversion of signals from a current sensor and a ZMPT101B voltage sensor. The Raspberry Pi also communicates with a 0.96" OLED display over I2C for data visualization. The circuit is designed to monitor and display electrical parameters such as current and voltage.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Thesis Project: A project utilizing Adafruit ADS1115 16-Bit ADC in a practical application
Xiao ESP32 C3 and ADS1115-Based Light Intensity Data Logger
This circuit features a Xiao ESP32 C3 microcontroller interfaced with an Adafruit ADS1115 16-bit ADC via I2C for reading analog signals from a phototransistor. The phototransistor's output is conditioned by a resistor and fed into the ADC, which converts the light intensity into a digital signal. The ESP32 C3 reads the ADC values and outputs the readings to the serial monitor, allowing for light intensity monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Sensor data acquisition (e.g., temperature, pressure, light sensors)
  • Precision voltage measurement
  • Battery monitoring
  • Data logging systems
  • Industrial control systems

Technical Specifications

The following table outlines the key technical details of the Adafruit ADS1115:

Parameter Value
Resolution 16-bit
Input Channels 4 single-ended or 2 differential
Input Voltage Range 0 to VDD (single-ended), ±VDD (differential)
Programmable Gain Amplifier 6 ranges (±0.256V to ±6.144V)
Supply Voltage (VDD) 2.0V to 5.5V
Communication Interface I²C (7-bit address: 0x48 by default)
Data Rate Programmable: 8 SPS to 860 SPS
Operating Temperature -40°C to +125°C
Current Consumption 150 µA (typical)

Pin Configuration

The ADS1115 has six pins, as described in the table below:

Pin Name Description
1 VDD Power supply input (2.0V to 5.5V).
2 GND Ground connection.
3 SCL I²C clock line. Connect to the microcontroller's SCL pin.
4 SDA I²C data line. Connect to the microcontroller's SDA pin.
5 ADDR Address pin. Sets the I²C address (0x48, 0x49, 0x4A, or 0x4B).
6 ALERT/RDY Configurable as an alert pin or ready signal output.

Usage Instructions

Connecting the ADS1115 to a Microcontroller

  1. Power Supply: Connect the VDD pin to a 3.3V or 5V power source, and the GND pin to ground.
  2. I²C Communication: Connect the SCL and SDA pins to the corresponding I²C pins on your microcontroller. Use pull-up resistors (typically 4.7kΩ) on the SCL and SDA lines if not already present.
  3. Address Configuration: Set the I²C address using the ADDR pin:
    • Connect to GND for 0x48 (default).
    • Connect to VDD for 0x49.
    • Connect to SDA for 0x4A.
    • Connect to SCL for 0x4B.
  4. Optional Alert Pin: If needed, connect the ALERT/RDY pin to a GPIO pin on your microcontroller for interrupt-based alerts.

Example Arduino Code

Below is an example of how to use the ADS1115 with an Arduino UNO to read a single-ended input:

#include <Wire.h>
#include <Adafruit_ADS1X15.h>

// Create an ADS1115 object
Adafruit_ADS1115 ads; 

void setup() {
  Serial.begin(9600);
  // Initialize the ADS1115
  if (!ads.begin()) {
    Serial.println("Failed to initialize ADS1115!");
    while (1); // Halt execution if initialization fails
  }
  Serial.println("ADS1115 initialized.");
}

void loop() {
  // Read a single-ended input (channel 0)
  int16_t adcValue = ads.readADC_SingleEnded(0);
  
  // Convert the ADC value to voltage (assuming default gain ±6.144V)
  float voltage = adcValue * 0.1875 / 1000; // 0.1875 mV per bit
  
  // Print the voltage to the Serial Monitor
  Serial.print("Voltage: ");
  Serial.print(voltage);
  Serial.println(" V");
  
  delay(1000); // Wait 1 second before the next reading
}

Best Practices

  • Use decoupling capacitors (e.g., 0.1µF) near the VDD pin to reduce noise.
  • Ensure proper grounding to avoid measurement errors.
  • Select the appropriate gain setting for your input voltage range to maximize resolution.
  • Keep I²C lines as short as possible to minimize signal degradation.

Troubleshooting and FAQs

Common Issues

  1. ADS1115 Not Detected on I²C Bus

    • Solution: Verify the wiring of the SCL and SDA pins. Ensure pull-up resistors are present.
    • Tip: Use an I²C scanner sketch to confirm the device address.
  2. Incorrect Voltage Readings

    • Solution: Check the gain setting and ensure the input voltage is within the selected range.
    • Tip: Verify that the input signal is properly connected and not floating.
  3. No Output on Serial Monitor

    • Solution: Ensure the Serial Monitor baud rate matches the Serial.begin() setting in the code.
    • Tip: Check for errors in the code or wiring.

FAQs

Q: Can the ADS1115 measure negative voltages?
A: Yes, but only in differential mode. The voltage difference between the two inputs must remain within the selected gain range.

Q: What is the maximum sampling rate of the ADS1115?
A: The maximum sampling rate is 860 samples per second (SPS) when configured for the highest data rate.

Q: Can I use the ADS1115 with a 3.3V microcontroller?
A: Yes, the ADS1115 is compatible with both 3.3V and 5V systems.

Q: How do I use the ALERT/RDY pin?
A: The ALERT/RDY pin can be configured to trigger an interrupt when a conversion is complete or when a threshold is exceeded. Refer to the ADS1115 datasheet for configuration details.