CircuitPython环境下Raspberry Pi Pico搭配ADS1115使用方法咨询
完全可以适配。ADS1115是16位精度的4通道I2C接口ADC,刚好能补上Pico自带3路模拟输入的缺口,满足你4路采集的需求,CircuitPython有成熟的对应驱动,不需要自己写底层通信逻辑,实操步骤如下:
硬件接线
按如下对应关系接Pico和ADS1115模块即可:
- ADS1115 VCC → Pico 3.3V输出引脚(严禁接5V,Pico IO为3.3V电平,接5V有烧坏风险)
- ADS1115 GND → Pico GND引脚
- ADS1115 SCL → Pico GP1(I2C0默认SCL引脚)
- ADS1115 SDA → Pico GP0(I2C0默认SDA引脚)
- ADS1115 ADDR → Pico GND,此时ADS1115的I2C地址固定为0x48,不需要额外做地址配置
环境准备
- 先确认Pico已经正常刷入对应版本的CircuitPython固件,连接电脑后能正常识别出
CIRCUITPY可移动磁盘 - 从你使用的CircuitPython版本对应的官方库Bundle中,找到
adafruit_ads1x15文件夹、adafruit_bus_device文件夹,将这两个内容直接拷贝到CIRCUITPY盘下的lib目录中,不需要额外安装其他依赖
测试代码
将以下代码保存为code.py放到CIRCUITPY盘根目录,打开串口控制台即可看到4个通道的电压采集值:
import time import board import busio import adafruit_ads1x15.ads1115 as ADS from adafruit_ads1x15.analog_in import AnalogIn # 初始化I2C总线,引脚对应前面的接线 i2c = busio.I2C(board.GP1, board.GP0) # 初始化ADS1115,默认地址0x48、增益1、128SPS采样率 ads = ADS.ADS1115(i2c) # 初始化4路单端模拟输入通道 ch0 = AnalogIn(ads, ADS.P0) ch1 = AnalogIn(ads, ADS.P1) ch2 = AnalogIn(ads, ADS.P2) ch3 = AnalogIn(ads, ADS.P3) while True: # 可通过.voltage获取换算后的实际电压值,通过.raw_value获取原始16位采样数字量 print( f"CH0: {ch0.voltage:.2f}V | CH1: {ch1.voltage:.2f}V | " f"CH2: {ch2.voltage:.2f}V | CH3: {ch3.voltage:.2f}V" ) time.sleep(0.5)
注意事项
- 所有接入ADS1115模拟通道的信号电压不要超过3.3V,否则有烧坏芯片和Pico的风险
- 精度调整:如果你的输入信号范围小于3.3V,可以在初始化ADS1115时传入gain参数提升采样分辨率,比如输入信号最大为1.024V时设置
gain=4,增益和对应量程的对应关系可直接查看驱动文件内的注释 - 采样率调整:默认128次/秒的采样率可满足绝大多数低速传感器采集场景,需要更高采集速度时可传入data_rate参数,最高支持860次/秒
- 如果运行时提示I2C通信错误,优先检查接线是否虚接、ADS1115和Pico是否共GND,这类问题占通信故障的90%以上
内容的提问来源于stack exchange,提问作者Strimis 10
相关产品推荐
相关产品推荐

