The Gravity: I2C ADS1115 16-Bit ADC Module is a high-precision analog-to-digital converter (ADC) that provides 16-bit resolution over an I2C interface. This module is ideal for microcontrollers that do not have an analog-to-digital converter or when a higher precision ADC is required. Common applications include sensor reading, data logging, and industrial automation.
Explore Projects Built with Gravity: I2C ADS1115 16-Bit ADC Module
Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
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.
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.
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.
This circuit connects a Raspberry Pi 4B to an Adafruit ADS1115 16-bit I2C ADC and a Turbidity Module for water quality measurement. The Raspberry Pi communicates with the ADC over I2C (using GPIO2 for SDA and GPIO3 for SCL), which in turn reads analog signals from the Turbidity Module connected to its AIN0 pin. The circuit is designed to monitor water turbidity, with the Raspberry Pi processing and potentially logging the data from the turbidity sensor.
Analog Input Channels: 4 single-ended or 2 differential inputs
Programmable Gain Amplifier (PGA): Up to ±6.144V
I2C Address: Configurable (Default: 0x48)
Operating Temperature Range: -40°C to +125°C
Pin Configuration and Descriptions
Pin Number
Pin Name
Description
1
VDD
Power supply (2.0V to 5.5V)
2
GND
Ground
3
SCL
I2C clock signal
4
SDA
I2C data signal
5
ADDR
Address selection pin (configures I2C address)
6
ALRT
Alert/RDY 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
Interfacing with a Circuit
Powering the Module: Connect VDD to a 2.0V to 5.5V power supply and GND to the ground.
I2C Communication: Connect SCL and SDA to the I2C clock and data lines of your microcontroller, respectively.
Address Selection: Set the ADDR pin to the appropriate logic level to configure the I2C address if multiple devices are on the same bus.
Analog Inputs: Connect your analog signal to any of the A0-A3 pins. You can use these as single-ended inputs or in pairs for differential measurements.
Important Considerations and Best Practices
Ensure that the power supply voltage is within the specified range to avoid damaging the module.
Use pull-up resistors on the SCL and SDA lines if they are not already present on the microcontroller board.
When using differential inputs, ensure that the signals are within the common-mode range of the ADS1115.
Avoid placing the module in environments with high electrical noise to prevent inaccurate readings.
Example Code for Arduino UNO
#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 = ads.readADC_SingleEnded(0); // Read from channel 0
Serial.print("AIN0: "); Serial.println(adc0);
delay(1000);
}
Troubleshooting and FAQs
Common Issues
No Data on I2C: Check connections and ensure pull-up resistors are installed. Use an I2C scanner sketch to verify the address.
Inaccurate Readings: Ensure that the input voltage does not exceed the reference voltage set by the PGA.
Noisy Signal: Use proper grounding and shielding techniques to minimize noise.
FAQs
Q: Can I use this module with a 3.3V system?
A: Yes, the ADS1115 can operate at 3.3V.
Q: How do I change the I2C address?
A: Connect the ADDR pin to GND, VDD, SDA, or SCL to set the address to one of four possible values.
Q: What is the maximum voltage that can be measured?
A: The maximum voltage is determined by the PGA setting, which can be up to ±6.144V.
Q: Can the ADS1115 be used with Raspberry Pi?
A: Yes, it can be interfaced with a Raspberry Pi using the I2C protocol.
Q: How do I use the ALRT/RDY pin?
A: This pin can be used as an alert or a conversion ready signal. Consult the ADS1115 datasheet for detailed configuration instructions.