Display OLED 0.96″ 128×64 – SSD1306

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.

OLED 0.96 128x64 pixel

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.

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.

OLED 0.96 128x64 pixel

OLED 0.96 128x64 pixel

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.

OLED 0.96 128x64 pixel

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.

OLED 0.96 128x64 pixel

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.

OLED 0.96 128x64 pixel

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.

OLED 0.96 128x64 pixel

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.

OLED 0.96 128x64 pixel

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.

OLED 0.96 128x64 pixel

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.

OLED 0.96 128x64 pixel

Download Sketch

#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.

OLED 0.96 128x64 pixel

Su Shield con DFPlayer Mini

Istallato su uno shield con modulo DFPlayer Mini, che permette di mostrare messaggi