Conectar 2 multiplexores TCA9548a

Buenas estoy trabajando con el multiplexor i2c TCA9548a, ya pude conectar 8 sensores i2c con la misma dirección y trabaja prefecto, necesito agregar mas sensores, estuve viendo que se pueden conectar varios multiplexores de este tipo ya que se les puede cambiar la direccion a los mismos, ya cambie la dirección de uno de estos multiplexores y agregue un sensor extra pero no tengo idea de como leerlo. Agradezco la ayuda con la configuración.

Este es el multiplexor: tca9548a

#include <BH1750.h>
#include <Wire.h>
#include <LiquidCrystal.h>


#define TCAADDR 0x70



BH1750 lightMeter(0x23);



const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void tcaselect(uint8_t i) {
  if (i > 7) return;
 
  Wire.beginTransmission(TCAADDR);
  Wire.write(1 << i);
  Wire.endTransmission(); 



void setup(){

  Serial.begin(9600);

  // Initialize the I2C bus (BH1750 library doesn't do this automatically)
  Wire.begin();
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Cant. Lux");

  /* Initialise the 1st sensor */

  tcaselect(0);
  lightMeter.begin(BH1750_CONTINUOUS_LOW_RES_MODE);
  Serial.println(F("BH1750 4 Test"));
  delay(1000);

// acá defininir los tcaselect restantes

  Serial.begin(9600); // Open serial connection to report values to host


}

 
void loop() {

  tcaselect(0);
   
  uint16_t lux0 = lightMeter.readLightLevel();
  lcd.setCursor(0, 1);
  lcd.print(lux0);
  Serial.print("Light1: ");
  Serial.print(lux0);
  Serial.println(" lx");
  delay(2000);

 //acá defininir los tcaselect restantes
  
 
    }

Los pines A0 A1 y A2 controlan las direcciones

A2 A1 A0

0 0 0 tu dirección x defecto
0 0 1 + 1
0 1 0 +2
0 1 1 +3
y seguimos hasta 8 integrados posibles

Asi tienes las direcciones posibles.

Como lo comandas?

Veo que defines un

#define TCAADDR 0x70

pues que sea un

#define TCAADDR0 0x70
#define TCAADDR1 0x71

Otra cosa
Modifica esta rutina para que te sea mas facil

void tcaselect(uint8_t add) {
  uint8_t tmp = add - 0x70; 
  if (tmp > 7) return;
 
  Wire.beginTransmission(add);
  Wire.write(1 << tmp );
  Wire.endTransmission(); 
}

cuando la llames usas

tcaselect(TCAADDR0); // para la posicion 0
tcaselect(TCAADDR1); // para la posicion 1

muchas gracias por las respuestas, no me queda claro como hacer para llamar las posiciones del segundo multiplexor seria algo asi: ?

void loop() {
  tcaselect(TCAADDR0);
  tcaselect(0);
  
   
  uint16_t lux0 = lightMeter.readLightLevel();
  Serial.print("Light1: ");
  Serial.print(lux0);
  Serial.println(" lx");
  delay(2000);



  tcaselect(TCAADDR1);
  tcaselect(4);
  
   
  uint16_t lux1 = lightMeter.readLightLevel();
  Serial.print("Light2: ");
  Serial.print(lux1);
  Serial.println(" lx");
  delay(2000);

  

    }

Una cosa es seleccionar el multiplexor y otra leer las direcciones de lo que tengas conectado a cada uno. Eso se repite, será lo mismo para el TCA9548a(0) que para el (n).