2

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

我可以成功运行这个示例代码

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

4

2 回答 2

1

由于有一个 Python 库,因此应用了 Python 语言的规则,特别是具有类继承的 OOP。也就是说,ADS1115 类继承自 ADS1x15,而 ADS1x15 又具有定义如下__init__()的方法(在 OOP构造函数中):

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

于 2020-02-06T21:18:11.657 回答
0

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

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

于 2020-02-06T21:32:38.303 回答