0.95inch RGB OLED

I display OLED sono sempre più utilizzati ed ho deciso quindi di acquistare e provare il display 0.95inch RGB OLED.

0.95inch RGB OLED

I modelli di display OLED disponibili in combinazione con i microcontrollori come Arduino sono molti e ciascuno ha delle caratteristiche specifiche che ho voluto provare, per cui ne ho acquistati 3 modelli differenti:

in particolare il primo della lista lo potrai provare con le istruzioni riportate in questo primo articolo dedicato ai display di questo tipo.

Caratteristiche 0.95inch RGB OLED

Nel sito del produttore puoi trovare due tabelle, la prima dedicata alle caratteristiche del display:

0.95inch RGB OLED key

in cui trovi il Driver Chip: SSD1331 il tipo di interfaccia SPI, la risoluzione in pixel 96×64 ma sopratutto il numero di colori che questo display può gestire 65K ossia 65536 colori, noti anche come Full RGB.

La seconda tabella descrive i pin di interfaccia, anche serigrafati sul display stesso:

0.95inch RGB OLED pin interface

in cui oltre a i soliti

  • +5v ( VCC )
  • Ground ( GND )
  • DATA ( DIN )
  • CLOCK ( CLK )
  • Chip selection ( CS )

trovi anche altri due pin da collegare:

  • Command signal ( D/C ): necessario per comunicare al display se le informazioni che gli stanno arrivando sono comandi o dati da visualizzare;
  • Reset ( RES o RST ): con cui il microcontrollore invia il seganle di reset al display

Libreria 0.95inch RGB OLED

Come libreria per utilizzare questo display puoi cercare tra le librerie installabili nell’IDE, io ho trovato due librerie che possono gestire i display di questo tipo, ossia basati su SSD1331:

0.95inch RGB OLED download uclib

ho deciso di installare e provare la libreria ucglib utile per controllare non solo questo display ma anche altri modelli che in futuro potrei aver necessità di provare.

Collega il display 0.95inch RGB OLED

Il collegamento del display deve avvenire mediante il collegamento di 7 cavetti di cui i primi due serviranno per alimentare il display da arduino o genuino, mentre i restanti 5 dovranno essere collegati rispettivamente come riportato in tabella:

Display OLED RGB Arduino/Genuino
 DIN 11
 CLK 13
 CS 10
D/C 9
RES 8

come puoi vedere anche nella foto lato display 0.95inch RGB OLED:

0.95inch RGB OLED connessioni display SPI

e lato arduino / genuino:

0.95inch RGB OLED connessione arduino SPI

anche se questi pin potrai cambiarli qualora decidessi di usare una interfaccia SPI software che la libreria è in grado di generare, ma lo leggerai nella descrizione del codice.

Primo esempio test della libraria ucglib

Il primo esempio che puoi eseguire si chiama proprio “Hello World” e lo trovi tra gli esempi rilasciati con la libreria ucglib:

/*

  HelloWorld.ino
  
  A very simple example for Ucglib

  Universal uC Color Graphics Library
  
  Copyright (c) 2014, olikraus@gmail.com
  All rights reserved.

  Redistribution and use in source and binary forms, with or 
  without modification, are permitted provided that the following 
  conditions are met:

  * Redistributions of source code must retain the above copyright 
    notice, this list of conditions and the following disclaimer.
    
  * Redistributions in binary form must reproduce the above 
    copyright notice, this list of conditions and the following 
    disclaimer in the documentation and/or other materials provided 
    with the distribution.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

  18 Feb 2014:
    ROM Size	Font Mode
    9928		NONE
    10942		TRANSPARENT	(1014 Bytes)
    11650		SOLID  (1712 Bytes)
    12214		TRANSPARENT+SOLID
  
  
*/

#include <SPI.h>
#include "Ucglib.h"

    
/*
  Hardware SPI Pins:
    Arduino Uno		sclk=13, data=11
    Arduino Due		sclk=76, data=75
    Arduino Mega	sclk=52, data=51
    
  >>> Please uncomment (and update) one of the following constructors. <<<  
*/

Ucglib_SSD1331_18x96x64_UNIVISION_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);

void setup(void)
{
  delay(1000);
  ucg.begin(UCG_FONT_MODE_TRANSPARENT);
  //ucg.begin(UCG_FONT_MODE_SOLID);
  ucg.clearScreen();
}

void loop(void)
{
  //ucg.setRotate180();
  ucg.setFont(ucg_font_ncenR12_tr);
  ucg.setColor(255, 255, 255);
  //ucg.setColor(0, 255, 0);
  //ucg.setColor(1, 255, 0,0);
  
  ucg.setPrintPos(0,25);
  ucg.print("Hello World!");


  delay(500);  
}

nel codice sono presenti numerosi commenti e la licenza sotto cui la libreria viene rilasciata fino alla linea 46, incluse alcune note sul consumo di memoria usando le modalità TRANSPARENT e SOLID per lo sfondo;

linea 58: ti invita a decommentare l’inizializzazione della libreria ucglib in corrispondenza dei display utilizzato e del tipo di collegamento che hai eseguito;

linea 61: inizializzi il display usando i pin definiti nei collegamenti sopra ed utilizzando la modalità software SPI che utilizza i pin 8,9,10,11,13 per comunicare con il display. Esiste una modalità di uso del display di tipo hardware SPI che puoi provare e che descriverò in altri articoli;

linee 66-70: nel setup() dello sketch il primo comando è un delay di 1000 ( 1 sec ) necessario all’accensione del display stesso. Successivamente inizializzi il diplay con la modalità UCG_FONT_MODE_TRANSPARENT e vedi che subito sotto è definita e commentata una line di inizializzazione con la modalità UCG_FONT_MODE_SOLID la cui funzione la analizzerò in prossimi esperimenti. Infine pulisci lo schermo prima di passare al ciclo loop();

linea 74: è commentata, la useremo poi, e serve a far ruotare l’orientamento del display di 180°;

linea 75: imposti il font da utilizzare per il testo in ucg_font_ncenR12_tr, trovi le definizioni dei font supportati nel wiki della libreria di cui ho riportato il link sopra;

linea 76: imposta il colore del test, nell’esempio il bianco ( 255,255,255 );

linee 77-78: sono commentate ed indicano altre due modi in cui puoi definire il colore del font, vedi documentazione della libreria;

linea 80: imposta la posizione in cui vuoi che sia scritto il tuo testo 0 come X e 25 come Y;

linea 81: scrivi sul display il testo “Hello World!”;

linea 84: attendi un tempo di 500 millisecondi prima di ricominciare con il loop.

Come hai visto nelle foto il testo mi risulta capovolto rispetto al verso di lettura e posizione del display, ma questo non è un problema: decommentando la linea 74 e ricaricando lo sketch otterrai che il testo sarà ruotato di 180° rispetto all’orientamento originale e vedrai:

0.95inch RGB OLED 180 rotation text

Ora possiedi sufficienti elementi per procedere con la sperimentazione di questo display.

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/0-95inch-rgb-oled.html

3 pings

  1. […] rispetto all’articolo di test del display non è variato nulla nel collegamento tra arduino o genuino ed il display oled, pertanto ti invito a ricostruire i collegamenti come mostrato nell’articolo […]

  2. […] tipo di display lo avevo linkato già parlando dei suo fratello minore da 0.95 inch in questo articolo di luglio 2016 e si tratta di un OLED da 1.3 inch con risoluzione […]

  3. […] in passato ho testato e scritto un articolo display in abbinamento ad un arduino uno e usando le lbrerie […]

Lascia un commento

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.