当前位置: 首页 > news >正文

ADC 模块 PCB 设计

ADC 模块 PCB 设计

本文介绍了基于 ADS1115 芯片的 ADC 模数转换模块的 PCB 设计,包括主控参数、资源特点、原理图、工程测试等。

介绍

ADS1115 是由德州仪器制造的 16 位模拟转数字(ADC)转换器集成电路。

  • IC 可通过使用 I2C 协议轻松与微控制器/微处理器接口传输数据和命令。
  • 集成电路支持四个单端输入和两个差分输入。
  • 差分输入有助于减少模拟读数中的噪声。
  • ADC 支持广泛的电源电压范围,且电流消耗极低。

特点

  • ADC输入范围:±256 mV至±6.144 V
  • 供电电压范围:2.0 V至5.5 V
  • 电流消耗:连续转换模式下150微安
  • 可编程数据速率:每秒8采样(SPS)至860采样率
  • 内置可编程增益放大器(PGA)和数字比较器
  • 4个复用输入
  • 可选择单次或连续转换模式

系统框图

ADS1115的功能框图展示了IC不同部件如何协同工作以提供16位数字数据。ADS1115包括:

  • 一个德尔塔-西格玛 ADC
  • 可编程增益放大器(PGA)
  • 内部电压参考
  • 用于同步的内部振荡器
  • 用于通信的I2C接口
  • 内置比较器可用于过压或低压检测。

ADS1115的输入会通过输入复用器(MUX)复用,然后再送入PGA。该设备可以测量四个单端输入或两个差分输入。在测量单端输入时,ADC的负输入通过多路复用器内的开关内部连接到GND。

差分输入对为:

  • AIN0 和 AIN1
  • AIN0和AIN3
  • AIN1和AIN3
  • AIN2 和 AIN3

详见:ADS1115多路模数转换器 .

地址

I2C 设备拥有唯一的地址。

  • MCU 可以使用相同的 I2C 总线与不同地址的设备通信。

  • 通过更改与 ADDR 引脚的连接,ADS1115 可以配置为不同的 I2C 地址。

  • ADS1115 的默认 I2C 地址为十六进制 0x48。

下表展示了 ADS1115 的 I2C 地址如何根据 ADDR 引脚连接而变化

I2C 地址(十六进制)ADDR引脚连接
0x49VDD
0x4ASDA
0x48GND
0x4BSCL

因此,可以通过为每个模块设置不同的地址,将四个ADS1115模块连接到同一条 I2C 总线。

详见:ADS1115 ADC 搭配树莓派 Pico 和 MicroPython 代码 .

PCB 设计

为了方便连接测试和模块化连接,基于 ADS1115 设计 ADC 模块,其设计方案包括原理图、PCB、物料焊接等。

3D 图

原理图

焊接效果

Bottom view

特点

  • 宽电压支持:2.0V 至 5.5V;

  • 低功耗:连续转换模式下 150 微安;

  • 可编程数据速率:每秒 8 - 860 采样率;

  • 内置可编程增益放大器(PGA)和数字比较器;

  • 4个复用输入;

  • 可选择单次或连续转换模式;

  • 板载 STEMMA QT 接口,可实现快速模块化连接;

  • 接口与 Qwiic 连接器兼容;

  • 可采用 2.54mm 杜邦线连接;

  • 可选 0x48 至 0x4B 间的 I2C 7 位地址;

详见:ADC模数转换器模块 .

硬件连接

使用杜邦线连接 ADS1115 模块和树莓派 Pico 开发板

ADS1115 模块树莓派 PicoNote
SCLSCL (GPIO5)Serial Clock
SDASDA (GPIO4)Serial Data
VCC3V3Power
GNDGNDGround

使用杜邦线连接 TEMT6000 光照度模块和 ADS1115 模块

TEMT6000 模块ADS1115 模块Note
SA0Signal
GA-Ground
VA+Power

实物图

  • TEMT6000 模块采集环境光照度模拟信号,通过 ADS1115 模块转换为数字信号,经过 IIC 通信协议,由单片机解析并读取电压和光照度数据。

  • 扫描 IIC 总线,获得 ADS1115 模块地址 0x48

驱动库

使用 MicroPython 库实现发送命令和读取 ADS1115 集成电路的数据。

  • 将驱动代码保存为ads1x15.py上传至树莓派 Pico 根目录;
  • 驱动库代码见:GitHub .

代码

  • 库上传到 Pico 并按照电路图布线后,可以上传代码读取 ADS1115 的 ADC 值。

  • 下面 MicroPython 代码实现了终端打印输入 A0 引脚的模拟电压。

frommachineimportI2C,Pinimporttimefromads1x15importADS1115 i2c=I2C(0,sda=Pin(16),scl=Pin(17))adc=ADS1115(i2c,address=72,gain=0)whileTrue:value=adc.read(4,0)print("ADC Value:",value)voltage=adc.raw_to_v(value)print("Voltage",voltage)time.sleep(0.5)
  • 代码保存到 Raspberry Pi Pico 并运行。若需要上电运行,则保存为 main.py ;

效果演示

  • 运行代码时,Shell 终端显示以下输出

  • 通过手电筒光照、用手遮挡 TEMT6000 模块,模拟白天和黑夜环境,输出不同电压;

树莓派

若使用树莓派读取 ADS1115 模块数据,可通过 adafruit 提供的标准库快速实现。

硬件连接

ADS1115Raspberry PiNote
SDAGPIO3Serial Data
SCLGPIO5Serial Clock
GNDGNDGround
VCC3V3Power

实物图

驱动库

终端执行如下指令

python3-mvenv .venvsource.venv/bin/activate pipinstalladafruit-circuitpython-ads1x15 pipinstall"setuptools<82.0.0"--force-reinstall

扫描 IIC 设备地址

代码

终端执行touch ads1115_print.py新建代码文件,并添加如下代码

importtimeimportbusiofromadafruit_ads1x15importADS1115,AnalogIn,ads1x15# Create the I2C bus (SCL=BCM3, SDA=BCM2)i2c=busio.I2C(scl=3,sda=2)# Create the ADC object using the I2C bus, confirm address (0x48 default)ads=ADS1115(i2c,address=0x48)# Create single-ended input on channel 0 (A0)chan=AnalogIn(ads,ads1x15.Pin.A0)# Create differential input between channel 0 and 1 (uncomment to use)# chan = AnalogIn(ads, ads1x15.Pin.A0, ads1x15.Pin.A1)print("{:>5}\t{:>5}".format("raw","v"))whileTrue:print("{:>5}\t{:>5.3f}".format(chan.value,chan.voltage))time.sleep(0.5)

保存代码。

效果

终端执行python ads1115_print.py指令,连续打印 ADC 原始值和电压值

总结

本文介绍了基于 ADS1115 芯片的 ADC 模数转换模块的 PCB 设计,包括主控参数、资源特点、原理图、工程测试等,为相关产品的快速开发和应用设计提供了参考。

http://www.jsqmd.com/news/1178288/

相关文章:

  • 影刀RPA 发票报销自动化:识别校验与审批流
  • 图片转AI提示词工具:从视觉感知到精准控制的技术解析
  • Charles 4.6.6 HTTPS 抓包配置:Windows/macOS 双系统证书信任 3 步差异详解
  • 模型 API 接入上线前:Base URL、限流和费用日志的小流量验收表
  • 无公网 IP 远程调用本地 Claude Code:微信消息 + iLink 中转 + clawbot 桥接实战
  • STM32F207ZG与AD7175-8高精度信号采集方案详解
  • YOLO模型文件选择策略:从best.pt到last.pt的实战指南
  • PIC32微控制器与PAM8904驱动的高效音频警报系统设计
  • 信息学奥赛 NOIP 2012 质因数分解题解:从 1 行代码到 3 种优化策略
  • 2026韶关漏水检测维修口碑榜TOP5权威推荐:正规防水补漏公司甄选-卫生间/厨房/阳台/屋顶/地下室渗漏水精准查漏:房屋防水补漏避坑指南 - 安佳防水
  • 2025 Python数据流水线实战:声明式架构与三大调度器协同
  • 计科毕设新颖的项目选题指导
  • Pandas多维聚合实战:从groupby到生产级分析报表
  • 实测|GPT-5.6信息整合能力升级!总结、归纳、要点提炼深度测评
  • Unity GraphView动态节点连接与数据同步实战指南
  • Verilog 与 C 语言对比:10 个关键语法差异及硬件思维转换
  • NXP MCUBootUtility 与 MCUXpresso IDE 烧录对比:2 种方法生成 3 种固件格式
  • Mythos模型:自动化渗透测试的技术跃迁与企业落地指南
  • C++ 枚举算法优化实战:从 O(n²) 到 O(n) 解决「门牌号」问题,性能提升 100000 倍
  • Word 2021/365 域代码+制表位:3步实现公式按章节自动编号与右对齐
  • 《自白》三层验证法:密室构造、对话博弈与时间线复盘
  • +86号码注册纸飞机收不到验证码?找了个绕过smsfee的解决方案
  • 软件工程毕设易上手选题指导
  • 微信语音转换终极指南:轻松解码Silk v3音频文件
  • LangGraph构建智能RAG系统:动态检索决策与多步骤推理实战
  • 5大进程调度算法对比:FCFS/SJF/RR/HRRN/MLFQ 性能指标量化分析
  • 医学生深度学习实战指南:CNN、RNN、Transformer、GAN医疗应用全解析
  • 2026最新新乡本地漏水检测公司本地精选权威推荐:正规防水补漏公司优选口碑TOP5:卫生间/厨房/阳台/飘窗/地下室渗漏水维修师傅上门 - 即刻修防水
  • 高精度ADC选型与STM32L476RG的SPI配置优化
  • 微软都不敢自动删除,这款工具让你“看得见”地清理C盘