Arduino Nano - Écran OLED SSD1309 128x64 | Tutoriel OLED I2C 2.42 pouces
Un écran OLED (Organic Light-Emitting Diode) offre des pixels auto-émissifs qui fournissent des noirs profonds, un contraste élevé et de larges angles de vision — ce qui en fait une excellente amélioration par rapport aux écrans LCD traditionnels. Le SSD1309 est le circuit intégré pilote couramment trouvé sur les modules OLED I2C de 2.42 pouces (parfois étiquetés 2.4 pouces) 128×64.
Dans ce guide étape par étape, vous apprendrez comment connecter et programmer l'écran OLED SSD1309 128×64 avec une carte Arduino Nano en utilisant la bibliothèque DIYables_OLED_SSD1309. Plus précisément, nous couvrirons :
- Le câblage de l'écran OLED SSD1309 2.42 pouces à l'Arduino Nano via I2C
- L'affichage de texte et de nombres à l'écran
- Le centrage du texte verticalement et horizontalement
- Le dessin de formes géométriques (lignes, rectangles, cercles, triangles, rectangles arrondis)
- Le rendu d'images bitmap monochromes
- Le défilement matériel dans quatre directions
- L'ajustement du contraste et la gradation de l'écran
- L'utilisation de polices externes personnalisées de la collection de polices Adafruit GFX
Matériel requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos de l'écran OLED SSD1309 2.42 pouces
Le SSD1309 est un circuit intégré pilote OLED CMOS sur puce unique conçu pour les panneaux à matrice de points 128×64. Il est compatible au niveau des registres avec le SSD1306 largement utilisé, donc de nombreux exemples de code existants peuvent être transférés avec des modifications minimales. Les principales différences matérielles sont :
- Pas de pompe de charge intégrée — le SSD1309 nécessite un rail VCC externe, bien que pratiquement toutes les cartes de développement (y compris les modules 2.42 pouces et 2.4 pouces) soient livrées avec un convertisseur boost intégré, donc cela est transparent pour vous.
- Tolérance de tension plus élevée — le SSD1309 accepte jusqu'à 16 V VCC, tandis que le SSD1306 est limité à environ 4.2 V.
Le module OLED 2.42 pouces (2.4 pouces) utilise couramment le pilote SSD1309 et dispose d'une résolution de 128×64 pixels avec interface I2C. La couleur du panneau (blanc, bleu, jaune, vert ou double zone) est déterminée par le matériau OLED physique et n'est pas contrôlable par logiciel.
Ce tutoriel communique avec l'écran via le bus I2C, qui ne nécessite que deux fils de signal (SDA et SCL) et peut partager le bus avec d'autres périphériques I2C.
Brochage de l'écran OLED SSD1309 (Module I2C)
- Broche GND : Celle-ci doit être connectée à la masse de l'Arduino Nano.
- Broche VCC : Il s'agit de l'alimentation pour l'écran qui doit être connectée au 5V.
- Broche SCL : Il s'agit d'une broche d'horloge série pour l'interface I2C. Connecter à A5.
- Broche SDA : Il s'agit d'une broche de données série pour l'interface I2C. Connecter à A4.

※ Note:
- Les broches du module OLED peuvent différer selon le fabricant et le type. Veuillez utiliser les étiquettes imprimées sur le module OLED. Veuillez regarder attentivement !
- Ce tutoriel utilise l'écran OLED qui est piloté par le pilote I2C SSD1309. Nous l'avons testé avec l'écran OLED de DIYables et il fonctionne parfaitement.
Schéma de câblage
- Schéma de câblage entre Arduino Nano et écran OLED SSD1309 128x64

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Voir Comment alimenter un Arduino Nano..
Le tableau de câblage entre Arduino Nano et l'écran OLED SSD1309 :
| Module OLED | Arduino Nano |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Comment programmer l'Arduino Nano pour l'écran OLED SSD1309
Installer la bibliothèque DIYables_OLED_SSD1309
La bibliothèque DIYables_OLED_SSD1309 est spécialement conçue pour les écrans SSD1309 et étend Adafruit_GFX pour un support graphique plus riche.
- Cliquez sur l'icône Libraries dans la barre de gauche de l'IDE Arduino.
- Recherchez DIYables_OLED_SSD1309, puis cherchez la bibliothèque DIYables OLED SSD1309 par DIYables
- Cliquez sur le bouton Install pour installer la bibliothèque DIYables_OLED_SSD1309.

- Il vous sera demandé d'installer les dépendances pour la bibliothèque
- Installez toutes les dépendances en cliquant sur le bouton Install All.

Étapes de programmation
- Inclure les bibliothèques requises
- Définir les dimensions de l'écran
- Déclarer l'objet d'affichage
- Initialiser l'OLED dans setup()
- Afficher le contenu
Code Arduino Nano — Hello World sur écran OLED SSD1309
Le point de départ le plus simple : imprimer quelques lignes de texte à différentes tailles.
Code Arduino Nano — Afficher du texte sur écran OLED SSD1309
L'exemple suivant démontre plus de fonctionnalités de texte — plusieurs tailles, formatage de nombres, et la macro F() pour économiser la RAM.
Référence des fonctions d'affichage utiles
Voici une liste de référence rapide des fonctions les plus fréquemment utilisées lors du travail avec l'écran OLED SSD1309 via la bibliothèque DIYables :
- oled.clearDisplay() — efface le tampon de trame (tous les pixels éteints).
- oled.display() — transfère le tampon vers l'OLED pour que les changements deviennent visibles.
- oled.drawPixel(x, y, color) — définit ou efface un pixel individuel.
- oled.setTextSize(n) — met à l'échelle la police par facteur *n* (1 = 6×8, 2 = 12×16, …, jusqu'à 8).
- oled.setCursor(x, y) — déplace le curseur de texte aux coordonnées de pixel *(x, y)*.
- oled.setTextColor(SSD1309_PIXEL_ON) — premier plan du texte uniquement (arrière-plan transparent).
- oled.setTextColor(SSD1309_PIXEL_OFF, SSD1309_PIXEL_ON) — texte avec une couleur d'arrière-plan explicite.
- oled.println("message") — imprime une chaîne et avance à la ligne suivante.
- oled.println(number) — imprime un entier en décimal.
- oled.println(number, HEX) — imprime un entier en hexadécimal.
- oled.startscrollright(start, stop) — défilement matériel vers la droite entre la page *start* et la page *stop*.
- oled.startscrollleft(start, stop) — défilement matériel vers la gauche.
- oled.startscrolldiagright(start, stop) — défilement matériel en diagonal vers la droite.
- oled.startscrolldiagleft(start, stop) — défilement matériel en diagonal vers la gauche.
- oled.stopscroll() — arrête tout défilement matériel actif.
- oled.setContrast(value) — ajuste la luminosité de l'écran (0–255).
- oled.dim(true/false) — réduit rapidement l'écran au minimum ou restaure le contraste précédent.
- oled.invertDisplay(true/false) — inversion des couleurs au niveau matériel (pixels allumés ↔ pixels éteints).
Comment centrer verticalement et horizontalement le texte sur l'écran OLED SSD1309
Code Arduino Nano — Dessiner des formes sur écran OLED SSD1309
Parce que la bibliothèque DIYables_OLED_SSD1309 étend Adafruit_GFX, vous obtenez un ensemble complet de primitives de dessin de formes : pixels, lignes, rectangles, rectangles remplis, cercles, cercles remplis, triangles, triangles remplis, et rectangles arrondis. Le sketch ci-dessous parcourt toutes ces formes avec des démonstrations animées.
Code Arduino Nano — Défilement matériel sur écran OLED SSD1309
Le SSD1309 a un moteur de défilement intégré qui décale le contenu de l'écran sans aucune charge CPU. La bibliothèque DIYables expose quatre directions de défilement : droite, gauche, diagonal-droite, et diagonal-gauche. Chacune prend un paramètre de page de début et page de fin (les pages sont des bandes horizontales de 8 pixels de haut numérotées 0–7 sur un écran de 64 pixels de haut).
※ Note:
Appelez toujours display() pour pousser votre contenu vers l'OLED avant de commencer un défilement. Évitez de dessiner du nouveau contenu pendant que le défilement est actif — appelez d'abord stopscroll().
Code Arduino Nano — Afficher une image bitmap sur écran OLED SSD1309
Pour afficher un bitmap sur l'écran OLED SSD1309, vous devez d'abord convertir votre image en un tableau de bytes C. Utilisez l'outil gratuit en ligne image2cpp pour cette conversion :
- Téléversez votre fichier image (PNG, JPG, BMP, etc.).
- Définissez la taille du canvas à 128×64 (ou plus petit).
- Choisissez Arduino code comme format de sortie.
- Copiez le tableau généré dans votre sketch.

L'exemple ci-dessous alterne entre une icône de cœur 16×16 et un logo DIYables pleine largeur :
※ Note:
- Les dimensions du bitmap ne doivent pas dépasser la résolution de l'écran (128×64 pour le module 2.42 pouces).
Code Arduino Nano — Contraste et gradation sur écran OLED SSD1309
Le SSD1309 supporte 256 niveaux de contraste (0–255). La bibliothèque DIYables fournit setContrast() pour un contrôle fin et dim() pour un basculement rapide entre la luminosité minimale et le niveau précédemment configuré.
Code Arduino Nano — Polices externes personnalisées sur écran OLED SSD1309
La bibliothèque Adafruit GFX est livrée avec des dizaines de polices de caractères FreeFont évolutives (Serif, Sans, Mono — chacune en Regular, Bold, Italic, et quatre tailles). Vous pouvez activer n'importe laquelle d'entre elles sur l'écran SSD1309 en incluant l'en-tête correspondant et en appelant setFont().
※ Note:
- Quand une police externe est active, la coordonnée Y du curseur fait référence à la ligne de base du texte, pas au coin supérieur gauche. C'est différent de la police intégrée 5×7.
- Les polices externes sont stockées en flash (PROGMEM). Sur les cartes AVR à mémoire limitée (Arduino Nano = 32 KB flash), utilisez-les avec parcimonie.
Dépannage de l'écran OLED SSD1309 avec Arduino Nano
Si rien n'apparaît sur l'écran OLED SSD1309 2.42 pouces après avoir téléversé votre sketch, parcourez ces vérifications :
- Vérifiez le câblage — confirmez que SDA, SCL, VCC et GND sont connectés aux bonnes broches de l'Arduino Nano.
- Confirmez la puce pilote — cette bibliothèque est conçue pour le SSD1309. Si votre module utilise un contrôleur différent (par ex. SH1106), il ne répondra pas correctement.
- Vérifiez l'adresse I2C — la plupart des modules SSD1309 utilisent par défaut 0x3C, mais certains utilisent 0x3D. Exécutez le sketch scanner I2C ci-dessous pour détecter l'adresse réelle :
Sortie attendue du moniteur série quand le SSD1309 est détecté :
- Assurez-vous que display() est appelé — le SSD1309 utilise un tampon de trame. Les fonctions de dessin ne modifient que le tampon en RAM ; rien n'apparaît à l'écran jusqu'à ce que vous appeliez oled.display().
- Vérifiez l'alimentation — le module 2.42 pouces consomme plus de courant que les écrans OLED plus petits. Assurez-vous que votre source d'alimentation peut fournir suffisamment de courant (typiquement 20–40 mA à pleine luminosité).
Tutoriel vidéo
Conclusion
Ce guide a couvert tous les éléments essentiels pour utiliser l'écran OLED SSD1309 2.42 pouces (128×64) avec Arduino Nano, incluant :
- Les connexions matérielles et le câblage I2C
- L'affichage de texte et de nombres avec plusieurs tailles
- Le dessin de formes (rectangles, cercles, triangles)
- Le rendu d'images bitmap
- Le défilement matériel dans quatre directions
- Le contrôle du contraste et de la luminosité
- Les polices externes personnalisées
La bibliothèque DIYables_OLED_SSD1309 simplifie la programmation du SSD1309 en fournissant des fonctions de haut niveau pour le texte, les graphiques et le contrôle d'affichage tout en exploitant Adafruit GFX pour des capacités de dessin étendues.
Pour plus de projets et tutoriels Arduino Nano, visitez arduinogetstarted.com