

The Adafruit ADS122C04 (Part ID: 6432) is a high-resolution analog-to-digital converter (ADC) designed for precision measurement applications. With 24-bit resolution and a sampling rate of up to 2,000 samples per second (2 kSPS), this ADC is ideal for applications requiring accurate and reliable analog signal conversion. It features four input channels, making it suitable for multi-sensor setups, and is equipped with STEMMA QT / Qwiic connectors for seamless integration into I2C-based systems.








The following table outlines the key technical specifications of the Adafruit ADS122C04:
| Parameter | Value |
|---|---|
| Resolution | 24-bit |
| Sampling Rate | Up to 2,000 samples per second |
| Input Channels | 4 |
| Input Voltage Range | 0 to 5V (single-ended) |
| Interface | I2C |
| Operating Voltage | 3.3V or 5V |
| Current Consumption | ~1.5 mA (typical) |
| Operating Temperature Range | -40°C to +125°C |
| Dimensions | 25mm x 17mm x 4mm |
The Adafruit ADS122C04 features the following pinout:
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power Input | Power supply input (3.3V or 5V). |
| GND | Ground | Ground connection. |
| SDA | I2C Data | Serial data line for I2C communication. |
| SCL | I2C Clock | Serial clock line for I2C communication. |
| AIN0 | Analog Input | Analog input channel 0. |
| AIN1 | Analog Input | Analog input channel 1. |
| AIN2 | Analog Input | Analog input channel 2. |
| AIN3 | Analog Input | Analog input channel 3. |
| STEMMA QT | I2C Connector | STEMMA QT / Qwiic connector for plug-and-play I2C integration. |
Below is an example of how to use the Adafruit ADS122C04 with an Arduino UNO:
#include <Wire.h>
#include <Adafruit_ADS1X15.h>
// Create an instance of the ADS122C04 ADC
Adafruit_ADS1115 ads; // Note: ADS1115 library is compatible with ADS122C04
void setup() {
Serial.begin(9600);
while (!Serial); // Wait for Serial Monitor to open
// Initialize I2C communication
if (!ads.begin()) {
Serial.println("Failed to initialize ADS122C04. Check connections!");
while (1);
}
Serial.println("ADS122C04 initialized successfully!");
// Set gain to 1 (default) for full-scale input range of ±4.096V
ads.setGain(GAIN_ONE);
}
void loop() {
// Read analog value from channel 0
int16_t adcValue = ads.readADC_SingleEnded(0);
// Convert ADC value to voltage
float voltage = adcValue * 0.125; // 0.125mV per bit for GAIN_ONE
// Print the voltage to Serial Monitor
Serial.print("Channel 0 Voltage: ");
Serial.print(voltage);
Serial.println(" mV");
delay(1000); // Wait 1 second before next reading
}
ADC Not Detected on I2C Bus
Inaccurate Readings
No Output on Serial Monitor
Q: Can I use this ADC with a 3.3V microcontroller?
A: Yes, the ADS122C04 is compatible with both 3.3V and 5V systems.
Q: What is the maximum sampling rate?
A: The ADC supports a maximum sampling rate of 2,000 samples per second (2 kSPS).
Q: Can I use all four channels simultaneously?
A: The ADC can measure one channel at a time. You can switch between channels programmatically using the I2C interface.
Q: Is the ADS122C04 compatible with Raspberry Pi?
A: Yes, the ADC can be used with Raspberry Pi via the I2C interface. Use the STEMMA QT / Qwiic connector for easy integration.
Q: Do I need an external clock for the ADC?
A: No, the ADS122C04 has an internal oscillator and does not require an external clock.