亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南

您是否正在开发汽车电子、高精度仪器、电池监测或需要将微弱模拟信号高精度数字化的项目?ADS1115 —— 这款 16 位、低功耗、带可编程增益放大器(PGA)的 I²C 接口 ADC,正是您的理想选择。

本文将从器件架构、关键参数、引脚定义、Arduino 与树莓派接口实战、负电压测量能力等维度全面解析,帮您快速集成高精度采集链路。

ADS1115 是什么?

ADS1115 是 TI 推出的16 位 Δ-Σ 模数转换器,内置基准基准源、振荡器、PGA 与输入多路复用器,通过 I²C 接口(标准/快速/高速模式)与主控通信。单电源 2.0V~5.5V 工作,极低功耗(连续转换模式典型 150 μA),支持单次转换自动休眠模式,极适合电池供电场景。

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南

ADS1115 模块实物

图片来源:Wikimedia Commons

核心工作机制

ADS1115 关键特性一览

引脚配置(模块常见 10Pin 排针)

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南
引脚功能说明
VDD电源正2.0V~5.5V,建议 3.3V/5V
GND电源地系统地
SCLI²C 时钟需外接上拉电阻(4.7kΩ)
SDAI²C 数据需外接上拉电阻(4.7kΩ)
ADDR地址选择接 GND=0x48, VDD=0x49, SDA=0x4A, SCL=0x4B
ALRT报警/就绪可配置为转换就绪或阈值比较输出
A0~A3模拟输入4路单端或2路差分

ADS1115 与 Arduino 接口实战

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南

工程师正在连接 ADS1115 与 Arduino

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南

Arduino 与 ADS1115 接线图

硬件清单

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南 ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南

Arduino Nano

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南

步骤 1:原理图接线

  1. ADS1115 VDD → Arduino 5V (或 3.3V),GND → GND
  2. SCL → A5 (Uno/Nano) / D21 (Mega),SDA → A4 / D20
  3. ADDR → GND(固定地址 0x48,最常用)
  4. 待测信号接 A0~A3(单端接地参考,差分接两通道)

步骤 2:串口打印读取代码(单端模式)

安装库:Arduino IDE → 库管理器搜索 “Adafruit ADS1X15” 安装。

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

Adafruit_ADS1115 ads(0x48);

void setup() {
  Serial.begin(9600);
  ads.setGain(GAIN_ONE);        // ±4.096V, 1 bit = 0.125 mV
  ads.begin();
}

void loop() {
  for (uint8_t i = 0; i < 4; i++) {
    int16_t raw = ads.readADC_SingleEnded(i);
    float voltage = raw * 0.125F / 1000.0F;  // mV → V
    Serial.print("A"); Serial.print(i); Serial.print(": ");
    Serial.print(raw); Serial.print(" (");
    Serial.print(voltage, 3); Serial.println(" V)");
  }
  Serial.println("---");
  delay(1000);
}

打开串口监视器 9600 波特率,即可看到 4 通道实时电压值。

步骤 3:I²C LCD 显示读数

安装 LiquidCrystal_I2C 库,初始化 LCD 地址(常见 0x27/0x3F),在 loop 中将电压字符串写入 LCD。代码结构同上,仅将 Serial.print 替换为 lcd.print 并设置光标位置。

ADS1115 与树莓派接口实战

ADS1115 16位 ADC 模块详解:特性、引脚、Arduino 与树莓派接口指南

ADS1115 与树莓派 I²C 连接

步骤 1:硬件接线

步骤 2:启用 I²C 并安装 Python 库

  1. sudo raspi-config → Interface Options → I2C → Enable → Finish → 重启
  2. 安装依赖:sudo apt update && sudo apt install -y python3-pip python3-smbus i2c-tools
  3. 检测设备:i2cdetect -y 1 应显示 0x48
  4. 安装 Adafruit 库(推荐源码安装获取例程):
    git clone https://github.com/adafruit/Adafruit_Python_ADS1x15.git
    cd Adafruit_Python_ADS1x15
    sudo python3 setup.py install
    

步骤 3:Python 读取示例

import time
import Adafruit_ADS1x15

adc = Adafruit_ADS1x15.ADS1115(address=0x48, busnum=1)
GAIN = 1  # ±4.096V

print("Reading ADS1115 channels 0-3...")
while True:
    for i in range(4):
        raw = adc.read_adc(i, gain=GAIN)
        voltage = raw * 0.125 / 1000.0
        print(f"A{i}: {raw:6d} ({voltage:.3f} V)")
    print("-" * 30)
    time.sleep(1)

步骤 4:从 PyPI 安装(可选)

pip3 install adafruit-ads1x15(注意:PyPI 版不含例程,需另行下载示例代码)。

ADS1115 能测量负电压吗?

能。 ADS1115 采用差分输入架构,单电源供电下仍可测量负向差分电压(AINx - AINy < 0)。输出为有符号 16 位补码,负电压对应负数码值。单端模式下输入钳位在 GND-0.3V,不可直接测负压;需改用差分模式(如 AIN0-AIN1,A0 接信号,A1 接地)测量相对地的负电压。

结语

ADS1115 凭借 16 位高分辨率、可编程 PGA、I²C 易用接口与极低功耗,成为电池监测、传感器信号调理、精密仪器、工业采集的首选 ADC。本文提供了从硬件接线到 Arduino/树莓派软件实战的完整指引。如需更高通道数(ADS1118/ADS1119)、更高速率(ADS1115 860 SPS 上限)或同步采样方案,欢迎咨询我们获取选型建议。

工业技术

  1. Arduino Mega 2560 接 NEO-6M GPS 模块完整教程
  2. Blynk + Arduino 读取 DHT11 温湿度数据教程
  3. 无需编程:用 Arduino 和 Octoblu Tentacle 构建 IoT 设备
  4. ADXL345 三轴加速度计 Arduino 姿态追踪教程
  5. 旋转编码器原理与 Arduino 实战:从基础到步进电机控制
  6. PIR人体红外传感器:工作原理与Arduino集成指南
  7. 使用Arduino和A4988驱动器掌握步进电机控制:分步指南
  8. 工业物联网推动智能仓储趋势落地
  9. 为何重型机械定期维护至关重要
  10. Arduino 入门指南:硬件架构、编程核心与首个 LED 实战
  11. 掌握边缘 AI 推理:获取可落地洞察的实战指南
  12. Eagle vs Altium:PCB设计软件功能深度对比与选型指南