Bonjour alex_vrc
Oui, il faut voir ce TCA9548 comme un simple aiguillage.
Je te donne un exemple pour 2 écrans de ce type:
Ce programme est une version "économie de mémoire", il n'y a qu'une instance de l'écran OLED, ce qui oblige à réécrire l'entier de l'écran à chaque accès, c'est fait dans
void oledDisplayFull(int oledIndex, boolean withCls)
mais si ce n'est que du text, ça n'a pas beaucoup d'impact.
L'aiguillage du canal se fait dans
void tcaselect(uint8_t i)
Il existe une bibliothèque pour gérer le TCA9548:
Son auteur, Rob Tillaart est une référence dans le domaine
Le programme:
#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiAvrI2c.h"
//======================================= Affichage OLED i2C
#define oledI2cAddress 0x3C // Adresse de l'affichage OLED
SSD1306AsciiAvrI2c oledI2c;
#define displCls true
String displTextLine1 = "", displTextLine2 = "", displTextLine3 = "", displTextLine4 = "";
//===================================== TCA9548
#define tcaAddress 0x70
enum muxUsersIndex {muxOLEDa, muxOLEDb, muxUsersNumber};
void setup()
{
Wire.begin();
Serial.begin(115200); // Define baud rate
oledInitialisation(muxOLEDa);
displTextLine1 = "TCA9548 A";
displTextLine2 = "";
displTextLine3 = "";
displTextLine4 = "";
oledDisplayFull(muxOLEDa, !displCls);
oledInitialisation(muxOLEDb);
displTextLine1 = "TCA9548 B";
displTextLine2 = "";
displTextLine3 = "";
displTextLine4 = "";
oledDisplayFull(muxOLEDb, !displCls);
delay(1500);
}
void loop()
{
//displTextLine4 = String(mpu6050ReadAnglesValues(gyAnglelValueRoll)) + " " + String(mpu6050ReadAnglesValues(gyAnglelValuePitch));
//oledDisplayFull(muxOLEDb, !displCls);
delay(1000);
displTextLine3 = String(millis());
displTextLine4 = "";
oledDisplayFull(muxOLEDb, !displCls);
displTextLine3 = "";
displTextLine4 = String(100000-millis());
oledDisplayFull(muxOLEDa, !displCls);
}
void tcaselect(uint8_t i)
{
if (i > 7) return;
Wire.beginTransmission(tcaAddress);
Wire.write(1 << i);
Wire.endTransmission();
delay(100);
}
//===================================== OLED display
void oledInitialisation(int oledIndex)
{
tcaselect(oledIndex);
oledI2c.begin(&Adafruit128x64, oledI2cAddress);
oledI2c.setFont(Adafruit5x7);
oledI2c.clear();
}
//------------------------------------- Affichage des 4 lignes
void oledDisplayFull(int oledIndex, boolean withCls)
{
tcaselect(oledIndex);
if (withCls) {oledI2c.clear();}
oledDisplayColRow(0, 0, displTextLine1);
oledDisplayColRow(0, 1, displTextLine2);
oledDisplayColRow(0, 2, displTextLine3);
oledDisplayColRow(0, 3, displTextLine4);
}
void oledDisplayColRow(int colIndex, int rowIndex, String lineText)
{
oledI2c.set2X();
oledI2c.setCursor(colIndex, 2*rowIndex);
oledI2c.print(lineText);
oledI2c.clearToEOL();
}
String zeroPadding(int padValue, byte padSize)
{
String retVal = "000000" + String(padValue);
retVal = retVal.substring(retVal.length()-padSize);
return retVal;
}
J'ai écrit ce programme, il y a quelques années, il pourrait être optimisé 
A+
Cordialement
jpbbricole