

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 ADS1115 features a programmable gain amplifier (PGA), allowing it to handle a wide range of input voltages. Its small size and low power consumption make it suitable for portable and embedded systems.








The ADS1115 is typically available 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. Connect to the I2C master clock. |
| 4 | SDA | Input/Output | I2C data line. Connect to the I2C master data line. |
| 5 | ALERT/RDY | Output | Configurable as an alert pin or ready signal. |
| 6 | A0 | Input | Address pin 0. Used to set the I2C address. |
| 7 | A1 | Input | Address pin 1. Used to set the I2C address. |
| 8 | ADDR | Input | Address selection pin. Determines the I2C address of the device. |
The ADS1115 supports up to four unique I2C addresses, determined by the ADDR pin configuration:
| ADDR Pin Connection | I2C Address |
|---|---|
| GND | 0x48 |
| VDD | 0x49 |
| SDA | 0x4A |
| SCL | 0x4B |
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 serial communication
while (!Serial); // Wait for Serial Monitor to open
// 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 from 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 results
Serial.print("ADC Value: ");
Serial.print(adcValue);
Serial.print(" | Voltage: ");
Serial.print(voltage, 4); // Print voltage with 4 decimal places
Serial.println(" V");
delay(1000); // Wait 1 second before the next reading
}
Adafruit_ADS1X15 library is used for simplicity. Install it via the Arduino Library Manager.No I2C Communication:
Incorrect Voltage Readings:
ADS1115 Not Detected:
By following this documentation, you should be able to successfully integrate and use the ADS1115 in your projects.