Come utilizzare un display OLED da 0,91 "con Arduino

How to Use a 0.91" OLED Display with Arduino

UN Display OLED da 0,91 " è uno schermo piccolo e ad alto contrasto perfetto per Visualizzazione dei dati di testo, grafica e sensore nei progetti Arduino. Questa guida ti farà passare Cablaggio, codifica e visualizzazione di testo e grafica usando il Modulo OLED a base di SSD1306 con Arduino.


1. Di cosa hai bisogno

Arduino Board (Uno, Mega, Nano, ecc.)
Display OLED 0.91 "(SSD1306, I2C)
Fili jumper
Arduino IDE installato

🔹 Nota: Questo tutorial si concentra su Comunicazione i2c, che usa solo Due fili (SDA e SCL), rendendolo ideale per progetti semplici.


2. Cablaggio dell'OLED 0,91 "ad Arduino (modalità I2C)

Pin del display OLED Arduino Uno Pin Arduino Nano Pin
VCC 5v 5v
GND GND GND
SDA A4 (SDA) A4 (SDA)
SCL A5 (SCL) A5 (SCL)

🔹 Per Arduino Mega: Utilizzo SDA (PIN 20) e SCL (PIN 21).


3. Installazione delle librerie richieste

Prima della codifica, installare il file Adafruit SSD1306 E Adafruit GFX Biblioteche:

  1. Aprire Arduino ide.
  2. Vai a Schizzo → Includi la libreria → Gestisci le librerie.
  3. Cercare Adafruit SSD1306 e installalo.
  4. Cercare Adafruit GFX e installalo.

4. Codice di base per visualizzare il testo su OLED

Questo esempio inizializza l'OLED e viene visualizzato "Ciao 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)
}

🔹 Cosa fa questo codice:
✔ Inizializza il Display SSD1306.
✔ Stampe "Ciao Arduino!" Sullo schermo.
✔ Usi Indirizzo I2C 0x3C (Alcuni moduli possono usare 0x3d).


5. Visualizzazione della grafica (righe, cerchi, immagini)

Da disegnare forme, modifica il codice utilizzando Funzioni GFX Adafruit.

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

🔹 Altre funzioni di disegno:
display.drawLine(x1, y1, x2, y2, color); → Traccia una linea
display.drawCircle(x, y, radius, color); → disegna un cerchio
display.drawRect(x, y, width, height, color); → disegna un rettangolo


6. Esempio di testo scorrevole

Questo esempio scorre il testo orizzontalmente attraverso lo schermo 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() {}

🔹 Funzioni di scorrimento:
display.startscrollleft(start, stop); → Scorri il testo Sinistra
display.startscrollright(start, stop); → Scorri il testo Giusto
display.stopscroll(); → smette di scorrere


7. Suggerimenti per la risoluzione dei problemi

Problema: Visualizza non mostra nulla.
✅ Controllo Cablaggio (SDA e SCL collegato correttamente).
✅ Assicurarsi il L'indirizzo I2C OLED è 0x3C (o prova 0x3D).
✅ Usare un Scanner i2c Per rilevare il dispositivo:

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

Problema: Il testo è troppo piccolo o troppo grande.
✅ Regolare display.setTextSize(1); (Aumento per un testo più grande).


8. Applicazioni pratiche

Visualizzazione dei dati del sensore -Mostra letture in tempo reale da DHT11, BMP280, ecc.
Display orologio - Combina con Modulo RTC DS3231 per fare un orologio digitale.
Sistemi di menu - Usa i pulsanti per navigare attraverso i menu.
Indicatore di tensione della batteria - Monitorare i livelli di potenza nei progetti portatili.


9. Conclusione

Usando un 0,91 "OLED con Arduino è un ottimo modo per aggiungere output visivo ai tuoi progetti. Se vuoi visualizzare Testo, grafica o dati del sensore, questo piccolo schermo offre alto contrasto e basso consumo di energia.

Lascia un commento

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.