DRY ^^
I think I get it you something like that?
#include <Wire.h>
#include <SFE_BMP180.h>
SFE_BMP180 pressure;
// SFE_BMP180 pressure_1;
// SFE_BMP180 pressure_2;
// SFE_BMP180 pressure_3;
#define TCAADDR 0x70
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << i);
Wire.endTransmission();
}
int maxtca=4; // nombre de voies utilisées
void setup() {
Serial.begin(9600);
Wire.begin();
Serial.println("Starting Initialization");
pressure.begin();
// delay(100);
//pressure_1.begin();
// delay(100);
//pressure_2.begin();
// delay(100);
//pressure_3.begin();
Serial.println("Initialization Finished");
}
void loop()
{
char status;
for (byte tca = 0; tca < maxtca; tca++) { tcaselect(tca);
double T,P;
status = pressure.startTemperature();
if (status != 0)
{
// Wait for the measurement to complete:
delay(status);
status = pressure.getTemperature(T);
if (status != 0)
{
// Print out the measurement:
Serial.print("BMP: ");
Serial.print(tca,1);
Serial.print(" _ T: ");
Serial.print(T,2);
Serial.print(" °C, ");
status = pressure.startPressure(3);
if (status != 0)
{
// Wait for the measurement to complete:
delay(status);
status = pressure.getPressure(P,T);
if (status != 0)
{
Serial.print("P: ");
Serial.print(P,2);
Serial.println(" mb ");
}
else Serial.println("error retrieving pressure measurement\n");
}
else Serial.println("error starting pressure measurement\n");
}
else Serial.println("error retrieving temperature measurement\n");
}
else Serial.println("error starting temperature measurement\n");
};
delay(1000);
}
This "works" but it doesn't change the results
