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:
- Aprire Arduino ide.
- Vai a Schizzo → Includi la libreria → Gestisci le librerie.
- Cercare Adafruit SSD1306 e installalo.
- 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.