Questo display di tipo OLED da 0.96 ” ha una risoluzione di 128×64 pixel, sfrutta il driver SSD1306 e si interfaccia tramite la connessioni I2C.
Il display ha la particolarità di avere una parte superiore di colore giallo e quella inferiore 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 può essere acquistato sul sito Homotix, il codice prodotto è HMTOLEDBY, ricordate di inserire il codice “ADRIROBOT” per ottenere uno sconto del 3%.
l’OLED può essere acquistato sul sito TechMaker, il codice prodotto è CE482673-YB, ricordate di inserire il codice “ADRIROBOT” per ottenere uno sconto del 3%.
Nel blister antistatico che vi sarò fornito, un presente un pinstrip a 4 pin 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
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #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); } |
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