Merci pour ta réponse. Effectivement, je me suis donné intuitivement la même réponse que toi, mais je n'ai néanmoins par réussi à faire fonctionner l'ensemble.
Est-il nécessaire de faire une déclaration particulière "d'objets", par exemple ?
Pour le moment, j'ai simplement tenté d'envoyer une instruction de sélection du port à utiliser, avec une fonction "tcaselect", comme suit :
#define TCAADDR 0x70
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << i);
Wire.endTransmission();
}
Puis :
void setup() {
char mot[]="Hello !";
printscreen1(mot);
}
void printscreen1(char * c) {
tcaselect(1);
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(15,25);
display.println(c);
display.display();
delay(2000);
display.clearDisplay();
}
Voilà, évidemment ça ne fonctionne pas, j'imagine que ça serait trop simple de cette façon ! ![]()
J'ai également tenté de changer l'adresse du display, en mettant celle du multiplexeur à la place (0x70 à la place de 0x3C, dans le code ci-dessus, ainsi que dans le fichier .h de la librairie SSD1306), mais ça ne fonctionne pas mieux...