PrécédentLes broches d'interruption12 / 24SuivantLes Module RTC
3. Les microcontrôleurs

Les écrans OLED

Les écrans OLED

Les caractéristiques

Les écrans OLED sont des afficheurs graphiques compacts avec une résolution de 128×64 pixels ou 64x32 pixels.
Leur résolution plus élevée que des écrans LCD permet d’afficher du texte, des images, et des figures graphiques. Ces écrans intègrent généralement un contrôleur, permettant de faire l’interface entre l’écran en lui même et la carte de commande (Arduino, ESP32...) et utilisent le protocole I2C pour communiquer, avec les broches SDA et SCL.
Un écran OLED
Un écran OLED

La plupart des écrans utilisent le contrôleur SSD1306 et généralement, ces modules OLED s’alimentent de 3,3V à 5V.

Installation de la bibliothèque

Contrairement aux précédentes parties de ce document, nous allons avoir besoin d'une bibliothèque à ajouter pour utiliser l'écran OLED. Ils 'agit de la bibliothèque .

Pour utiliser notre écran OLED, nous avons 2 solutions

Utilisation de la carte CREPP.io

La carte CREPP.io dispose d'un emplacement pour l'écran OLED.

⚠️

Pour les cartes de la version 1.0, l'écran est à l'envers :

Il faut donc faire dépasser l'écran du circuit imprimé.

Pour les versions 1.1 et au-dessus, l'écran est à l'endroit.

Il ne faut pas oublier de mettre les jumper pour sélectionner la broche . En effet, certains écrans OLEd ont les broches et inversées.

Le sélecteur de broche I2C
Le sélecteur de broche I2C

Code

Code pour l'écran OLED

💡

L'adresse I2C pour ces modules est souvent 0x3C pour les écrans 128x64 et 0x3D pour les écrans 128*32

Explication du code

Bibliothèque standard

Tout d'abord on ajoute les bibliothèques propres à l'écran puis les bibliothèques de la carte.
C++

Ajout des bibliothèques

#include 
  #include 
  #include 
  #include 
  
  #include 
  #include 

Puis on règle les paramètres de l'écran (résolution, adresses I2C...)

C++

Paramétrage de l'écran

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
  
#define OLED_RESET     -1 //reset pin
#define SCREEN_ADDRESS 0x3C ///Sometimes 0x3D ou 0x3F

On crée ensuite notre objet display qui va nous servir pour afficher des données :

C++

Initialisation de l'objet display

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

A chaque redémarrage, après avoir initié la communication entre le PC et la carte à 9600 bauds, on va scanner le bus I2C avec la fonction

C++

Scan du bus I2C

Serial.begin(9600);  
I2C_Scan();

On peut enfin appeler la fonction et vérifier que notre écran est bien présent et qu'il répond aux sollicitations de la carte :

C++

Vérification de l'écran

bool status_OLED = display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
  if (!status_OLED) 
 
   Serial.println("Could not find a valid OLED sensor, check wiring!");
   //I2C_Scan();
 
 else
 
   Serial.println("Found a valid OLED sensor");
 

Enfin , on peut utiliser les fonctions d'affichage de l'écran :

C++

Affichage des données

display.clearDisplay(); //On efface le texte
  display.setRotation(2); //On fait une rotation de 2*90 degrés
  display.setTextSize(1);  //Taille du texte
  display.setCursor(0, 0);              //Placement du curseur
  display.setTextColor(SSD1306_WHITE);  //texte en blanc, obligatoire
  display.println("OLED : OK");
  display.println("By CREPP");
  display.display(); //Mise à jour du texte

Bibliothèque de la carte

Une fois que la bibliothèque est importée, on peut utiliser la fonction puis utiliser ou : #include

#include #include

void setup() Serial.begin(9600); I2C_Scan(); OLED_Init(); void loop() OLED_Println("BLABLABLA"); delay(1000); OLED_Clear();

Les écran à encre électronique

Parmi les supports d'affichage disponibles, en plus des écrans, cristaux liquides (LCD), OLED, une révolution est apparue : le papier électronique e-paper bien connu des utilisateurs de liseuses type Kindle ou Kobo (Fnac).

L'objectif de ces écrans est d'imiter l'apparence d'une feuille imprimée.

Un écran e-paper
Un écran e-paper

L'affichage est obtenu par l'orientation de sphères colorées (noir et blanche ou noir, blanche, rouge) sous l'effet d'un champ électrique.
Une fois que l'affichage a été actualisé, l'écran n'a plus besoin d'énergie pour maintenir l'affichage de l'écran.

Principe d'affichage
Principe d'affichage
La dalle d'affichage
La dalle d'affichage
Un zoom sur les billes
Un zoom sur les billes

Quelques utilisations :

La principale utilisation est l'étiquette électronique de gondole / EEG Electronic Shelf Labels qui est vendu actuellement comme un système intégré de gestion géré par un ordinateur central.
Cela permet d'automatiser les prix en temps réel (cela évite de faire des centaines d'étiquettes papier à mettre à jour) mais surtout de synchroniser les prix dans un magasin en ligne et hors ligne sur plusieurs sites.
Des bornes interactives permettent de trouver un produit dans un hypermarché.
Équipé de puces NFC ou par QR code, des informations sont disponibles sur le smartphone du client en rayon.

PrécédentLes broches d'interruption12 / 24SuivantLes Module RTC