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

How to Use ADS1115: Examples, Pinouts, and Specs

Image of ADS1115
Cirkit Designer LogoDesign with ADS1115 in Cirkit Designer

Introduction

The ADS1115 is a high-precision, 16-bit analog-to-digital converter (ADC) with an I2C interface. It is capable of measuring up to four single-ended inputs or two differential inputs, making it ideal for applications requiring accurate sensor data acquisition. The device features a programmable gain amplifier (PGA) for handling a wide range of input voltages and operates with low power consumption, making it suitable for battery-powered devices.

Explore Projects Built with ADS1115

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Due and ADS1115 Battery-Powered Differential Voltage Sensor
Image of op_amp: A project utilizing ADS1115 in a practical application
This circuit features an Arduino Due microcontroller interfaced with two ADS1115 ADC modules for differential voltage measurement. It includes a 9V battery for powering an LM324 operational amplifier, which processes input signals from multiple resistors and 21700 LI batteries. The Arduino Due reads the processed signals and communicates the data via I2C.
Cirkit Designer LogoOpen Project in Cirkit Designer
ADS1115 and ACS712 Current Sensor-Based Voltage and Current Monitoring System
Image of Solar_Monitoring_Code: A project utilizing ADS1115 in a practical application
This circuit includes an ADS1115 analog-to-digital converter connected to two voltage divider networks formed by resistors. The voltage dividers are used to scale down the input voltages before they are read by the ADS1115 on channels A0 and A1.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO with ADS1115 ADC and ACS712 Current Sensor Monitoring System
Image of ADC: A project utilizing ADS1115 in a practical application
This circuit features an Arduino UNO microcontroller interfaced with an ADS1115 ADC for precise analog-to-digital conversion, an ACS712 current sensor for current measurement, and a potentiometer for adjustable input. It includes toggle switches and a push button for user input, with the Arduino programmed to read and process sensor data, switch states, and potentiometer values, outputting the information via serial communication for monitoring or further processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi 4B-based Current Monitoring System with OLED Display
Image of TASK – 2: A project utilizing ADS1115 in a practical application
This circuit features a Raspberry Pi 4B as the central processing unit, interfaced with an ADS1115 analog-to-digital converter (ADC) and a 0.96" OLED display via I2C communication (using GPIO2 and GPIO3 for SDA and SCL, respectively). The ADS1115 is connected to two current sensors: a generic current sensor and an ACS712, to measure current and report values to the Raspberry Pi, which can display the data on the OLED. Power is distributed from the Raspberry Pi's 5V pin to the other components, and all components share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ADS1115

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 op_amp: A project utilizing ADS1115 in a practical application
Arduino Due and ADS1115 Battery-Powered Differential Voltage Sensor
This circuit features an Arduino Due microcontroller interfaced with two ADS1115 ADC modules for differential voltage measurement. It includes a 9V battery for powering an LM324 operational amplifier, which processes input signals from multiple resistors and 21700 LI batteries. The Arduino Due reads the processed signals and communicates the data via I2C.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Solar_Monitoring_Code: A project utilizing ADS1115 in a practical application
ADS1115 and ACS712 Current Sensor-Based Voltage and Current Monitoring System
This circuit includes an ADS1115 analog-to-digital converter connected to two voltage divider networks formed by resistors. The voltage dividers are used to scale down the input voltages before they are read by the ADS1115 on channels A0 and A1.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ADC: A project utilizing ADS1115 in a practical application
Arduino UNO with ADS1115 ADC and ACS712 Current Sensor Monitoring System
This circuit features an Arduino UNO microcontroller interfaced with an ADS1115 ADC for precise analog-to-digital conversion, an ACS712 current sensor for current measurement, and a potentiometer for adjustable input. It includes toggle switches and a push button for user input, with the Arduino programmed to read and process sensor data, switch states, and potentiometer values, outputting the information via serial communication for monitoring or further processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of TASK – 2: A project utilizing ADS1115 in a practical application
Raspberry Pi 4B-based Current Monitoring System with OLED Display
This circuit features a Raspberry Pi 4B as the central processing unit, interfaced with an ADS1115 analog-to-digital converter (ADC) and a 0.96" OLED display via I2C communication (using GPIO2 and GPIO3 for SDA and SCL, respectively). The ADS1115 is connected to two current sensors: a generic current sensor and an ACS712, to measure current and report values to the Raspberry Pi, which can display the data on the OLED. Power is distributed from the Raspberry Pi's 5V pin to the other components, and all components share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Sensor data acquisition (e.g., temperature, pressure, light sensors)
  • Data logging systems
  • Portable measurement devices
  • Industrial automation
  • IoT devices requiring precise analog measurements

Technical Specifications

The ADS1115 offers a range of features that make it versatile and reliable for various applications. Below are its key technical details:

Key Technical Details

  • Resolution: 16-bit
  • Input Channels: 4 single-ended or 2 differential
  • Input Voltage Range: ±0.256V to ±6.144V (configurable via PGA)
  • Supply Voltage: 2.0V to 5.5V
  • Interface: I2C (up to 3.4 MHz)
  • Data Rate: Programmable, 8 SPS to 860 SPS
  • Operating Temperature: -40°C to +125°C
  • Current Consumption: 150 µA (typical in continuous mode)
  • Address Pins: Configurable I2C address (4 possible addresses)

Pin Configuration

The ADS1115 comes in an 8-pin package. Below is the pinout and description:

Pin Name Type Description
1 VDD Power Power supply input (2.0V to 5.5V).
2 GND Ground Ground reference for the device.
3 SCL Input I2C clock line.
4 SDA Input/Output I2C data line.
5 ALERT/RDY Output Configurable as an alert pin or data-ready signal.
6 A0 Input Address pin 0 for I2C address configuration.
7 A1 Input Address pin 1 for I2C address configuration.
8 AIN0-AIN3 Analog Input Analog input channels for single-ended or differential measurements.

Usage Instructions

The ADS1115 is straightforward to use in a circuit, especially with microcontrollers like the Arduino UNO. Below are the steps and considerations for using the ADS1115:

Connecting the ADS1115

  1. Power Supply: Connect the VDD pin to a 3.3V or 5V power source, and the GND pin to ground.
  2. I2C Interface: Connect the SCL and SDA pins to the corresponding I2C pins on your microcontroller. Use pull-up resistors (typically 4.7kΩ) on the SCL and SDA lines if not already present.
  3. Analog Inputs: Connect your analog signal(s) to the AIN0-AIN3 pins. For differential measurements, connect the positive signal to AIN0 or AIN2 and the negative signal to AIN1 or AIN3.
  4. Address Configuration: Set the A0 and A1 pins to configure the I2C address (e.g., GND for 0x48, VDD for 0x49, etc.).

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 if initialization fails
  }
  Serial.println("ADS1115 initialized.");
}

void loop() {
  // Read the analog value from channel 0 (single-ended)
  int16_t adcValue = ads.readADC_SingleEnded(0);
  
  // Convert the ADC value to voltage (assuming default gain of ±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, 4); // Print with 4 decimal places
  Serial.println(" V");
  
  delay(1000); // Wait 1 second before the next reading
}

Important Considerations

  • Input Voltage Range: Ensure the input voltage does not exceed the configured PGA range to avoid damage or inaccurate readings.
  • I2C Address: If using multiple ADS1115 devices, configure unique I2C addresses using the A0 and A1 pins.
  • Pull-up Resistors: Verify that the I2C lines have appropriate pull-up resistors to ensure reliable communication.
  • Data Rate: Adjust the data rate based on your application's speed and noise requirements.

Troubleshooting and FAQs

Common Issues

  1. No I2C Communication:

    • Cause: Incorrect wiring or missing pull-up resistors.
    • Solution: Verify the SCL and SDA connections and ensure pull-up resistors are present.
  2. Incorrect Readings:

    • Cause: Input voltage exceeds the configured PGA range.
    • Solution: Check the input voltage and adjust the PGA settings accordingly.
  3. Device Not Detected:

    • Cause: Incorrect I2C address or address pin configuration.
    • Solution: Verify the A0 and A1 pin settings and ensure the correct address is used in the code.
  4. Fluctuating Readings:

    • Cause: Noise in the input signal or insufficient decoupling.
    • Solution: Add a decoupling capacitor near the input pins and ensure proper grounding.

FAQs

Q1: Can the ADS1115 measure negative voltages?
A1: Yes, the ADS1115 can measure negative voltages in differential mode, provided the voltage stays within the configured PGA range.

Q2: What is the maximum sampling rate of the ADS1115?
A2: The maximum sampling rate is 860 samples per second (SPS), configurable via the data rate settings.

Q3: Can I use the ADS1115 with a 3.3V microcontroller?
A3: Yes, the ADS1115 is compatible with 3.3V systems. Ensure the VDD pin is connected to 3.3V, and the I2C lines are properly level-shifted if necessary.

Q4: How do I connect multiple ADS1115 devices to the same I2C bus?
A4: Configure each device with a unique I2C address by setting the A0 and A1 pins to different combinations of GND and VDD.

By following this documentation, you can effectively integrate the ADS1115 into your projects for precise analog-to-digital conversion.