lunedì 11 aprile 2016

Oled Display I2C

Esistono diversi display utilizzabili con Arduino, in questa guida vedremo comandare un piccolo display Oled con protocollo di comunicazione I2C.


Come passo Zero, ricordo che:
  • Ogni tecnologia di display ha la sua libreria.
  • Ogni dimensione di display ha la sua libreria.
  • Ogni display ha il suo protocollo di comunicazione diverso.
Per poter continuare agevolmente, riporto una libreria molto comune e versatile da installare: https://goo.gl/Y33Cyj

Questa libreria compre una vastissima gamma di monitor, dimensioni e comunicazioni.
Per poter verificare agevolmente i dettagli dei monitor compatibilihttps://goo.gl/Sp6L3w

In questa guida verrà trattata una tipologia molto comune: Oled 128X64 I2C .
  • Oled è la tecnologia del monitor, caratterizzata dal basso spessore del monitor.
  • 128X64 è la dimensione del display.
  • I2C il protocollo di comunicazione.
Controllando nella guida dei monitor compatibili, vedi sopra, si evince che il monitor ha un controllore SSD1306.
Da questo possiamo conoscere la corretta alimentazione, 5V, e come il protocollo I2C comunica.
Il monitor ( tramite SCL & SDA ) può essere collegato soltanto ai pin A5 e A4 dell'Arduino.

Primo esempio


Una volta installata la libreria, andiamo in File - Esempi - U8glib - Hello World .

Colleghiamo SDA = A4 e SCL = A5 .

Subito dopo l' #include "U8glib.h" notiamo una gran numero di commenti.
Ogni commento è un tipo di libreria associata ad ogni tipo di display.

Cerchiamo il nostro display e cancelliamo le altre. Nel nostro caso è:
//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC

Carichiamo il tutto sul nostro Arduino e verifichiamo che compaia la scritta "Hello World" .

Comandi avanzati

Guardiamo più in dettaglio il codice:
 void draw(void) {  
  // graphic commands to redraw the complete screen should be placed here   
  u8g.setFont(u8g_font_unifont);  
  u8g.drawStr( 0, 20, "Hello World!");  
 }  
Per prima cosa, notiamo u8g.setFont, che prende il font da noi specificato.

Il codice immediatamente successivo u8g.drawStr è il comando si scrittura, che si compone di:
  • numero della riga
  • numero di caratteri per riga
  • stringa da scrivere
Per una più dettagliata trattazione dei comandi avanzati: https://goo.gl/uNWtrZ

Nessun commento:

Posta un commento