Hoe een OLED -display van 0,91 "te gebruiken met Arduino

How to Use a 0.91" OLED Display with Arduino

0,91 "OLED -display is een klein, hoog contrast scherm perfect voor Tekst-, afbeeldingen- en sensorgegevens weergeven in Arduino -projecten. Deze gids zal je erdoorheen brengen Bedrading, codering en weergave van tekst en afbeeldingen gebruik van de SSD1306-gebaseerde OLED-module met Arduino.


1. Wat je nodig hebt

Arduino Board (Uno, mega, nano, enz.)
0.91 "OLED Display (SSD1306, I2C)
Jumper draden
Arduino Ide geïnstalleerd

🔹 Opmerking: Deze zelfstudie richt zich op I2C -communicatie, die alleen gebruikt Twee draden (SDA & SCL), waardoor het ideaal is voor eenvoudige projecten.


2. Bedrading van de 0,91 "OLED naar Arduino (I2C -modus)

OLED -display pin Arduino Uno Pin Arduino Nano Pin
VCC 5V 5V
GND GND GND
SDA A4 (SDA) A4 (SDA)
SCL A5 (SCL) A5 (SCL)

🔹 Voor Arduino Mega: Gebruik SDA (pin 20) en SCL (pin 21).


3. Installeren van vereiste bibliotheken

Installeer voordat u codert Adafruit SSD1306 En Adafruit gfx bibliotheken:

  1. Open Arduino IDE.
  2. Gaan naar Sketch → Baten Library → Bibliotheken beheren.
  3. Zoeken naar Adafruit SSD1306 en installeer het.
  4. Zoeken naar Adafruit gfx en installeer het.

4. Basiscode om tekst op OLED weer te geven

Dit voorbeeld initialiseert de OLED en displays "Hallo, 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)
}

🔹 Wat deze code doet:
✔ Initialiseert de SSD1306 Display.
✔ Afdrukken "Hallo, Arduino!" op het scherm.
✔ Gebruik I2C -adres 0x3c (Sommige modules kunnen gebruiken 0x3d).


5. Graphics weergeven (lijnen, cirkels, afbeeldingen)

Tekenen vormen, wijzig de code met behulp van Adafruit GFX -functies.

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() {}

🔹 Andere tekenfuncties:
display.drawLine(x1, y1, x2, y2, color); → trekt een lijn
display.drawCircle(x, y, radius, color); → tekent een cirkel
display.drawRect(x, y, width, height, color); → tekent een rechthoek


6. Voorbeeld van scrollende tekst

Dit voorbeeld bladert tekst horizontaal Over het OLED -scherm.

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() {}

🔹 Scrolling -functies:
display.startscrollleft(start, stop); → Scroll -tekst links
display.startscrollright(start, stop); → Scroll -tekst rechts
display.stopscroll(); → Stopt met scrollen


7. Tips voor probleemoplossing

Probleem: Display tonen niets.
✅ Rekening Bedrading (SDA & SCL correct verbonden).
✅ Zorg voor de OLED I2C -adres is 0x3c (of probeer 0x3d).
✅ Gebruik een I2C -scanner Om het apparaat te detecteren:

#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() {}

Probleem: Tekst is te klein of te groot.
✅ Aanpassen display.setTextSize(1); (Verhoging voor grotere tekst).


8. Praktische toepassingen

Sensorgegevens weergeven -Toon realtime lezingen van DHT11, BMP280, etc.
Klokdisplay - Combineer met DS3231 RTC -module om een ​​digitale klok te maken.
Menussystemen - Gebruik knoppen om door menu's te navigeren.
Batterijspanningindicator - Bewaak de stroomniveaus in draagbare projecten.


9. Conclusie

Een 0.91 "OLED met Arduino is een geweldige manier om toe te voegen visuele uitvoer naar uw projecten. Of u nu wilt weergeven tekst-, afbeeldingen- of sensorgegevens, dit kleine scherm biedt hoog contrast en laag stroomverbruik.

Laat een reactie achter

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.