L’afficheur OLED 0.91in est un afficheur graphique compact avec une résolution de 128×32 pixels qui permet de dessiner et d’afficher du texte afin de créer une interface graphique. Parmi tous les écrans disponible pour l’Arduino, l’écran OLED prend de plus en plus de place sur le marché. Étant donné qu’ils sont plus fins car ne nécessitent pas de rétro-éclairages, ils sont facile à insérer dans des projets miniaturisés.
Matériel
- Ordinateur
- Arduino UNO
- Câble USB A Mâle/B Mâle
- OLED 0.91in
Principe de fonctionnement
L’afficheur OLED 0.91in est un écran monochrome piloté par le circuit intégré SSD1306 et s’interface à l’aide de la communication I2C.
Schéma
L’écran OLED présente 4 broches pour permettre la gestion de l’affichage. Il est alimenté par le microcontrôleur et se connecte au bus I2C.
- GND Relier à la masse du microcontrôleur
- VCC Broche d’alimentation. Typiquement connectée à la broche 3V ou 5V du microcontrôleur.
- SCL Horloge de la communication I2C
- SDA Données de la connexion I2C.
Code
Une fois votre afficheur OLED correctement branché, vous pouvez modifier le code suivant pour obtenir la fonctionnalité désirée. Dans l’exemple suivant, nous allons simplement réaliser l’affichage d’un compteur.
Pour gérer l’écran OLED, les librairies utilisées sont Adafruit_GFX.h et Adafruit_SSD1306.h dont les fonctions à connaître sont les suivantes:
- Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire); pour définir l’écran en fonction du type
- display.begin(SSD1306_SWITCHCAPVCC, 0x3C); pour initialiser l’écran
- display.setTextSize() pour définir la taille du texte
- display.clearDisplay(); pour effacer ce qui est affiché sur l’écran
- display.display(); pour rafraichir l’écran
- display.setCursor() pour placer le curseur
- display.print() et display.println() pour afficher du texte
D’autres fonctions plus spécifiques existent pour dessiner des rectangles, des lignes ou encore pour afficher des images. Lorsque vous maitriserez ces fonctions, il vous sera facile d’afficher ce que vous voulez.
#include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire); byte compteur; void setup() { Serial.begin(9600); Serial.println("OLED intialized"); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x32 display.display(); delay(1000); // Clear the buffer. display.clearDisplay(); display.display(); // text display tests display.setTextSize(1); display.setTextColor(WHITE); } void loop() { for (compteur = 0 ; compteur < 25 ; compteur++) { display.clearDisplay(); display.setCursor(0, 0); display.println("test compteur"); display.print("compteur: "); display.println(compteur); display.display(); delay(1000); } }
Résultat
Une fois le code chargé, observez bien où sont placées les chaînes de caractères affichées et jouez avec les paramètres d’entrées des fonctions pour comparer leurs effets. Cela vous permettra d’avoir une meilleur compréhension de la librairie et des fonctionnalités du module Oled.
Applications
- Fabriquer une horloge à l’aide d’un module RTC
- Créer un menu interactif avec un encodeur rotatif
Sources
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie