Arduino Mega - Écran OLED SSD1309 128x64 | Tutoriel OLED I2C 2,42 pouces
Ce guide vous montre comment utiliser un Arduino Mega avec un écran OLED SSD1309 I2C de 2,42 pouces (2,4") avec une résolution de 128×64. Nous allons apprendre en détail :
- Comment connecter un écran OLED SSD1309 de 2,42 pouces à l'Arduino Mega.
- Comment programmer l'Arduino Mega pour afficher du texte sur l'OLED SSD1309.
- Comment dessiner des formes sur l'OLED SSD1309 avec l'Arduino Mega.
- Comment activer le défilement matériel sur l'OLED SSD1309.
- Comment afficher des images bitmap sur l'OLED SSD1309 avec l'Arduino Mega.
- Comment ajuster la luminosité/contraste de l'OLED SSD1309.
- Comment utiliser des polices externes avec l'écran OLED SSD1309.

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
Le SSD1309 est une puce pilote d'écran OLED monochrome. La version 2,42 pouces offre une résolution de 128×64 pixels. Il communique via le protocole I2C, ne nécessitant que deux broches (SDA et SCL) plus les connexions d'alimentation. Cela le rend idéal pour les projets avec une disponibilité limitée de broches.
Caractéristiques principales de l'OLED SSD1309 :
- Taille d'écran : 2,42 pouces (diagonale)
- Résolution : 128×64 pixels
- Communication : I2C (interface 2 fils)
- Adresse I2C par défaut : 0x3C
- Tension de fonctionnement : Compatible 3,3V ou 5V
- Support de défilement matériel intégré
- Contraste/luminosité réglable
- Faible consommation d'énergie
Brochage de l'écran OLED SSD1309
Le module OLED SSD1309 I2C de 2,42 pouces a généralement 4 broches :
- GND : Broche de masse - connecter au GND de l'Arduino Mega
- VCC : Broche d'alimentation - connecter au 5V de l'Arduino Mega
- SDA : Ligne de données I2C - connecter à la broche 20 (SDA) de l'Arduino Mega
- SCL : Ligne d'horloge I2C - connecter à la broche 21 (SCL) de l'Arduino Mega

※ Note:
La disposition des broches sur un module OLED peut différer selon le fabricant et le modèle. Vérifiez toujours et suivez les étiquettes imprimées sur votre module OLED spécifique. Attention !
Ce guide est destiné à un écran OLED qui utilise le pilote SSD1309 I2C. Nous l'avons testé avec un écran OLED SSD1309 de DIYables. Il fonctionne bien, sans problèmes.
Schéma de câblage
Connectez l'écran OLED SSD1309 de 2,42 pouces à l'Arduino Mega selon ce câblage :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| OLED SSD1309 | Arduino Mega |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | 20 (SDA) |
| SCL | 21 (SCL) |
Comment utiliser l'OLED SSD1309 avec Arduino Mega
Installer la bibliothèque DIYables_OLED_SSD1309
- Allez à l'icône Bibliothèques sur le côté gauche de l'IDE Arduino.
- Tapez DIYables_OLED_SSD1309 dans la zone de recherche et cherchez la bibliothèque par DIYables.
- Cliquez sur le bouton Install pour ajouter la bibliothèque.

La bibliothèque DIYables_OLED_SSD1309 dépend de la bibliothèque Adafruit_GFX. Si Adafruit_GFX n'est pas déjà installée, l'IDE Arduino vous demandera automatiquement de l'installer lorsque vous installez DIYables_OLED_SSD1309.
Code Arduino Mega - Afficher "Hello World" sur l'OLED SSD1309
Le code ci-dessous montre comment afficher du texte sur l'écran OLED SSD1309 de 2,42 pouces :
Explication
- Inclure les bibliothèques nécessaires et définir les constantes
- Créer un objet d'affichage avec l'adresse I2C 0x3C
- Initialiser l'affichage dans setup()
- Définir la taille du texte, la couleur et la position du curseur
- Imprimer du texte dans le buffer d'affichage en utilisant print() et println()
- Appeler display.display() pour envoyer le contenu du buffer à l'écran
※ Note:
La macro F() stocke les chaînes de caractères dans la mémoire flash au lieu de la RAM. Cela économise la précieuse RAM de l'Arduino Mega.
Code Arduino Mega - Afficher du texte avec différents formats
Ce code démontre l'affichage de texte avec différentes tailles et formatage de nombres :
Code Arduino Mega - Dessiner des formes sur l'OLED SSD1309
Le code ci-dessous montre comment dessiner des pixels, lignes, rectangles, cercles et triangles :
Fonctions de dessin disponibles :
- drawPixel(x, y, color) - Dessiner un seul pixel
- drawLine(x0, y0, x1, y1, color) - Dessiner une ligne
- drawRect(x, y, w, h, color) - Dessiner un contour de rectangle
- fillRect(x, y, w, h, color) - Dessiner un rectangle rempli
- drawRoundRect(x, y, w, h, radius, color) - Dessiner un rectangle arrondi
- drawCircle(x, y, radius, color) - Dessiner un contour de cercle
- fillCircle(x, y, radius, color) - Dessiner un cercle rempli
- drawTriangle(x0, y0, x1, y1, x2, y2, color) - Dessiner un contour de triangle
- fillTriangle(x0, y0, x1, y1, x2, y2, color) - Dessiner un triangle rempli
Code Arduino Mega - Défilement matériel sur l'OLED SSD1309
Le SSD1309 supporte le défilement basé sur le matériel. Ce code démontre les quatre directions de défilement :
Fonctions de défilement :
- startscrollright(start, stop) - Défilement vers la droite
- startscrollleft(start, stop) - Défilement vers la gauche
- startscrolldiagright(start, stop) - Défilement diagonal vers la droite
- startscrolldiagleft(start, stop) - Défilement diagonal vers la gauche
- stopscroll() - Arrêter le défilement
Les paramètres start et stop définissent la plage de pages (0x00 à 0x07 pour l'écran complet).
Code Arduino Mega - Afficher une image bitmap sur l'OLED SSD1309
Ce code montre comment afficher des images bitmap stockées dans la mémoire du programme :
Pour afficher des images :
- Convertissez votre image en tableau bitmap monochrome (utilisez des outils en ligne ou image2cpp)
- Stockez le tableau dans PROGMEM pour économiser la RAM
- Utilisez drawBitmap(x, y, bitmap, width, height, color) pour afficher
Code Arduino Mega - Ajuster la luminosité/contraste
Contrôlez la luminosité et le contraste de l'écran OLED SSD1309 :
Fonctions de contrôle de la luminosité :
- setContrast(value) - Définir le niveau de contraste (0-255, plus élevé = plus lumineux)
- dim(true/false) - Basculement rapide entre luminosité faible et normale
- invertDisplay(true/false) - Inverser tous les pixels (noir↔blanc)
Code Arduino Mega - Utiliser des polices externes
La bibliothèque Adafruit_GFX inclut les polices FreeFont. Ce code démontre trois polices différentes :
※ Note:
Les fichiers FreeFont sont volumineux. L'Arduino Mega a 256KB de mémoire flash, ce qui est suffisant pour plusieurs polices. Cependant, si vous devez économiser de l'espace, utilisez seulement les polices dont vous avez besoin.
Utilisation des polices :
- Inclure l'en-tête de police : #include <Fonts/FreeSans9pt7b.h>
- Définir la police : display.setFont(&FreeSans9pt7b)
- Revenir par défaut : display.setFont(NULL)
- Lors de l'utilisation de polices externes, la coordonnée Y représente la ligne de base, pas le haut
Dépannage
Si l'écran OLED ne fonctionne pas, essayez ces étapes :
Vérifier l'adresse I2C
L'adresse I2C par défaut est 0x3C, mais certains modules utilisent 0x3D. Exécutez ce scanner I2C pour trouver l'adresse correcte :
Si votre écran utilise 0x3D, changez SCREEN_ADDRESS pour 0x3D dans le code.
Vérifier le câblage
Vérifiez les connexions :
- VCC → 5V
- GND → GND
- SDA → Broche 20 (SDA)
- SCL → Broche 21 (SCL)
Vérifier l'alimentation
Assurez-vous que l'Arduino Mega reçoit une alimentation adéquate via le câble USB ou l'alimentation externe.
Tutoriel vidéo
...VIDEO LINK_VIDEO_ARDUINO_MEGA_SSD1309_OLED_DISPLAY