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 con led gialli 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 “
- Driver IC: SSD1306
- Tensione: 3,3 V-5 V DC
- Angolo di visione:> 160 °
- Risoluzione: 128 x 64 pixel
- 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
Pin Interfaccia I2C
Il display dispone di 4 pin di collegamento, ecco la loro funzione:
- GND: terra
- VCC: 3,3 V ~ 5 V
- 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)
Occorre porre l’attenzione sui due pin di alimentazione in quanto potrebbero essere invertiti
Dove acquistare l’OLED
l’OLED può essere acquistato, per esempio, presso il sito Banggood ad un costo di circa 2,5€ più le spese di spedizione
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 “SparkFun Micro OLED”, in questo caso si è installata quella nella versione 1.2.0, una volta caricata sarà mostrata la dicitura “INSTALLED“.
Libreria alternativa
Oltre alla libreria realizzata da SparkFun, se ne potrà utilizzare un’altro tipo, anche in questo caso può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo “ssd1306“, e si dovrà installare quella realizzata da Adafruit + mcauser, una volta caricata sarà mostrata la dicitura “INSTALLED“.
Analogamente, sempre per gestire la parte grafica occorre caricare la libreria grafica “Adafruit GFX Library“, in questo caso si è scelta la versione 1.2.9, una volta caricata sarà mostrata la dicitura “INSTALLED“.
Per maggiori informazioni vedere il link.
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.
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 50 51 52 |
#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 display.display(); // Mostra il contenuto del buffer di visualizzazione iniziale sullo schermo - // la libreria lo inizializza con una schermata iniziale di Adafruit. 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 visualizazione 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(); //Mostrra i testi inseriri delay (2000); } |
Esempio di utilizzo
Il display è istallato su una piccola scheda di sviluppo con ESP 8266 che sarà oggetto di un prossimo articolo.
In questo caso il display mostra i valori di temperatura e umidità misurati da un sensore DHT11.