您好,我有气压计 MS5611,但在计算平均值时遇到问题
一开始,我试图用 100 个数字求和,但有些我是如何得到 feed-beak 错误的,有些是它如何仅在第三次添加我的答案
for (int i = 0; i < 100; i++) {
pression += barometer.getPressure(MS561101BA_OSR_4096);
Serial.println(pression);
delay(20);
我的输出
0.00
0.00
0.00
0.00
973.84
973.84
973.84
1947.69
1947.69
1947.69
2921.57
2921.57
2921.57
最佳答案
代码看起来不错...假设您在进入循环之前清除“pression”变量,并且我们正在查看这个:( http://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Data+Sheet%7FMS5611-01BA03%7FB2%7Fpdf%7FEnglish%7FENG_DS_MS5611-01BA03_B2.pdf%7FCAT-BLPS0036 )。未显示的内容可能是问题所在。我会退一步并查询温度传感器而不是压力。考虑在初始化过程中对设备发出软重置,我希望您的问题不在这里,而是在您的较低级别代码中,该代码实际上是从 SPI(或 I2C)端口写入和读取位。您的延迟不应该在这里,而应该在开始转换的命令和读取数据之间。观察 SDO 线以查看转换何时完成,并有 10 到 15 毫秒的备份超时,以防出现问题。确保底层代码是防弹的,然后再担心上层代码。
关于c - 第三次添加气压计 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135311/