Comment utiliser un écran OLED de 0,91 "avec Arduino

How to Use a 0.91" OLED Display with Arduino

UN Affichage OLED de 0,91 " est un petit écran à contraste élevé parfait pour Affichage des données de texte, de graphiques et de capteurs Dans les projets Arduino. Ce guide vous guidera à travers Câblage, codage et affichage du texte et des graphiques en utilisant le Module OLED basé sur SSD1306 avec Arduino.


1. Ce dont vous avez besoin

Conseil d'administration d'Arduino (Uno, Mega, Nano, etc.)
Affichage OLED 0,91 "(SSD1306, I2C)
Fils de cavalier
Arduino IDE installé

🔹 Note: Ce tutoriel se concentre sur Communication I2C, qui utilise uniquement Deux fils (SDA et SCL), ce qui le rend idéal pour des projets simples.


2. Câblage de 0,91 "OLED à Arduino (mode I2C)

Pin d'affichage OLED Épingle arduino uno Arduino Nano Pin
VCC 5V 5V
GND GND GND
SDA A4 (SDA) A4 (SDA)
SCL A5 (SCL) A5 (SCL)

🔹 Pour arduino mega: Utiliser SDA (broche 20) et SCL (broche 21).


3. Installation des bibliothèques requises

Avant de coder, installez le Adafruit SSD1306 et Adafruit gfx Bibliothèques:

  1. Ouvrir Arduino ide.
  2. Aller à Sketch → Inclure la bibliothèque → Gérer les bibliothèques.
  3. Rechercher Adafruit SSD1306 et l'installez.
  4. Rechercher Adafruit gfx et l'installez.

4. Code de base pour afficher le texte sur OLED

Cet exemple initialise l'OLED et les affichages "Bonjour, Arduino!".

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Define OLED screen size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32

// Initialize OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
    Serial.begin(115200);

    // Start OLED display
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println("SSD1306 allocation failed");
        for (;;);
    }

    display.clearDisplay();  // Clear buffer
    display.setTextSize(1);  // Text size
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(10, 10);
    display.println("Hello, Arduino!");
    display.display(); // Show text on screen
}

void loop() {
    // Nothing here (text is static)
}

🔹 Ce que fait ce code:
✔ Initialise le Affichage SSD1306.
✔ Tirages "Bonjour, Arduino!" à l'écran.
✔ Usages Adresse i2c 0x3c (Certains modules peuvent utiliser 0x3d).


5. Affichage des graphiques (lignes, cercles, images)

Pour dessiner formes, modifier le code en utilisant Fonctions Adafruit GFX.

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();

    // Draw a rectangle
    display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
    
    // Draw a filled circle
    display.fillCircle(90, 16, 10, SSD1306_WHITE);

    display.display();
}

void loop() {}

🔹 Autres fonctions de dessin:
display.drawLine(x1, y1, x2, y2, color); → trace une ligne
display.drawCircle(x, y, radius, color); → dessine un cercle
display.drawRect(x, y, width, height, color); → dessine un rectangle


6. Exemple de texte de défilement

Cet exemple défile horizontalement à travers l'écran OLED.

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();
    
    display.setTextSize(1);
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(0, 10);
    display.println("Scrolling Text...");
    display.display();
    
    // Start scrolling
    display.startscrollleft(0x00, 0x0F); 
}

void loop() {}

🔹 Fonctions de défilement:
display.startscrollleft(start, stop); → STROLL Texte gauche
display.startscrollright(start, stop); → STROLL Texte droite
display.stopscroll(); → Arrête de faire défiler


7. Conseils de dépannage

Problème: Affichez sans rien montrer.
✅ Vérifier Câblage (SDA et SCL correctement connectés).
✅ Assurer le L'adresse I2C OLED est 0x3C (ou essayez 0x3d).
✅ Utiliser un Scanner I2C Pour détecter l'appareil:

#include <Wire.h>
void setup() {
    Wire.begin();
    Serial.begin(115200);
    Serial.println("Scanning...");
    
    for (byte address = 8; address < 120; address++) {
        Wire.beginTransmission(address);
        if (Wire.endTransmission() == 0) {
            Serial.print("Found I2C device at 0x");
            Serial.println(address, HEX);
        }
    }
}
void loop() {}

Problème: Le texte est trop petit ou trop grand.
✅ Ajuster display.setTextSize(1); (augmenter pour un texte plus grand).


8. Applications pratiques

Affichage des données du capteur - Afficher les lectures en temps réel de DHT11, BMP280, etc.
Affichage d'horloge - combiner avec Module DS3231 RTC pour faire une horloge numérique.
Systèmes de menu - Utilisez des boutons pour naviguer dans les menus.
Indicateur de tension de la batterie - surveiller les niveaux de puissance dans les projets portables.


9. Conclusion

En utilisant un 0,91 "OLED avec Arduino est un excellent moyen d'ajouter sortie visuelle à vos projets. Que vous souhaitiez afficher Données de texte, de graphiques ou de capteurs, ce petit écran propose contraste élevé et faible consommation d'énergie.

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.