Cum se folosește un ecran OLED de 0,91 "cu Arduino

How to Use a 0.91" OLED Display with Arduino

Afișaj OLED de 0,91 " este un ecran mic, cu contrast ridicat, perfect pentru Afișarea datelor de text, grafică și senzori În proiectele Arduino. Acest ghid vă va parcurge Cablarea, codificarea și afișarea textului și a graficii folosind Modul OLED bazat pe SSD1306 cu Arduino.


1. Ce ai nevoie

Board Arduino (UNO, Mega, Nano, etc.)
Ecran OLED de 0,91 "(SSD1306, I2C)
Fire de jumper
Arduino IDE instalat

🔹 Nota: Acest tutorial se concentrează pe Comunicare I2C, care folosește numai Două fire (SDA și SCL), făcându -l ideal pentru proiecte simple.


2. Cablarea OLED de 0,91 "către Arduino (modul I2C)

Pin de afișare OLED Arduino Uno Pin Arduino Nano Pin
VCC 5V 5V
GND GND GND
SDA A4 (SDA) A4 (SDA)
SCL A5 (SCL) A5 (SCL)

🔹 Pentru Arduino Mega: Utilizare SDA (PIN 20) și SCL (pinul 21).


3. Instalarea bibliotecilor necesare

Înainte de codare, instalați Adafruit SSD1306 şi Adafruit GFX Biblioteci:

  1. Deschide Arduino IDE.
  2. Du -te la Schiță → Includeți biblioteca → Gestionați bibliotecile.
  3. Caută Adafruit SSD1306 și instalați -l.
  4. Caută Adafruit GFX și instalați -l.

4. Cod de bază pentru afișarea textului pe OLED

Acest exemplu inițializează OLED și afișaje "Bună ziua, 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 face acest cod:
✔ Inițializează Afișaj SSD1306.
✔ Imprimeuri "Bună ziua, Arduino!" pe ecran.
✔ Utilizări Adresa I2C 0x3c (Unele module pot utiliza 0x3d).


5. Afișarea graficii (linii, cercuri, imagini)

A desena Forme, modificați codul folosind Funcții 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() {}

🔹 Alte funcții de desen:
display.drawLine(x1, y1, x2, y2, color); → desenează o linie
display.drawCircle(x, y, radius, color); → desenează un cerc
display.drawRect(x, y, width, height, color); → Desenează un dreptunghi


6. Exemplu de text de defilare

Acest exemplu derulează text orizontal Peste ecranul 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() {}

🔹 Funcții de defilare:
display.startscrollleft(start, stop); → Textul de defilare stânga
display.startscrollright(start, stop); → Textul de defilare corect
display.stopscroll(); → Opriți defilarea


7. Sfaturi de depanare

Problemă: Afișare nu arată nimic.
✅ Verifica cabluri (SDA și SCL conectate corect).
✅ Asigurați -vă Adresa OLED I2C este 0x3c (sau încercați 0x3D).
✅ Folosiți un Scaner I2C Pentru a detecta dispozitivul:

#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ă: Textul este prea mic sau prea mare.
✅ Regla display.setTextSize(1); (Creșterea pentru un text mai mare).


8. Aplicații practice

Afișarea datelor senzorului -Afișați lecturi în timp real de la DHT11, BMP280, etc.
Afișare ceas - Combinați cu DS3231 Modul RTC Pentru a face un ceas digital.
Sisteme de meniu - Folosiți butoane pentru a naviga prin meniuri.
Indicator de tensiune a bateriei - Monitorizați nivelurile de putere în proiecte portabile.


9. Concluzie

Folosind a 0,91 "OLED cu Arduino este o modalitate excelentă de a adăuga ieșire vizuală la proiectele tale. Indiferent dacă doriți să afișați Text, grafică sau date senzor, acest mic ecran oferă contrast ridicat și consum redus de energie.

Lasă un comentariu

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.