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

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

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

Introduction

The Adafruit ADS1115 is a high-precision, 16-bit Analog-to-Digital Converter (ADC) that operates on an I2C bus interface. It is designed to accurately convert analog signals to digital form, allowing microcontrollers and other digital systems to process real-world data such as temperature, pressure, or light intensity. The ADS1115 is particularly useful in applications requiring high-resolution measurements, such as data loggers, sensors, and precision instrumentation.

Explore Projects Built with Adafruit ADS1115 16Bit I2C 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 16Bit I2C 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 16Bit I2C 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
Wi-Fi Enabled Sensor Hub with ESP8266 and ADS1115 ADC
Image of Node Mcu Gas Sensor: A project utilizing Adafruit ADS1115 16Bit I2C ADC in a practical application
This circuit features two ESP8266 NodeMCU microcontrollers, each interfaced with a Gravity I2C ADS1115 16-Bit ADC module for analog-to-digital conversion. The microcontrollers communicate with the ADC modules via I2C protocol, with one set of connections for each microcontroller-ADC pair, and are powered through a common 3.3V and ground connection.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO and Adafruit ADS1015 Based Analog to Digital Conversion
Image of relan: A project utilizing Adafruit ADS1115 16Bit I2C ADC in a practical application
This circuit is designed to measure analog voltage levels using a potentiometer and convert them to digital values with an Adafruit ADS1015 12Bit I2C ADC. The Arduino UNO serves as the controller, reading the ADC values via I2C communication and outputting the results to the serial monitor. A 9V battery powers the circuit, and a resistor is used to connect the potentiometer's output to the ADC's analog input channel AIN0.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit ADS1115 16Bit I2C 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 16Bit I2C 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 16Bit I2C 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 Node Mcu Gas Sensor: A project utilizing Adafruit ADS1115 16Bit I2C ADC in a practical application
Wi-Fi Enabled Sensor Hub with ESP8266 and ADS1115 ADC
This circuit features two ESP8266 NodeMCU microcontrollers, each interfaced with a Gravity I2C ADS1115 16-Bit ADC module for analog-to-digital conversion. The microcontrollers communicate with the ADC modules via I2C protocol, with one set of connections for each microcontroller-ADC pair, and are powered through a common 3.3V and ground connection.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of relan: A project utilizing Adafruit ADS1115 16Bit I2C ADC in a practical application
Arduino UNO and Adafruit ADS1015 Based Analog to Digital Conversion
This circuit is designed to measure analog voltage levels using a potentiometer and convert them to digital values with an Adafruit ADS1015 12Bit I2C ADC. The Arduino UNO serves as the controller, reading the ADC values via I2C communication and outputting the results to the serial monitor. A 9V battery powers the circuit, and a resistor is used to connect the potentiometer's output to the ADC's analog input channel AIN0.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

Key Features

  • Resolution: 16-bit
  • Sampling Rate: Up to 860 samples per second (SPS)
  • Input Channels: 4 single-ended or 2 differential
  • Programmable Gain Amplifier (PGA): Up to ±6.144V
  • Supply Voltage: 2.0V to 5.5V
  • Interface: I2C
  • I2C Addresses: 0x48 (default), 0x49, 0x4A, 0x4B (selectable with address pin)

Pin Configuration

Pin Number Pin Name Description
1 VDD Power supply (2.0V to 5.5V)
2 GND Ground
3 SCL I2C clock
4 SDA I2C data
5 ADDR Address selection pin
6 ALERT Alert/Ready pin (optional use)
7 A0 Analog input channel 0
8 A1 Analog input channel 1
9 A2 Analog input channel 2
10 A3 Analog input channel 3

Usage Instructions

Connecting to a Circuit

  1. Power Connections: Connect VDD to a 2.0V to 5.5V power supply and GND to the system ground.
  2. I2C Connections: Connect SCL and SDA to the corresponding I2C clock and data lines on your microcontroller. Use pull-up resistors as required by your I2C bus specifications.
  3. Address Selection: Connect the ADDR pin to GND, VDD, SDA, or SCL to select one of the four possible I2C addresses.
  4. Analog Inputs: Connect your analog signal to any of the A0 to A3 pins. For differential measurements, use pairs A0/A1 or A2/A3.

Programming with Arduino

To use the ADS1115 with an Arduino, you can utilize the Adafruit ADS1X15 library. Here's a basic example of how to read a single-ended voltage from channel A0:

#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads;  // Create an instance of the ADS1115

void setup() {
  Serial.begin(9600);
  ads.begin();  // Initialize the ADS1115
}

void loop() {
  int16_t adc0;  // Variable to hold the ADC result

  adc0 = ads.readADC_SingleEnded(0);  // Read from channel 0
  Serial.print("AIN0: "); Serial.println(adc0);
  delay(1000);  // Wait for a second
}

Best Practices

  • Ensure that the input voltage does not exceed the selected full-scale range of the PGA.
  • Use decoupling capacitors close to the power pins to minimize noise.
  • Keep analog signal paths as short as possible to reduce noise pickup.
  • Avoid running analog signal lines parallel to high-current traces to prevent interference.

Troubleshooting and FAQs

Common Issues

  • No response from the device: Check the I2C connections, ensure pull-up resistors are installed, and verify that the correct I2C address is being used.
  • Inaccurate readings: Ensure that the input voltage is within the range set by the PGA. Check for noise in the analog signal and power supply lines.

FAQs

Q: Can the ADS1115 be used with a 3.3V system? A: Yes, the ADS1115 can operate at voltages as low as 2.0V.

Q: How do I change the I2C address of the ADS1115? A: The I2C address can be changed by connecting the ADDR pin to GND, VDD, SDA, or SCL.

Q: What is the maximum voltage that can be measured by the ADS1115? A: The maximum voltage is determined by the PGA setting, which can be up to ±6.144V.

Q: How can I use the ALERT pin? A: The ALERT pin can be configured for various functions such as a conversion ready signal or a threshold alert. Refer to the ADS1115 datasheet for detailed configuration options.

For further assistance, consult the ADS1115 datasheet and the Adafruit ADS1X15 library documentation.