Ultima modifica il 12 Settembre 2026 by Adriano
Il display OLED 0.96 128×64 pixel è un piccolo modulo particolarmente utilizzato nei progetti elettronici grazie alle sue dimensioni compatte e alla buona leggibilità.
Questo display OLED da 0,96″ dispone di una risoluzione di 128×64 pixel, utilizza il diffuso driver SSD1306 e comunica tramite interfaccia I2C, semplificando notevolmente il collegamento con schede come Arduino, ESP8266 ed ESP32.
La tecnologia OLED consente di ottenere un elevato contrasto e un’ottima visibilità senza la necessità di una retroilluminazione. Il display può essere utilizzato per visualizzare testi, dati provenienti da sensori, simboli ed elementi grafici.

Il modulo è disponibile in diverse colorazioni: con pixel bianchi, blu o gialli, oppure nella caratteristica versione bicolore, con una fascia superiore con pixel gialli e la restante parte del display di colore blu.
Indice
Descrizione
La tipologia OLED (Organic Light Emitting Diode) indica che non solo il display è molto luminoso e chiaro con un elevato rapporto di contrasto, ma ha un consumo energetico molto inferiore rispetto ad altri display tecnologie come l’LCD retroilluminato; è anche molto visibile sia in condizioni di oscurità totale che di luce intensa.
Per interfacciare il modulo, il display utilizza un’interfaccia seriale I2C che richiede solo due pin di dati. Il circuito di reset è a bordo e significa che non è necessario un pin di reset aggiuntivo.


Schema elettrico
Il circuito del display OLED da 0.96 ” da 128×64 pixel, è molto semplice in quanto il tutto è gestito dal driver tipo SSD1306, oltre al display sono presenti pochi altri componenti.

Caratteristiche
- Dimensione: 0.96 “
- Risoluzione: 128 x 64 pixel
- Driver IC: SSD1306
- Tensione: 3,3 V-5 V DC
- Basso consumo energetico: 0,06 W in visualizzazione normale
- Angolo di visione:> 160 °
- Temperatura di lavoro: -30 ° C ~ 70 ° C
- Display: 2 file di giallo, 6 righe di blu
- Dimensioni del modulo: 29,28 x 27,1 mm (LW)
- Materiale dello schermo: vetro
- Durata non è inferiore a 16000 ore
Pin Interfaccia
Il display dispone di 4 pin di collegamento, ecco la loro funzione:
- VCC: 3,3 V ~ 5 V
- GND: terra
- SCL: I2C Serial Clock (UNO: A5; MEGA: 21) – High level 2.2V-5.5V)
- SDA: I2C Serial Data (UNO: A4; MEGA: 20) – High level 2,2 V-5,5 V)
Pin di alimentazione
Occorre porre l’attenzione sui due pin di alimentazione in quanto potrebbero essere invertiti.

Sono attualmente disponibili dei display che riportano sul lato componenti la sigla JMDO.96C.1 che permettono di adattare i due pin a seconda nella necessita.

Questo è possibile per la presenza di due piazzole presenti sul PCB, a seconda di come sono cortocircuitati, permettono di invertire i due pin di alimentazione.
Normalmente il cortocircuito è realizzato tramite due resistenze SMD dal valore di 0 Ω, ma può essere realizzato semplicemente con una goccia di stagno.

Dove acquistare l’OLED
l’OLED a pixel bianchi, può essere acquistato sul sito Futura Elettronica, il codice prodotto è 686-OLED096C, ricordate che gli abbonati a Elettronica In usufruiscono automaticamente del 10% di sconto.
l’OLED con colorazione Blu-Giallo, può essere acquistato sul sito Homotix, il codice prodotto è HMTOLEDBY, ricordate di inserire il codice “ADRIROBOT” per ottenere uno sconto del 3%.
Altra possibilità per l’acquisto dell’OLED nelle quatto colorazioni possibili, può essere acquistato sul sito TechMaker, il codice prodotto è CE482673-YB, ricordate di inserire il codice “ADRIROBOT” per ottenere uno sconto del 3%.
Tipologia di involucro
Il display vi potrà arrivare all’interno di un busta antistatica oppure all’interno di una piccola scatolina. Alcune vi arriverà con la pin strip già saldata, oppure ve ne sarà fornita una che dovrete saldare autonomamente.

Libreria di gestione
Per utilizzare il display OLED è necessario installare l’apposita libreria. Può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo di ricerca “Adafruit_SSD1306“.
Sarà anche mostrata una finestra che segnala che la libreria ha una dipendenza con la libreria grafica “Adafruit GFX Library“. Procedete premendo su “Install all”.
Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria

Test del modulo con Arduino
Per il test del display si è realizzato il semplice circuito sotto riportato utilizzando come scheda di controllo una scheda Arduino UNO, il display è stato montato su una piccola breadboard.


Verifica dell’indirizzo I2C
Per prima cosa andiamo a scoprire e verificare l’indirizzo i2c del display tramite lo Sketch i2c_scan che troveremo nella sezione “File” –> “Esempi” –> “Wire”–> “i2c_scaner” dell’IDE di Arduino.

Carichiamolo sulla nostra scheda ed apriamo il monitor seriale con il tasto

Il risultato sarà simile al seguente:

Se non leggiamo nulla potremmo aver invertito i cavi del collegamento I2C , provate ad invertirli.
Se tutto è corretto, leggeremo il suo indirizzo che è 0x3C, comune ad altri display basati sul driver SSD1306 come quello citato nell’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306
L’indirizzo non è possibile modificarlo nel caso si utilizzino più sensori o magari si abbiano altre periferiche I2C con lo stesso indirizzo.
Video del test
Sketch per il test del modulo
Sotto è riportato lo Sketch utilizzato per testare il funzionamento del display, occorre verificare che l’indirizzo del vostro modulo sia 0x3C, nel caso fosse diverso occorrerà modificarlo.

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define OLED_ADDR 0x3C //verificare che sia corretto per il proprio modello
#define SCREEN_WIDTH 128 // Larghezza del display OLED in pixels
#define SCREEN_HEIGHT 64 // Altezza del display OLED in pixels
// Creiamo istanza del display connesso tramite I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT);
void setup() {
display.begin( SSD1306_SWITCHCAPVCC, OLED_ADDR);
// Avviamo il display pronto a ricevere le informazioni da visualizzare
delay(2000); // Pausa di 2 secondi
}
void loop() {
display.clearDisplay(); //Pulisce il buffer
display.display();
//Mostra i colori dello schermo
display.fillRect(0, 0, 128, 64, WHITE);
display.display();
delay(1000);
// Ripulisce lo schermo
display.clearDisplay(); //Pulisce il buffer
display.display();
// visualizza un pixel in ogni angolo dello schermo
display.drawPixel(0, 0, WHITE);
display.drawPixel(127, 0, WHITE);
display.drawPixel(0, 63, WHITE);
display.drawPixel(127, 63, WHITE);
// Mostra alcune linee
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(15, 5); // Imposta le coordinate di visualizzazione
display.println("WWW.ADRIROBOT.IT");
// Dato che stiamo usando la parte superiore dell'OLED, il testo sarà in giallo
display.setTextSize(2); //aumenta grandezza del carattere
display.setCursor(25, 20);
display.println("DISPLAY");
display.setCursor(30, 42);
display.println("128x64");
display.display(); //Mostra i testi inseriti
delay (2000);
}
Test del modulo con ESP32-C3 Supermini
Vediamo ora di collegare il display ad una scheda ESP32-C3 Supermi. Sotto lo schema

Per Caricare il programma dovrai seguire questi passaggi.
Impostazione corretta della scheda
Per caricare il proprio sketch occorre selezionare la nostra scheda.
Per cui si andrà sotto “Gestore Schede“, “esp32” e si sceglierà “ESP32C3 Dev Module”

si dovrà anche verificare la sua impostazione. Il mio consiglio è di modificare due impostazioni
- “USB CDC On Boot” ponendola su “Enabled“
- “Erase All Flash Before Sketch Upload” ponendola su “Enabled“

A questo punto si potrà collegare la scheda e quando il SO riconoscerà la scheda si verificherà su quale porta è stata collegata, nel nostro caso su “COM4“.


Ora la scheda è pronta per essere utilizzata.
Sotto il codice utilizzato
#include <wire.h>
#include <adafruit_gfx.h>
#include <adafruit_ssd1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// Dichiarazione display (indirizzo I2C solitamente 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
// Inizializzazione I2C sui pin 8 (SDA) e 9 (SCL)
Wire.begin(8, 9);
// Avvio display
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 0);
display.println("ESP32-C3 SuperMini");
display.setCursor(0, 20);
display.println("OLED 128x64 0.96 inc");
display.println("Color: Y/B");
display.println("TEST - OK");
display.setCursor(15, 50);
display.println("www.adrirobot.it");
display.display();
}
void loop() {
// Il loop rimane vuoto per questo test statico
}

Alcuni esempio di utilizzo
Su scheda di sviluppo con ESP 8266 12F
Il display è istallato su una piccola scheda di sviluppo con ESP 8266 12F. In questo caso il display mostra i valori di temperatura e umidità misurati da un sensore DHT11.
Su Shield con DFPlayer Mini
Istallato su uno shield con modulo DFPlayer Mini, che permette di mostrare messaggi






