Display monocromo OLED 128x32
interfaccia I2C

Ultimo aggiornamento 26 febbraio 2018


JLCPCB - 10 PCB per $ 2 (100 * 100 mm, 2-layer)
Il più grande produttore di PCB in Cina, oltre 300.000 clienti e oltre 10.000 ordini online al giorno
Vedi l'interno della fabbrica di PCB: https://www.youtube.com/watch?v=_XCznQFV-Mw


Indice

Descrizione

Questo display monocromo 128x32 I2C OLED prodotto dalla Adafruit  (codice prodotto 931) presenta diagonale di 1" , ma è molto leggibile data dall'alto contrasto di un display OLED.
Il display presenta 128x32 singoli pixel bianchi OLED, ciascuno è acceso o spento dal chip controller, in questo caso non è richiesta alcuna retroilluminazione e questo riduce l'assorbimento di potenza necessaria.
L'integrato pilota è il modello SSD1306 (datasheet) che comunica tramite il protocollo I2C, sono necessari solo 3 pin per comunicare con il chip sul display OLED, due dei quali sono il pin I2C dati / clock.
Il display OLED e il driver richiedono un'alimentazione di 3,3 V e 3,3 V sono i livelli logici per la comunicazione.
Per rendere più semplice il collegamento, sul piccolo modulo è stato aggiunto un regolatore di tensione a 3.3V e un traslatore il livello, questo lo rende compatibile con qualsiasi microcontrollore a 5V come Arduino.
I requisiti di alimentazione dipendono un po'  da quanto del display è acceso ma in media il display assorbe circa 20mA dalla rete di alimentazione 3.3V . Costruito nel driver OLED è una semplice pompa di carica switch-cap che trasforma 3.3V - 5V in un drive ad alta tensione per il display OLED.
Per l'utilizzo è necessario un microcontrollore con più di 512 byte di RAM in quanto il display deve essere tamponata.
È disponibile per Arduino l'apposita libreria che viene fornito con il codice di esempio . La biblioteca può stampare testo, bitmap , pixel , rettangoli, cerchi e linee . Esso utilizza 512 byte di RAM in quanto ha bisogno di tamponare l'intero schermo ma è molto veloce! Il codice è semplice da adattarsi a qualsiasi altro microcontrollore .

Caratteristiche

Dimensioni:  
PCB : 20mm x 35mm ( 0.8 " x 1.4" )
Area di visualizzazione : 7mm x 25mm
Spessore : 4mm
Dettagli del display:  
Diagonale del monitor : 0.91 "
Numero di pixel : 128 × 32
Profondità colore : Monocromatico (Bianco)
Modulo di costruzione : COG
Modulo Dimensioni ( mm ) : 46.30 × 11.50 × 1.45
Dimensioni del pannello ( mm ) : 30.00 × 11.50 × 1.45
Area attiva ( mm ) : 22,384 × 5,584
Pixel Pitch ( mm ) : 0.175 × 0.175
Formato Pixel ( mm ) : 0,159 × 0,159
Duty : 1/32
Luminosità ( cd/m2 ) : 150 ( Typ ) @ 7.25V
Interfaccia: I2C
IndirizzoI2C: 7 bit 0x3C & 0x3D , selezionabile con ponticelli

Circuito elettrico

 

Sezione del display/processore, basata sull'integrato SSD1306 che è un single-chip CMOS driver  per display tipo OLED / PLED ( Organic Light Emitting Diode, Polymer light-emitting diodes).

Sezione del circuito che permette di traslare i livelli tra i 3.3 e i 5V. Sono utilizzato dei transistore FET tipo BSS138

BSS138 - Power MOSFET 200 mA, 50 V N−Channel SOT−23
  

Codice RS - 545-2529
Piedinatura Datasheet Foto del transistor

Sezione alimentatrice formata dal regolatore tipo RT9193 di tipo LDO Ultra-Low Noise, Ultra-Fast che fornisce in uscita 3,3V con 300mA di corrente

RT9193 300mA, Ultra-Low Noise, Ultra-Fast CMOS LDO Regulator

Piedinatura Datasheet Foto dell'integrato

Connettore d'ingresso con i pin di alimentazione e d'interfaccia

Librerie per Arduino

Per utilizzare il display OLED monocromatico, è necessario installare le librerie Arduino. Adafruit SSD1306
Per cui occorre scaricare la libreria di supporto per il display OLED presente su  GitHub, oppure fare clic su questo link per scaricare il file zip.
Per il giusto funzionamento del display, occorrerà modificare all’interno del file Adafruit_SSD1306.h della libreria, la linea che definisce la dimensione del display per cui si dovranno cercare le linee:

 #define SSD1306_128_64
//#define SSD1306_128_32

 E di dovrà modificarle in:

 //#define SSD1306_128_64
#define SSD1306_128_32

per gestire la parte grafica del modulo occorre anche scaricare le librerie grafiche presente su  GitHub, oppure fare clic su questo link per scaricare il file zip.

 

Esempio di utilizzo

Articoli in cui si parla del display

Molti lettori sapranno che dal 16 gennaio 2014 è in vendita, presso le edicole, l'opera ROBI edita dalla DeAgostini, la cui vendita on-line, invece, era già iniziata l'11 novembre 2013. Venduta a fascicoli, permette la costruzione di un piccolo robot umanoide alto 34 cm, i movimenti del corpo sono dati da 20 servomotori digitali, mentre una scheda di riconoscimento vocale, gli permette di comprendere dei comandi e rispondere a tono in lingua italiana.
Il robot non dispone, però, di sensori quali: temperatura, luminosità, controllo del consumo della batteria, una possibilità era di realizzare un piccolo modulo da inserire all'interno del corpo del robot.
L’occasione è arrivata con il contest dal titolo “50 schede in regalo basate su ARM Cortex: Infineon premia le vostre idee che offre l’opportunità di ricevere scheda XMC 2GO un Evaluation Kit per microcontrollore basata su un XMC1100.
Vedremo in quest’articolo quali sono i componenti scelti per la sua realizzazione.

Il sensore e il display qui utilizzati erano già stati presentati nell’articolo “L'Evaluation Kit XMC 2GO di Infineon come scheda sensori per i robot ROBI".
Il sensore tipo INA219 prodotto dalla Texas Instruments, permette di misurare la tensione e la corrente fornite da una fonte di energia, nel nostro caso una batteria, comunicando i dati mediante un’interfaccia I2C.
L’integrato controlla sia la caduta shunt sia la tensione di alimentazione, con tempi di conversione e filtraggio programmabili. I dati vengono mostrati su un piccolo display di tipo OLED, anch'esso connesso tramite l’interfaccia I2C.
In quest’articolo, ne vedremo l’utilizzo per controllare il funzionamento di un piccolo motore elettrico. Per la sua gestione, si è utilizzato un modulo Arduino, rendendo il dispositivo facile da programmare usufruendo delle librerie già disponibili.

 

Creazione bitmap

È possibile creare un'immagine bitmap per visualizzare facilmente con il programma LCD Assistant.
LCD Assistant è uno strumento gratuito per la conversione di bitmap monocromatici per matrici di dati di facile utilizzo con programmi per sistemi embedded con microcontrollori e display grafici LCD monocromatici.

In primo luogo si dovrà creare la vostra immagine utilizzando un qualsiasi tipo di software di grafica come Photoshop o Paint e salvare come Monochrome Bitmap (bmp).
Per convertire un'immagine da un file bitmap in array di dati selezionare dal comando di menu File "Load image" Next .

Nel campo Size deve apparire le dimensioni del display, nel nostro caso Width 128 e Height 32.
Nel campo Pixel/byte lasciare indicato 8. Nel capo Table name indicare il nome che sarà poi da indicare nel programma.

A questo punto si potrà salvare il file selezionando il comando dal menu "File " "Salva output" . L'array di dati sarà salvato nel file specificato con estensione "CCP".
Poi, basta includere questo file nel progetto e utilizzare il nome dell'array come parametro per la funzione che visualizza bitmap sul display LCD.

 

Elenco revisioni:
26/02/2018 Aggiornato pagina
17/10/2014 Inserito segnalazione nuovo articolo su Elettronica Open Source
30/05/2014 Emissione preliminare