我有一个 Aliexpress 模块,一侧标记为 BMP/BME280,另一侧标记为 GYBMEP。传感器上的孔位于一侧而不是拐角处。芯片 ID 报告 0x60(我在 Adafruit_BME280.cpp 文件中放置了一些 Serial.prints)。我必须将 Adafruit_BME280.h 文件中的 I2C 地址从 0x77 更改为 0x76。
我的代码:
代码:
全选#include
#include
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
float Pressure;
float BMETemp, BMEAl
titude;
void setup() {
Serial.begin(115200);
boolean status = bme.begin(0x76);
}
void loop() {
printValues();
}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
printValues() 例程产生以下结果:
Temperature = nan *C
Pressure = nan hPa
Approx. Altitude = nan m
Humidity = nan %
当我运行 bme280test 示例时,我得到这个:
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v60000318
~ld
此外,当我在开始例程的 Adafruit_BME280.cpp 文件中插入 Serial.prints 时,我得到 ChipID = 0xFF。如果我将它们放在 delay(100) 之前,我会得到 ChipID = 0x60(正确!)。
读取系数();// 读取微调参数,见 DS 4.2.2
setSampling(); // 使用默认
延迟(100);
Serial.print("芯片ID=");
Serial.println (read8(BME280_REGISTER_CHIPID));
返回真;