I have the TCA9548A multiplexer with BME680 sensors. If I run the tester from (Arduino Wiring & Test | Adafruit TCA9548A 1-to-8 I2C Multiplexer Breakout | Adafruit Learning System), the sensors are recognized, but I can't get the bme.begin() to work. Here's my code:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_BME680.h"
#define TCAADDR 0x70
Adafruit_BME680 bme;
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << i);
Wire.endTransmission();
}
void setup(void)
{
Serial.begin(9600);
/* Initialise the 1st sensor */
tcaselect(5);
bme.begin();
if (!bme.begin()) {
Serial.println("Could not find a valid BME680 sensor, check wiring!");
while (1);
}
bme.setTemperatureOversampling(BME680_OS_8X);
bme.setHumidityOversampling(BME680_OS_2X);
bme.setPressureOversampling(BME680_OS_4X);
bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
bme.setGasHeater(320, 150); // 320*C for 150 ms
}
void loop(void)
{
tcaselect(5);
if (! bme.performReading()) {
Serial.println("Failed to perform reading :(");
return;
}
//Serial.print("T: ");
Serial.print(bme.temperature);
Serial.print(",");
delay(2000);
}
Thanks.
EDIT: Solved