0

让我从使用的组件开始:

  • 用于将树莓派连接到组件的 GPIO 扩展板
  • BM280
  • 圆周率 3B

问题描述:

这个问题一开始是间歇性的。我们正在接收读数,并且错误突然发生,对传感器进行了调整(取出并放回)解决了它,但是当我们触摸传感器时,错误再次出现。

我们决定更换传感器,问题从间歇性变为持久性。现在我们将此作为永久性问题。

我们删除了 BME280 和 SmBus2 的软件包,并决定重新安装。

RPI Bme280:https ://pypi.org/project/RPi.bme280/

我遵循了这个 BME280 安装指南,但是当提示输入“i2cdetect -y 1”时,有几行但没有显示数字。

目前已确认的内容:

  • 修补电路很好,用我的讲师 pi 测试过,
    效果很好。

  • 代码很好,我们甚至使用 RPi.bme280 提供的示例代码

  • 每次都启用 I2c

请帮助我,因为我真的迷路了。我需要在下周之前提交此文件,因此不胜感激。

问题图片 --> 问题图片

4

2 回答 2

0

我试图做出回应,但 SMBus 和 i2c 中存在一些陷阱,因此为了将问题分解成更小的部分,我已在缩进的情况下引用了您的原始消息。下面提供了响应。

这个问题一开始是间歇性的。我们正在接收读数并且错误突然发生,对传感器进行了调整(取出并放回)解决了它,但是当我们触摸传感器时,错误再次出现。

我锁定了声明,“触摸传感器”。BME280 是否有可能发生 ESD 放电?因此现在是部分或完全坏了?

您在使用 ESD 安全室吗?或至少 ESD 手镯。您不会注意到小的 ESD 放电,对于小型电子产品,即使低于 1000V 的放电也会立即或随着时间的推移造成损坏。(静电放电的基础知识 - incompliancemag.com

我遵循了这个 BME280 安装指南,但是当提示输入“i2cdetect -y 1”时,出现了几行但没有显示数字。

I2Cdetect -y 1 将向每个可能的从机 0-127 发送一条 ReadBit 消息。然后监听从地址上的 ACK。该消息非常简单,但可以检测工作的 i2c 从站。正如您所说,没有“线路”,如果 BME280 提供了正确的 3v3+GND,我建议从机要么有响应问题。

作为另一种可能性,您能否重做此步骤 dtparam=i2c_arm=on,i2c_baudrate=400000

(将波特率设置为 10000 /10k。如果这可以解决问题并且您需要更高的带宽,请尝试“50000 /50k”或“100000 /100k”)这只是为了消除从机无法在此高频率上运行的可能性频率。对于原型/测试场景,SMBus 的 400k 波特率很高。非常少量的干扰可能会破坏 SDA 上的数据。

另一种可能性是我在 i2c 和 i2c 上的 SMBus 上学到的很难的灌电流。你的上拉电阻适合有限的灌电流吗?

SMBus 规定最小吸收电流为 100µA,最大吸收电流为350µA,而 I²C 总线为3mA(安培=电压/电阻欧姆)。

现在到软件问题。

从您在 imgur 上提供的图片。文件“newcodes_''''''''''''''.py”第2行,在

您的编译器在您尝试导入 bme280 的位置找不到“bme”。参考/路径问题?这可能是代码调用中其他问题的原因。

我不知道你在用什么软件编写代码,但如果有一个选项可以插入断点并运行调试构建。我建议从那里开始:)

于 2021-02-08T10:55:31.550 回答
0

好的,我已经解决了这个问题,我把线从跳线换成了硬线。谢谢你们的回复。我很感激他们所有人:D

于 2021-02-14T05:07:12.830 回答