- 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 compatibili: https://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
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 avanzatiGuardiamo 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