Table of Contents

LamaPLC: Texas Instruments ADCs: Standard multi-channel Analog Converters using I²C or SPI interfaces

Texas Instruments' ADCs are all delta-sigma converters that primarily differ in resolution, interface type, sample rate, and integrated features such as input channels and programmable gain amplifiers (PGAs).

The ADS111x series is a 16-bit, I²C-compatible device, while the ADS12xx series is typically a 24-bit, SPI-compatible device with more advanced features for high-precision applications such as weighing scales and industrial process control.

ADS111x Series (16-bit, I²C)

ADS1118 The Texas Instruments ADS111x series is a set of 16-bit-precision ADCs designed for low-power, space-constrained sensor measurement tasks. Key features include a broad supply-voltage range (2.0V to 5.5V), low current consumption (about 150µA in continuous operation), and built-in components such as a low-drift voltage reference and an oscillator.

ADS111x General Specifications

ModelInterfaceChannels (SE/Diff)PGAComparatorMax Data Rate (SPS)Unique Features
ADS1110I²C1 DiffYes (Gains up to 8)No240Continuously self-calibrating
ADS1112I²C1 SE or DiffYesNo240(Similar to ADS1113/4/5 in core, but specific variant details are sparse)
ADS1113I²C1 SE or DiffNoNo86Basic model, minimal features
ADS1114I²C1 SE or DiffYesYes860Includes PGA and comparator
ADS1115I²C4 SE or 2 DiffYesYe860Input MUX for multiple channels
ADS1118SPI4 SE or 2 DiffYesNo860Integrated temperature sensor
ADS1119I²C4 SE or 2 DiffYes (Gains 1 or 4)No1000Single-cycle settling filter at 20 SPS (for 50/60Hz rej.)

ADS1115

The ADS1115 is a compact, low-power 16-bit ADC made by Texas Instruments. It includes an onboard reference, oscillator, and a programmable gain amplifier (PGA), all accessible via an I²C interface. This design makes it a popular choice for microcontrollers such as Arduino, Raspberry Pi, and ESP32.

Key Features

Electrical Specifications

ADS1115 Pinout

ADS1115 Pinout

Pin NumberPin NamePin TypeDescription
1ADDRDigital InputI²C slave address select pin.
2ALERT/RDYDigital OutputComparator output or conversion ready indicator.
3GNDPowerGround connection.
4AIN0Analog InputAnalog input channel 0.
5AIN1Analog InputAnalog input channel 1.
6AIN2Analog InputAnalog input channel 2.
7AIN3Analog InputAnalog input channel 3.
8VDDPowerPower supply (2.0 V to 5.5 V).
9SDADigital I/OI²C serial data line.
10SCLDigital InputI²C serial clock line.

I²C Address Selection (ADDR Pin)

The ADDR pin allows you to choose between 4 unique I²C addresses by connecting it to different pins on your board:

ADS1118

The ADS1118, developed by Texas Instruments, is a precision, low-power 16-bit ADC that combines a programmable gain amplifier (PGA), a voltage reference, an oscillator, and a high-accuracy temperature sensor in a compact package.

Key Features

Electrical Specifications

ADS1118 Pinout

ADS1118 Pinout

PinNameTypeDescription
1SCLKDigital InputSPI serial clock
2CSDigital InputChip select; active low
3GNDSupplyGround
4AIN0Analog InputAnalog input channel 0
5AIN1Analog InputAnalog input channel 1
6AIN2Analog InputAnalog input channel 2
7AIN3Analog InputAnalog input channel 3
8VDDSupplyPower supply (2V to 5.5V)
9DINDigital InputSPI serial data input (MOSI)
10DOUT/DRDYDigital OutputSPI serial data output / Data-ready (MISO)

Key Pin Notes

Arduino & ADS1118

To interface the ADS1118 16-bit ADC with an Arduino, the most common approach is to use the ADS1118 library by denkitronik.

Wiring Diagram

The ADS1118 communicates via SPI. Connect it to your Arduino as follows:

ADS1118 PinArduino Pin (Uno/Nano)
VCC3.3V or 5V
GNDGND
DIN (MOSI)Pin 11
DOUT (MISO)Pin 12
SCLKPin 13
CSPin 10 (or any digital pin)

Example Arduino Code

This basic example initializes the ADC and reads the voltage from input AIN0 and the internal temperature sensor.

#include <SPI.h>
#include <ADS1118.h>
 
// Define the Chip Select (CS) pin
#define CS_PIN 10
 
ADS1118 ads1118(CS_PIN);
 
void setup() {
  Serial.begin(115200);
 
  // Initialize ADS1118 with default settings
  ads1118.begin(); 
 
  // Optional: Set sampling rate (e.g., 128 SPS)
  ads1118.setSamplingRate(ads1118.RATE_128SPS);
}
 
void loop() {
  // Read voltage from Single-Ended Input 0 (AIN0)
  // Returns value in millivolts (double)
  double voltage = ads1118.getMilliVolts(ads1118.AIN_0);
 
  // Read internal chip temperature
  double temp = ads1118.getTemperature();
 
  Serial.print("Voltage AIN0: ");
  Serial.print(voltage);
  Serial.print(" mV | ");
 
  Serial.print("Internal Temp: ");
  Serial.print(temp);
  Serial.println(" C");
 
  delay(1000); 
}

Key Library Methods

If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.

Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.

2026/02/14 23:38

ADS12xx Series (Generally 24-bit, SPI)

The Texas Instruments ADS12xx series includes high-resolution, 24-bit delta-sigma ADCs designed mainly for precise measurement tasks such as weigh scales, strain gauges, and industrial process control. They come with built-in features such as onboard PGAs, internal references, and temperature sensors.

ADS12xx Series Specifications

ModelResolution (bits)InterfaceMax Data Rate (SPS)Channels (SE/Diff)PGAKey Applications/Features
ADS122024SPI2k4 SE or 2 DiffYes (up to G=128)RTDs, thermocouples, integrated temp sensor, IDACs
ADS123224Pin-driven Serial802 DiffYes (up to G=128)Weigh scales, strain gauges, simple control (no registers)
ADS123424Pin-driven Serial804 DiffYes (up to G=128)Weigh scales, strain gauges, simple control (no registers)
ADS125624 (23 noise-free)SPI30k8 SE or 4 DiffYes (up to G=64)High speed, chopper-stabilized buffer, self/system calibration
ADS126124SPI38.4kMultipleYes (up to G=32)Low-noise, low-drift, IDACs for sensor excitation
ADS126324SPI38.4kMultipleYes (up to G=32)Same as ADS1261, but with an auxiliary 24-bit ADC

Key Takeaways

ADS1220

The ADS1220 is a compact 24-bit ADC developed by Texas Instruments. It includes two programmable current sources, a low-noise programmable gain amplifier (PGA), a voltage reference, and an internal temperature sensor, making it well-suited for precise sensor measurements.

Key Features

Electrical Specifications

ADS1220 Pinout

ADS1220 Pinout The ADS1220 is a 24-bit precision ADC. It uses an SPI-compatible interface and includes specific pins for dual-matched current sources (IDACs) and a low-side power switch.

Key pins include:

For a detailed pinout, please refer to the Olimex ADS1220 datasheet.

Critical hardware notes include

Arduino & ADS1220

To use the ADS1220 with an Arduino, the ADS1220_WE library by Wollewald or the Protocentral ADS1220 library is the most common option. Both are available via the Arduino Library Manager.

Wiring Diagram (Typical)

The ADS1220 uses the SPI protocol. Connect it to your Arduino (e.g., Uno) as follows:

ADS1220 PinArduino Uno PinDescription
VDD5V or 3.3VPower Supply
GNDGNDGround
SCLKD13Serial Clock
DOUT/DRDYD12MISO (Data Out)
DIND11MOSI (Data In)
CSD7 (selectable)Chip Select
DRDYD6 (selectable)Data Ready Indicator

Basic Example Code

This example uses the ADS1220_WE library to perform a simple differential measurement between AIN0 and AIN1.

#include <ADS1220_WE.h>
#include <SPI.h>
 
#define ADS1220_CS_PIN 7
#define ADS1220_DRDY_PIN 6
 
ADS1220_WE ads = ADS1220_WE(ADS1220_CS_PIN, ADS1220_DRDY_PIN);
 
void setup() {
  Serial.begin(9600);
 
  if (!ads.init()) {
    Serial.println("ADS1220 not connected!");
    while (1);
  }
 
  // Set to differential mode: AIN0 vs AIN1
  ads.setCompareChannels(ADS1220_MUX_0_1); 
 
  // Set Gain (1, 2, 4, 8, 16, 32, 64, 128)
  ads.setGain(ADS1220_GAIN_1); 
 
  // Optional: Set Data Rate (e.g., 20, 45, 90, 175, 330, 600, 1000 SPS)
  ads.setDataRate(ADS1220_DR_LVL_0); // 20 SPS (normal mode)
}
 
void loop() {
  // Read voltage in millivolts
  float voltage = ads.getVoltage_mV(); 
 
  Serial.print("Voltage AIN0-AIN1 (mV): ");
  Serial.println(voltage, 4);
 
  // Read internal temperature sensor
  float temp = ads.getTemperature();
  Serial.print("Internal Temp (°C): ");
  Serial.println(temp);
 
  delay(1000);
}
Advanced Usage Notes

I²C topics on lamaPLC

PageDateTags
2026/04/23 21:51, , , , , , ,
2025/09/23 21:25, , , , , ,
2026/04/15 19:34, , , , , , ,
2026/03/22 03:14, , , , , , ,
2026/04/23 21:52, , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/05/12 18:40, , , , , , ,
2026/05/13 00:06, , , , , , ,
2026/04/12 00:34, , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2025/05/31 23:32, , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , ,
2025/11/22 00:07, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2023/07/01 17:29, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , ,
2026/04/23 21:52, , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , ,
2026/04/23 21:51, , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/02/14 18:27, , , , , , , , , ,
2026/04/23 21:52, , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/05/08 00:03, , , , , , , , , , ,
2026/05/15 01:03, , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/07/07 19:15, , , , , , , , , , ,
2026/05/12 16:20, , , , ,
2026/05/12 17:06, , , , , ,
2026/05/12 21:06, , , , , , ,
2026/05/12 21:04, , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/04/15 19:41, , , , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , ,
2026/02/14 23:47, , , ,
2026/05/20 16:41, , , , , , , , , , , , ,
2026/02/14 23:51, , , , , ,
2026/02/14 18:26, , , ,
2026/04/23 21:52, , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , ,
2026/04/23 21:52, , , , , , , ,
2026/05/15 15:17, , , , , , , , , , , , , ,
2026/04/23 21:52, , , , , , , , , , , , , , , , ,
2026/02/14 18:27, , , , , , ,


This page has been accessed for: Today: 8, Until now: 301