BME280 change address

Hallo,

i have a problem with reading out my BME 280.
i2c_scanner means that my Sensor use 0x76. How can I change the Address?

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);

void setup() {

Serial.begin(9600);
Serial.println(F(“BMP280 test”));

if (!bmp.begin()) {
Serial.println(F(“Could not find a valid BMP280 sensor, check wiring!”));
while (1);
}

/* Default settings from datasheet. /
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /
Operating Mode. /
Adafruit_BMP280::SAMPLING_X2, /
Temp. oversampling /
Adafruit_BMP280::SAMPLING_X16, /
Pressure oversampling /
Adafruit_BMP280::FILTER_X16, /
Filtering. /
Adafruit_BMP280::STANDBY_MS_500); /
Standby time. */
}

void loop() {
Serial.print(F(“Temperature = “));
Serial.print(bmp.readTemperature());
Serial.println(” *C”);

Serial.print(F(“Pressure = “));
Serial.print(bmp.readPressure());
Serial.println(” Pa”);

Serial.print(F(“Approx altitude = “));
Serial.print(bmp.readAltitude(1013.25)); /* Adjusted to local forecast! */
Serial.println(” m”);

Serial.println();
delay(2000);
}

serial monitor:

2:46:45.678 →
22:46:45.678 → Soft WDT reset
22:46:45.721 →
22:46:45.721 → >>>stack>>>
22:46:45.721 →
22:46:45.721 → ctx: cont
22:46:45.721 → sp: 3ffffdf0 end: 3fffffc0 offset: 01b0
22:46:45.758 → 3fffffa0: feefeffe 00000000 3ffee4e0 40203044
22:46:45.829 → 3fffffb0: feefeffe feefeffe 3ffe84ec 40100f41
22:46:45.869 → <<<stack<<<
22:46:45.907 → ⸮B⸮⸮⸮}⸮BMP280 test
22:46:45.978 → Could not find a valid BMP280 sensor, check wiring!

Any Ideas

Hell

If you have an I2C backpack module handy, examine the A0, A1, A2 pads. These are ground pads. If you build a solder bridge to their adjacent pads you short IC lead to ground, which alters the address. Short the same leads on the I2C chip on your BME280 module to change the address of your module.

This is a SWAG, not a guarantee.

Ok i used the wrong example :wink: .This example was for the BMP280.
But you can change the address in the code.

Utter nonsense.

@hellfish69:

The BME280 (and the BMP280) have two possible I2C addresses depending on how you have the SDO pin configured. If SDO is high then the I2C address is 0x77. If SDO is low the I2C address is 0x76.

On the Adafruit BME280 module the SDO pin is pulled high so if you leave it alone the address will be 0x77. You can connect SDO to GND to change the address to 0x76.

The Adafruit BME280 library is geared toward their module so it is set up to use a default address of 0x77. You can encourage the library to use address 0x76 with [b]bme.begin(0x76)[/b].

Don

1 Like