

OLED (siglas en inglés de Organic Light-Emitting Diode, en español: diodo orgánico de emisión de luz) es una tecnologia usada para fabricar pantallas de todos los tama&mtilde;os.
Simplificandolo se basa en una capa de componentes organicos que ante una estimulación eléctrica reaccionan desprendiendo Luz.
Las principales ventajas de la tecnologia OLED son:
- Pantallas muy delgadas
- Amplio grado de luz y contraste
- Bajo consumo
Actualmente podemos encontrar pantallas OLED de multiples tamaños y a muy diversos precios, pero sobre todo, que es lo que nos interesa para este tutorial, con conexión SPI que nos permite conectarlo fácilmente a nuestro Arduino.
La disposición de los pines puede variar en función del modelo qu compremos, por lo que es importante fijarnos en la serigrafía del conector y asegurarnos de que se cumpla esta correspondencia:
Pin pantalla | Pin Arduino |
---|---|
CS | 2 |
DC | 3 |
RST | 4 |
D0 | 5 |
D1 | 6 |
Vcc | 3.3V |
GND | GND |
Así de fácil. Ahora para controlarla y poder dibujar en ella contamos con una librería llamada U8Glib que cuenta con muchas funciones para ayudarnos a mostrar lo que queramos en nuestra pantalla y de la que disponemos de estupendo tutorial.
#include <U8glib.h> #define cs 2 // CS #define a0 3 // DC #define reset 4 // RST #define sck 5 // D0 #define mosi 6 // D1 int x, y; //SPI Comunicación por SW (sck, mosi, cs, a0 , reset) U8GLIB_SSD1306_128X64 u8g(sck, mosi, cs, a0, reset); void setup() { x = 50; y = 5; } void loop() { // picture loop u8g.firstPage(); do { draw("Trastejant"); pie(x, y, "www.trastejant.es"); u8g.drawPixel(14,23); u8g.drawPixel(24,43); u8g.drawPixel(125,53); u8g.drawPixel(0,0); u8g.drawPixel(127,0); u8g.drawPixel(127,63); u8g.drawPixel(0,63); } while( u8g.nextPage() ); if (y <= 62) { y++; } // vuelve a dibujar el display cada 5milisegundos delay(5); } void draw(char* text) { // graphic commands to redraw the complete screen should be placed here u8g.setFont(u8g_font_unifont); u8g.drawStr( 0, 20, text); } void pie(int x, int y, char* text) { // graphic commands to redraw the complete screen should be placed here u8g.setFont(u8g_font_04b_03); u8g.drawStr( x, y, text); }