Il display OLED 128×64 da 0,96 pollici è un modulo compatto e molto usato nei progetti elettronici. Usa il driver SSD1306 e comunica via I2C, quindi si collega ad Arduino, ESP8266 ed ESP32 con pochi fili. Mostra testi, dati dei sensori, simboli e grafica. AdriRobot lo ha provato con Arduino UNO e con ESP32-C3 SuperMini.
Display OLED 128×64: tecnologia e colori
OLED sta per Organic Light Emitting Diode. Ogni pixel emette luce propria, quindi il contrasto è alto e la retroilluminazione non serve. I consumi sono inferiori a quelli di un LCD retroilluminato e la lettura resta buona sia al buio sia con luce intensa. Il modulo esiste con pixel bianchi, blu o gialli, oppure nella versione bicolore, con una fascia superiore gialla e il resto blu.
- dimensione 0,96 pollici, risoluzione 128 × 64 pixel, driver SSD1306;
- alimentazione da 3,3 a 5 V, consumo di 0,06 W in visualizzazione normale;
- angolo di visione superiore a 160°;
- temperatura di lavoro da -30 a +70 °C;
- schermo in vetro, durata non inferiore a 16.000 ore;
- dimensioni del modulo: 29,28 × 27,1 mm.
Pin, indirizzo I2C e alimentazione
Il connettore ha quattro pin: VCC (3,3-5 V), GND, SCL e SDA. Il circuito di reset è a bordo, perciò non serve un pin in più. Su Arduino UNO i pin I2C sono A5 per SCL e A4 per SDA, su Mega sono il 21 e il 20.
Attenzione ai due pin di alimentazione, perché su alcuni moduli l’ordine è invertito. I display marcati JMDO.96C.1 permettono di scegliere: due piazzole sul PCB, cortocircuitate con resistenze SMD da 0 Ω o con una goccia di stagno, invertono i due pin. Prima di collegare conviene quindi controllare la serigrafia.

L’indirizzo I2C è 0x3C, lo stesso di altri display con SSD1306, e non si può modificare. Se sul bus ci sono altre periferiche con quell’indirizzo serve perciò un’altra soluzione.
Test con Arduino UNO
Per il test si monta il display su una piccola breadboard e lo si collega ad Arduino UNO. Prima si legge l’indirizzo con lo sketch i2c_scanner (File, Esempi, Wire): se non compare nulla, si provano a scambiare i fili SDA e SCL. Poi si installa la libreria Adafruit SSD1306 dal Gestore librerie, accettando con Install all anche la dipendenza Adafruit GFX.
Poi lo sketch di prova riempie lo schermo, disegna un pixel in ogni angolo e scrive alcune righe di testo. Sul modello bicolore, infatti, la prima riga esce in giallo perché sta nella fascia alta.

Test con ESP32-C3 SuperMini

Con la ESP32-C3 SuperMini il display usa 3,3 V, GND, GPIO9 come SCL e GPIO8 come SDA. Nell’IDE si sceglie ESP32C3 Dev Module e si attivano USB CDC On Boot ed Erase All Flash Before Sketch Upload, come nelle altre prove. Infine lo sketch inizializza l’I2C sui pin 8 e 9, avvia il display all’indirizzo 0x3C e scrive alcune righe di testo.
AdriRobot lo ha usato anche su una scheda con ESP8266 12F, per mostrare temperatura e umidità di un DHT11, e su uno shield con DFPlayer Mini, per stampare messaggi. Il modello con pixel bianchi è su FuturaShop come display OLED I2C 0,96 pollici.
Fonte: l’articolo originale di AdriRobot riporta lo schema del circuito, gli sketch scaricabili e il video del test.
