我正在尝试使用两个 I2C 地址(0x48、0x49)从一个 Raspberry Pi 上运行两个 Adafruit ADS1115。可以通过将 ADDR 引脚拉高 (0x49) 或使其悬空(默认值,0x48)来设置每个设备的地址。我已经确认当地址设置为 0x48 时每个板都可以工作,并且运行“i2cdetect 1”确认两个板都连接到正确的地址。
我可以成功运行这个示例代码
我的问题是:如何让代码从 I2C 地址 0x49 而不是 0x48 读取?我在任何地方都找不到文档。请指教。
我正在尝试使用两个 I2C 地址(0x48、0x49)从一个 Raspberry Pi 上运行两个 Adafruit ADS1115。可以通过将 ADDR 引脚拉高 (0x49) 或使其悬空(默认值,0x48)来设置每个设备的地址。我已经确认当地址设置为 0x48 时每个板都可以工作,并且运行“i2cdetect 1”确认两个板都连接到正确的地址。
我可以成功运行这个示例代码
我的问题是:如何让代码从 I2C 地址 0x49 而不是 0x48 读取?我在任何地方都找不到文档。请指教。
由于有一个 Python 库,因此应用了 Python 语言的规则,特别是具有类继承的 OOP。也就是说,ADS1115 类继承自 ADS1x15,而 ADS1x15 又具有定义如下__init__()
的方法(在 OOP构造函数中):
def __init__(self, address=ADS1x15_DEFAULT_ADDRESS, i2c=None, **kwargs):
这意味着它至少知道两个位置参数,分别具有名称address
和i2c
默认值ADS1x15_DEFAULT_ADDRESS
和None
。所以,你需要在你的代码中重新定义它们,而不是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