raspberry-pi2 - 如何将 I2C 地址传递给 Adafruit CircuitPython 代码?(运行 ADS1115)
问题描述
我正在尝试使用两个 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
。
推荐阅读
- python - Python:通过图像的错误迭代
- linq - LINQ Cast 抛出从十进制到双精度的异常
- ruby - 如何在 Ruby 中组织 Procs?
- sql - 选择具有相同 ID 的行,折叠具有空/非空值的行
- restsharp - 网络凭据未在 RestSharp conole 应用程序中通过
- r - 如何在 ggplot 中使用 facet_wrap 绘制 5 点线图和 1 点条形图
- sql - 尝试在 Tableau 中执行 JOIN 得到错误
- sql - 将多行合并为具有相同 ID 的单行
- reactjs - 使用 React-Hooks 将类组件转换为无状态组件
- python - kivy中的自定义滑块不显示