L'écran OLED est devenu un choix populaire pour l'intégration dans les projets Arduino, principalement parce qu'il est compact, a une faible consommation d'énergie et permet une visibilité exceptionnelle même dans des environnements lumineux. De plus, grâce à sa connexion facile, son utilisation est à la portée de tout amateur d'électronique, quelle que soit son expérience. Dans cet article, nous examinerons en profondeur comment connecter et programmer un écran OLED de 0.96 pouces avec Arduino, en détaillant à la fois les aspects techniques et en proposant des exemples de code pratiques.
Si vous n'avez jamais travaillé avec un écran OLED, vous devez connaître quelques points clés avant de démarrer votre projet. Les OLED (Organic Light Emitting Diode) présentent des différences fondamentales avec d’autres types d’écrans tels que les LCD. Par exemple, l’OLED ne nécessite pas de rétroéclairage, ce qui réduit considérablement la consommation électrique. Sur des écrans aussi petits que 0.96 pouces, cela peut être essentiel si le projet est alimenté par batterie. Passons maintenant à ses fonctionnalités.
Qu'est-ce qu'un écran OLED ?
Un écran OLED est un type d'affichage qui utilise un composé organique qui émet de la lumière lorsqu'un courant électrique est appliqué. Cela les rend idéaux pour de nombreux projets électroniques, car leur technologie permet à chaque pixel de s'éclairer seul, ce qui améliore également la visibilité extérieure. La plupart des écrans OLED commercialisés pour Arduino disposent d'un contrôleur SSD1306, qui permet de gérer l'envoi des signaux vers l'écran. En fait, le SSD1306 est l'un des plus courants dans les projets Arduino, et nous le verrons dans les exemples plus tard.
L’un des principaux avantages des écrans OLED est leur faible consommation. En moyenne, un petit écran de 0.96″ peut consommer environ 20 mA. Pourquoi est-ce important ? Eh bien, si vous utilisez une batterie pour alimenter votre projet Arduino, réduire la consommation d'énergie est toujours un avantage non négligeable. De plus, sa résolution de 128x64 pixels peut représenter des images avec une assez bonne netteté compte tenu de sa taille.
En revanche, l’un des problèmes qui pourraient survenir avec ce type d’écran est que sa taille est vraiment réduite. Bien qu'ils offrent une bonne visibilité, dans certains projets où beaucoup d'informations doivent être affichées, cette taille peut s'avérer insuffisante.
Connexion de l'écran OLED à Arduino
L'écran OLED se connecte facilement à la carte Arduino à l'aide d'un bus I2C ou SPI, selon le modèle. Pour ce tutoriel, nous nous concentrerons sur la connexion via I2C, car c'est l'une des plus courantes et des plus simples.
Vous devez connecter les broches de l'écran OLED avec les broches correspondantes de votre Arduino comme suit :
- GND (Masse) avec la broche Arduino GND
- VCC avec la broche 5V ou 3.3V de l'Arduino
- SDA vers broche Arduino A4
- SCL sur la broche A5 de l'Arduino
Comme vous pouvez le constater, la connexion est assez simple : vous n'avez besoin que de quatre câbles. Ensuite, que vous utilisiez le bus SPI ou I2C, le processus de connexion est similaire, même si les broches varient selon le type de communication que vous choisissez.
Exemple de code pour l'affichage OLED
Pour faire fonctionner l'écran OLED avec Arduino, l'une des meilleures options est d'utiliser les bibliothèques développées par Adafruit. Le contrôleur SSD1306, comme nous l'avons mentionné précédemment, est compatible avec la bibliothèque Adafruit SSD1306, ce qui nous facilite la vie lors de la création de graphiques et de textes à l'écran.
Ci-dessous je vous laisse un code de base qui vous permettra d'afficher du texte sur un écran OLED avec une connexion I2C :
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println(F("Hola, Mundo!"));
display.display();
}
void loop() {}
Ce code initialise l'écran, efface l'affichage puis écrit « Hello, World ! » sur l'écran OLED. Vous pouvez utiliser différentes fonctions de la bibliothèque Adafruit GFX pour créer des graphiques, tracer des lignes, des cercles ou même afficher des images à l'écran.
Autres exemples utiles pour l'écran OLED
L'exemple ci-dessus n'est qu'une introduction de base, mais vous pouvez faire bien plus avec les écrans OLED. Par exemple, vous pouvez dessiner différentes formes géométriques, réaliser des animations ou même créer de petits graphiques.
L'une des fonctionnalités les plus intéressantes offertes par les bibliothèques Adafruit est la possibilité de dessiner plusieurs pixels, ce qui signifie que vous pouvez créer des animations de défilement. Un autre exemple serait le défilement du texte, ce qui est très utile si vous prévoyez d'afficher des messages qui changent dynamiquement.
Une autre utilisation que vous pouvez donner à ces écrans est d'afficher des données en temps réel dans des projets interactifs, comme un capteur de température ou d'humidité. L'écran peut être mis à jour à mesure que de nouvelles lectures de capteurs sont obtenues, rendant tout projet beaucoup plus visuel.
Problèmes courants lors de l'utilisation des écrans OLED
L'un des problèmes les plus courants lors de l'utilisation d'écrans OLED avec Arduino est le manque de mémoire. Les bibliothèques Adafruit, bien que très complètes, peuvent consommer une quantité considérable de mémoire sur le processeur Arduino, notamment dans des versions comme la Arduino Uno. Si vous avez des problèmes d'espace, vous pouvez essayer d'optimiser votre code, de supprimer les fonctions dont vous n'avez pas besoin ou même d'utiliser une carte avec plus de capacité, comme une Arduino Mega.
Un autre problème courant est la configuration initiale de la connexion I2C. Si vous n'utilisez pas les bonnes broches SDA et SCL, l'écran risque de ne pas fonctionner ou d'afficher des erreurs de connexion. Assurez-vous d'utiliser les bonnes broches en fonction de votre modèle Arduino.
Enfin, certains utilisateurs signalent également un écran vide ou qui ne répond à aucune commande. Ce problème peut être résolu en s'assurant que la tension d'alimentation est correcte (3.3 V ou 5 V selon le modèle d'écran) et que les câbles sont correctement connectés.