如何将 I2C 地址传递给 Adafruit CircuitPython 代码? (运行 ADS1115)

How to pass I2C addresses to Adafruit CircuitPython code? (Running ADS1115)

我正在尝试 运行 使用两个 I2C 地址(0x48、0x49)从一个 Raspberry Pi 中分离出两个 Adafruit ADS1115。可以通过将 ADDR 引脚连接到高电平 (0x49) 或将其悬空(默认为 0x48)来设置每个设备的地址。我已经确认当地址设置为 0x48 时每块板都可以工作,并且 运行ning "i2cdetect 1" 确认两块板都连接到正确的地址。

我可以成功运行这个样本code

我的问题是:如何让代码从 I2C 地址 0x49 而不是 0x48 读取?我无法在任何地方找到文档。请指教

因为有一个 Python 库,所以应用了 Python 语言的规则,特别是具有 class 继承的 OOP。也就是说,class ADS1115 继承自 ADS1x15,后者又具有 __init__() 方法(在 OOP constructor 中)定义如下:

def __init__(self, address=ADS1x15_DEFAULT_ADDRESS, i2c=None, **kwargs):

这意味着它知道至少两个名称为 addressi2c 的位置参数,默认值分别为 ADS1x15_DEFAULT_ADDRESSNone。因此,您需要在代码中重新定义它们,即使用 ads = ADS.ADS1115(i2c) 而不是

ads = ADS.ADS1115(address=0x48, i2c=i2c)

第二个放在那里0x49

啊哈!
ads1 = ADS.ADS1115(i2c, address=0x49)

来源:https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/issues/20