4-CH 16-Bit ADS1115 ADC Module SKU: CQRADC001

From CQRobot-Wiki
Revision as of 07:10, 22 January 2026 by Chenqi (talk | contribs) (Raspberry Pi Example and Test Code)
Jump to: navigation, search
4-CH 16-Bit ADS1115 ADC Module

Description

The 4-channel 16-bit ADS1115 ADC Module is a high-precision analog-to-digital conversion solution based on the TI ADS1115IDGSR chip. This module provides four 16-bit precision analog input channels, supports both 3.3V and 5V operation, and features a hardware-configurable I2C address. The module also integrates an NTC temperature measurement interface, enabling multi-channel signal acquisition and temperature monitoring.


Features

  • High-Precision 16-bit ADC Chip: Based on the TI ADS1115IDGSR chip, it provides four 16-bit resolution analog input channels, enabling high-precision signal acquisition.
  • Flexible Input Modes: Supports 4 single-ended inputs or 2 differential inputs, suitable for various sensor signal measurement scenarios.
  • Configurable I2C Address: Configurable via the ADDR pin, supporting 4 I2C addresses to facilitate multi-device networking.
  • Wide Sampling Rate Range: Supports programmable sampling rates from 8 SPS to 860 SPS, meeting the requirements of different applications.
  • Integrated NTC Temperature Measurement Interface: Onboard MF52AT 10KΩ NTC temperature sensor interface with a B value of 3950K, ideal for temperature monitoring applications.
  • Dual-Voltage Compatible Design: Supports 3.3V/5V dual-voltage operation, with a built-in LP5907 LDO providing stable 3.3V power.
  • Automatic Level Conversion: I2C signals are automatically converted to 3.3V levels when powered by 5V, allowing direct connection to 3.3V microcontrollers.
  • Standard Interface Design: Equipped with HY2.0mm 4P connectors and 2.54mm pin headers for easy connection to various development boards.

Certification Documents

Media:CQRADC001-CE-Certification.rar

Media:CQRADC001-FCC-SDOC-Certification.rar

Pin Description and Size

CQRobot.jpg
CQRADC001-1.jpg
CQRADC001-2.jpg

Specification

CQRADC001-3.jpg
CQRADC001-8.jpg

Working Principle

CQRADC001-4-1.jpg

Power Supply and Sensor Compatibility

This module supports dual-voltage operation at 3.3V/5V. When powered at 3.3V, all I/Os are at 3.3V level; when powered at 5V, the I2C signals are automatically converted to 3.3V for communication with the host, while also allowing measurement of 5V sensor signals. The module includes built-in protection circuits to prevent damage from overvoltage and provides a 3.3V LDO output to power external sensors.

Important: When measuring 5V sensors, the module must be powered at 5V. In this case, the I2C signals remain at 3.3V level and can be directly connected to 3.3V host GPIO. Note that the SDA and SCL pins on this module are limited to 3.3V.


Connections and Examples

  • Configuration Method:

Use a jumper cap to connect the ADDR pin to the corresponding voltage level point. After configuration, restart the power for the changes to take effect.

  • Using an I2C Address Conversion Module for Configuration:

When using an I2C address conversion module, all ADS1115 modules can be set to the same hardware address. Address differentiation is achieved by selecting channels on the conversion module, eliminating the need to modify hardware jumper configurations.

CQRADC001-5.jpg

Arduino Example and Test Code

CQRADC001-72.jpg

#include <Wire.h>
#include <Adafruit_ADS1X15.h>

Adafruit_ADS1115 ads;

void setup() {
  Serial.begin(9600);
  ads.begin(0x48);
  ads.setGain(GAIN_ONE);
}

void loop() {
  int16_t adc = ads.readADC_SingleEnded(0);
  float voltage = adc * 0.125 / 1000.0;
  float ntc_r = (3.3 * 10000.0 / voltage) - 20000.0;
  float temp = 1.0 / (log(ntc_r / 10000.0) / 3950.0 + 1.0 / 298.15) - 273.15;
  
  Serial.print("Temp: ");
  Serial.print(temp, 1);
  Serial.println("C");
  
  delay(1000);
}

Example Results Explanation:

CQRADC001-71.jpg

  • The I2C address is temporarily set to 0x48; you can change this line of code `ads.begin(0x18)` as needed.
  • The input channel is temporarily set to AIN0; you can change this line of code `int16_t adc = ads.readADC_SingleEnded(0);` as needed.
  • If you need to measure a 5V device, please replace the conversion formula with the following:
`float ntc_r = (5.0 * 10000.0 / voltage) - 20000.0;  // Changed to 5V`
`float temp = 1.0 / (log(ntc_r / 10000.0) / 3950.0 + 1.0 / 298.15) - 273.15;`

Raspberry Pi Example and Test Code

CQRADC001-76.jpg

CQRADC001-73.jpg

Raspberry Pi 4B Pinout Diagram

CQRADC001-75.jpg

CQRADC001-77.jpg

  • Create a folder and a .c file, write the code into it, and then you can directly add it to the compressed archive: Media: ADS1115.rar

CQRADC001-78.jpg

gcc -Wall -g -o ADS1115 ADS1115.c -lm

./ADS1115
  • Navigate to the created folder in the terminal, use GCC for cross-compilation, and then run the file.

Used in Conjunction with the TDS Meter Sensor (ASIN: B08KXRHK7H)

CQRADC001-7.jpg

Example Program


Sample Code