1ere étape : changer l'adresse de l'un des ecrans OLED
Pour cela il faut un fer à souder pour enlever la résistance SMD installée en usine en 0x7B et comme elle a 90% de chance qu'elle ne sera plus utilisable, il faudra installer une resistance classique de 4,7 Kohms en 0x7A
De cette façon l'ecran avec la resistance en 0x7B aura l'adresse 0x3C et celui avec avec la resistance en 0x7A aura l'adresse 0x3D
3eme étape : utilisation
Ajouter ces lignes au début du sketch :
#include <Adafruit_SSD1306.h>
#define LargeurEcran 128 // largeur de l'ecran OLED en pixels
#define HauteurEcran 64 // hauteur de l'ecran OLED en pixels
Adafruit_SSD1306 Oled1(LargeurEcran, HauteurEcran, &Wire, Oled1_RESET);
// initialisation de l'écran avec le nom Oled1 ou autre à choisir
Adafruit_SSD1306 Oled2(LargeurEcran, HauteurEcran, &Wire, Oled2_RESET);
// initialisation de l'écran avec le nom Oled2 ou autre à choisir
#define Oled1_RESET -1 // Reset de l'ecran Oled1 partagé avec l'Arduino (d'où la valeur à -1, et non un numéro de pin)
#define Oled2_RESET -1 // Reset de l'écran Oled2 partagé avec l'Arduino (d'où la valeur à -1, et non un numéro de pin)
#define Oled1_ADDRESS 0x3C // Adresse de l'écran Oled1 sur le bus i2c
#define Oled2_ADDRESS 0x3D // Adresse de l'écran Oled2 sur le bus i2c
Ensuite utiliser ces noms Oled1 et Oled2 pour envoyer les commandes d'affichage vers le bon ecran
Bonjour
on pourrait aussi vouloir utiliser 2 écrans de tailles différentes .
garder tout séparé pourrait être aussi un plus (pour la taille et le reste)
mais quand on arrive la je suppose qu'on peut faire soi même les modifs.
ne polluons pas le tuto avec une discussion un peu stérile
cependant il serait mieux de définir les constantes et les define avant de les utiliser
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define LargeurEcran 128 // largeur de l'ecran OLED en pixels
#define HauteurEcran 64 // hauteur de l'ecran OLED en pixels
#define ResetPin -1 // pas de pin RST connectée
#define Oled1_ADDRESS 0x3C // Adresse de l'écran Oled1 sur le bus i2c
#define Oled2_ADDRESS 0x3D // Adresse de l'écran Oled2 sur le bus i2c
Adafruit_SSD1306 oled1(LargeurEcran, HauteurEcran, &Wire, ResetPin); // initialisation de l'écran avec le nom oled1 ou autre à choisir
Adafruit_SSD1306 oled2(LargeurEcran, HauteurEcran, &Wire, ResetPin); // initialisation de l'écran avec le nom oled2 ou autre à choisir
il faudrait aussi mentionner le begin qui est là où on passe l'adresse
// dans le setup
if(! oled1.begin(SSD1306_SWITCHCAPVCC, Oled1_ADDRESS)) {
Serial.println(F("oled1 erreur"));
for(;;); // on arrête là
}
if(! oled2.begin(SSD1306_SWITCHCAPVCC, Oled2_ADDRESS)) {
Serial.println(F("oled2 erreur"));
for(;;); // on arrête là
}