Hur man använder en 0,91 "OLED -skärm med Arduino

How to Use a 0.91" OLED Display with Arduino

En 0,91 "OLED -display är en liten högkontrastskärm perfekt för Visa text, grafik och sensordata i Arduino -projekt. Den här guiden kommer att leda dig igenom Ledningar, kodning och visar text och grafik med hjälp av SSD1306-baserad OLED-modul med Arduino.


1. Vad du behöver

Arduinstyrelse (Uno, Mega, Nano, etc.)
0,91 "OLED -display (SSD1306, I2C)
Bulttrådar
Arduino ide installerad

🔹 Notera: Denna handledning fokuserar på I2C -kommunikation, som bara använder Två ledningar (SDA & SCL), vilket gör det idealiskt för enkla projekt.


2. Koppling av 0,91 "OLED till Arduino (I2C -läge)

OLED -skärmstift Arduino uno stift Arduino nano -stift
Vcc 5V 5V
Gard Gard Gard
SDA A4 (SDA) A4 (SDA)
SCL A5 (SCL) A5 (SCL)

🔹 För Arduino Mega: Användning SDA (stift 20) och SCL (stift 21).


3. Installera obligatoriska bibliotek

Installera, installera Adafruit SSD1306 och Adafruit GFX Bibliotek:

  1. Öppna Arduino IDE.
  2. Gå till Skiss → Inkludera bibliotek → Hantera bibliotek.
  3. Leta efter Adafruit SSD1306 och installera det.
  4. Leta efter Adafruit GFX och installera det.

4. Grundläggande kod för att visa text på OLED

Detta exempel initialiserar OLED och skärmar "Hej, 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)
}

🔹 Vad den här koden gör:
✔ Initialiserar SSD1306 Display.
✔ Grafik "Hej, Arduino!" på skärmen.
✔ Användning I2c adress 0x3c (Vissa moduler kan använda 0x3d).


5. Visar grafik (linjer, cirklar, bilder)

Att rita former, ändra koden med Adafruit GFX -funktioner.

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

🔹 Andra ritningsfunktioner:
display.drawLine(x1, y1, x2, y2, color); → Ritar en linje
display.drawCircle(x, y, radius, color); → Ritar en cirkel
display.drawRect(x, y, width, height, color); → Ritar en rektangel


6. Rullande textexempel

Detta exempel rullar text vågrätt över OLED -skärmen.

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

🔹 Rullningsfunktioner:
display.startscrollleft(start, stop); → Bläddra text vänster
display.startscrollright(start, stop); → Bläddra text rätt
display.stopscroll(); → Slutar rulla


7. Felsökningstips

Problem: Visa visar ingenting.
✅ Kontrollera ledningar (SDA & SCL korrekt anslutna).
✅ Se till OLED I2C -adress är 0x3c (eller försök 0x3d).
✅ Använda en I2C För att upptäcka enheten:

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

Problem: Texten är för liten eller för stor.
✅ Justera display.setTextSize(1); (öka för större text).


8. Praktiska applikationer

Visar sensordata -visa realtidsavläsningar från DHT11, BMP280, etc.
Klockvisning - Kombinera med DS3231 RTC -modul att göra en digital klocka.
Menysystem - Använd knappar för att navigera genom menyer.
Batterispänningsindikator - Övervaka effektnivåer i bärbara projekt.


9. Slutsats

Med en 0,91 "OLED med Arduino är ett bra sätt att lägga till visuell utgång till dina projekt. Oavsett om du vill visa text, grafik eller sensordata, den här lilla skärmen erbjuder Hög kontrast och låg effektförbrukning.

Lämna en kommentar

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.