首页 > 解决方案 > ESP32 或 Arduino 上的 I2C:使用 BMP388 传感器的最大从机数量是多少

问题描述

BMP388:I2C 模式下从机地址的最大值是多少

在 I2C 模式下,一个主机可以连接多少个 BMP388 作为从机到 Arduino UNO?从数据表中,我了解到在 I2C 模式(0x76 或 0x77)下只有 2 个地址可能,由设备地址中的第 7 位指定,并通过 SDO(引脚 5)端口配置为接地或加号。在 SPI 模式下,正如我希望从数据表中了解的那样,最多有 128 个 BMP388 地址。

我的问题是:-我是否理解在 I2C 模式下最大从站数量为两个?-当然,我可以将很多 BMP388 串联到 Arduino,但是我如何在 I2C 模式下寻址它们。还是我应该使用 SPI 模式?- 除了数据表之外,是否有任何文档可以更清楚地说明这一点?- 是否有适用于 I2C 情况的示例 Arduino 代码?

标签: arduinoi2cesp32

解决方案


您正确理解了 i2c 寻址。在 i2c 模式下,由 SDO 引脚控制的 BMP388 只能有 2 个地址。

如果您想在单个微控制器上使用超过 2 个 BMP388 单元,请使用 SPI。您可以使用与微控制器上的 GPIO 引脚一样多的 BMP388 单元来控制从选择引脚。

这是来自 Adafruit BMPxxx library 的示例

这是您可以将每个单元的从选择 (CS) 引脚传递给每个唯一对象的行的永久链接。

稍后在代码中,您可以使用 Adafruit BMPxxx 库的每个对象来获取读数。


推荐阅读