INFORMACIÓN
Display Oled 128×32 píxeles es una pequeña pantalla de 0.91 pulgadas, tiene interfaz de comunicación I2C, puede ser controlado por las placas de Arduino, Nodemcu, ESP32 u otros microcontroladores con comunicación I2C.
Sirve para crear aplicaciones portátiles donde se requiera el mínimo de tamaño y bajo consumo de energía, es ideal para controlar cada píxel individualmente y mostrar tanto texto como gráficos. Se encuentra disponible con pixeles blancos y azules.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Tipo: Display Oled
- Resolución: 128×32 píxeles – 0.91 Pulgadas
- Color de Píxeles: Blanco y Azul
- Driver: SSD1306
- Voltaje de Operación: 3.3V – 5.5V DC
- Interfaz: I2C
- Ultra bajo consumo de energía: 0.08W Cuando están encendidos todos los píxeles
- Temperatura de trabajo: -30ºC ~ 70º
- Dimensiones de PCB: 38mm x 12mm
TUTORIALES
- UNIT Electronics: ¿Cómo conectar el Display Oled 128×32 SSD1306 con Arduino Uno?
- UNIT Electronics: Youtube – Cómo conectar y programar con Arduino Uno
DOCUMENTACIÓN Y RECURSOS
- Conversor de Imágenes ( lmg2Lcd.exe)
- Datasheet – SSD1306
- Dimensiones
- Liberia de Adafruit GFX graphics
- Liberia de Adafruit_SSD1306
- Pinout
INFORMACION ADICIONAL
¿Que es una pantalla OLED?
Por sus siglas OLED (Organic Light Emitting Diode) es un diodo orgánico de emisión de luz, compuesto por láminas de materiales orgánicos como el carbón , siendo estas láminas la emisoras de luz cuando se aplica electricidad entre ellas. A diferencia de las pantallas LCD no requieren luz de fondo ayudando a que el consumo de energía sea reducido.
¿Cómo funciona el Display Oled 128×32 0.91?
Para hacer funcionar el Display Oled 128×32 0.91 es necesario utilizar un microcontrolador (Como ejemplo puedes utilizar la placa de desarrollo de Arduino Uno). Para programar este Display Oled será necesario utilizar el controlador SSD1306, con esta librería podrás mostrar texto, mapas de bits, píxeles, rectángulos, círculos y líneas, comúnmente es programada en el IDE de Arduino.
La interfaz de comunicación es de tipo I2C y puede trabajar con sistemas desde 3.3V hasta 5V debido a su regulador de voltaje. Hay que tener en cuenta que los pines I2C son diferentes para cada modelo de Arduino. Como ejemplo para Arduino Uno, Nano y Pro Mini, puedes utilizar los pines de SDA que es el pin A4 y el SCK el pin A5.
Código de prueba en IDE Arduino
A continuación realizaremos la siguiente conexión entre la pantalla Oled y nuestra tarjeta de desarrollo UNO R3 y posteriormente realizaremos el código.
#include <Adafruit_GFX.h> //Liberia para gráficos
#include <Adafruit_SSD1306.h> //Liberia para Oleds monocromáticos basados en controladores SSD1306
/*Se declara el pin de reset, este es requerido por el constructor de la librería SSD1306
*para definir el tipo de OLED y la comunicación I2C en los (pines SDA, SCL)*/
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_RESET);
/*Se define una condición para saber si en la librería esta definida la altura de 32 de lo contrario
*no dejara compilar el código hasta que se cambie la altura correcta desde la librería*/
#if (SSD1306_LCDHEIGHT != 32)
#error("Altura incorrecta, cambie en la librería de Adafruit_SSD1306.h!");
#endif
void setup() {
/* Se inicia la comunicación I2C en la direccion 0x3C para la pantalla oled 128x32*/
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
/*Se manda a llamar la función leer_oled para ejecutar su contenido*/
leer_oled();
}
/*Se declara la función leer_oled la cual define el tamaño, color, texto y la posición del texto
que se mostrara en el display oled*/
void leer_oled() {
display.clearDisplay(); //Borra el buffer
display.setTextSize(1); //Establece el tamaño de fuente, admite tamaños de 1 a 8
display.setTextColor(WHITE); //Establece el color
display.setCursor(0,10); //Establecer las coordenadas para mostrar la posición del texto
display.println("UNIT ELECTRONICS");
display.setTextSize(1);
display.setCursor(20,20); //Establecer las coordenadas para mostrar la posición del texto
display.println("PARA TI ;)");
display.display(); //Muestra el texto
}
¿Cómo agregar imágenes para mostrar en el display OLED ?
Para poder desplegar imágenes el display OLED , seguiremos los siguientes pasos:
- Contar con una imagen con las dimensiones de 128x 32 y con formato .BMP
- Descargar el ejecutable del Conversor de Imágenes ( lmg2Lcd.exe)
- Cargar la imagen que se requiere desplegar en el programa Image2Lcd v2.9 y colocar la siguiente configuración de salida:
- Finalmente guardar el archivo, el cual tendrá una extensión .c
- Abrir el archivo en un bloc de notas
- Copiar el código generado para la imagen
#include <Adafruit_GFX.h> //Librería para gráficos
#include <Adafruit_SSD1306.h> //Librería para Oleds monocromáticos basados en controladores SSD1306
/*Se declara el pin de reset, este es requerido por el constructor de la librería SSD1306
*para definir el tipo de OLED y la comunicación I2C en los (pines SDA, SCL)*/
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_RESET);
/*Se define una condición para saber si en la librería esta definida la altura de 32 de lo contrario
*no dejara compilar el código hasta que se cambie la altura correcta desde la librería*/
#if (SSD1306_LCDHEIGHT != 32)
#error("Altura incorrecta, cambie en la librería de Adafruit_SSD1306.h!");
#endif
//Para desplegar la imagen solo copia y pega el código dentro de las llaves
static const uint8_t like[] PROGMEM = {
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X80,0X00,0X00,0X10,0X00,0X00,0X04,0X00,0X00,0X01,0X00,0X00,0X00,0X00,
0X00,0X00,0XC0,0X00,0X00,0X18,0X00,0X00,0X06,0X00,0X00,0X01,0X80,0X00,0X00,0X00,
0X00,0X00,0XC0,0X00,0X00,0X18,0X00,0X00,0X06,0X00,0X00,0X01,0X80,0X00,0X00,0X00,
0X00,0X00,0XE0,0X00,0X00,0X1C,0X00,0X00,0X07,0X00,0X00,0X01,0XC0,0X00,0X00,0X00,
0X00,0X00,0X60,0X00,0X00,0X0C,0X00,0X00,0X03,0X00,0X00,0X00,0XC0,0X00,0X00,0X00,
0X00,0X00,0X70,0X00,0X00,0X0E,0X00,0X00,0X03,0X80,0X00,0X00,0XE0,0X00,0X00,0X00,
0X00,0X00,0X38,0X00,0X00,0X07,0X00,0X00,0X01,0XC0,0X00,0X00,0X70,0X00,0X00,0X00,
0X00,0X00,0X28,0X00,0X00,0X05,0X00,0X00,0X01,0X40,0X00,0X00,0X50,0X00,0X00,0X00,
0X00,0X00,0X2C,0X00,0X00,0X05,0X80,0X00,0X01,0X60,0X00,0X00,0X58,0X00,0X00,0X00,
0X00,0X00,0X24,0X00,0X00,0X04,0X80,0X00,0X01,0X20,0X00,0X00,0X48,0X00,0X00,0X00,
0X00,0X00,0X26,0X00,0X00,0X04,0XC0,0X00,0X01,0X30,0X00,0X00,0X4C,0X00,0X00,0X00,
0X00,0X00,0X33,0X00,0X00,0X06,0X60,0X00,0X01,0X98,0X00,0X00,0X66,0X00,0X00,0X00,
0X00,0X00,0X11,0X00,0X00,0X02,0X20,0X00,0X00,0X88,0X00,0X00,0X22,0X00,0X00,0X00,
0X00,0X00,0X11,0X80,0X00,0X02,0X30,0X00,0X00,0X8C,0X00,0X00,0X23,0X00,0X00,0X00,
0X00,0X03,0XE0,0X80,0X00,0X7C,0X10,0X00,0X1F,0X04,0X00,0X07,0XC1,0X00,0X00,0X00,
0X00,0X03,0X00,0XC0,0X00,0X60,0X18,0X00,0X18,0X06,0X00,0X06,0X01,0X80,0X00,0X00,
0X00,0X01,0X80,0X40,0X00,0X30,0X08,0X00,0X0C,0X02,0X00,0X03,0X00,0X80,0X00,0X00,
0X00,0X00,0XC3,0XE0,0X00,0X18,0X7C,0X00,0X06,0X1F,0X00,0X01,0X87,0XC0,0X00,0X00,
0X00,0X00,0X42,0X00,0X00,0X08,0X40,0X00,0X02,0X10,0X00,0X00,0X84,0X00,0X00,0X00,
0X00,0X00,0X62,0X00,0X00,0X0C,0X40,0X00,0X03,0X10,0X00,0X00,0XC4,0X00,0X00,0X00,
0X00,0X00,0X33,0X00,0X00,0X06,0X60,0X00,0X01,0X98,0X00,0X00,0X66,0X00,0X00,0X00,
0X00,0X00,0X19,0X00,0X00,0X03,0X20,0X00,0X00,0XC8,0X00,0X00,0X32,0X00,0X00,0X00,
0X00,0X00,0X09,0X00,0X00,0X01,0X20,0X00,0X00,0X48,0X00,0X00,0X12,0X00,0X00,0X00,
0X00,0X00,0X0D,0X80,0X00,0X01,0XB0,0X00,0X00,0X6C,0X00,0X00,0X1B,0X00,0X00,0X00,
0X00,0X00,0X06,0X80,0X00,0X00,0XD0,0X00,0X00,0X34,0X00,0X00,0X0D,0X00,0X00,0X00,
0X00,0X00,0X03,0X80,0X00,0X00,0X70,0X00,0X00,0X1C,0X00,0X00,0X07,0X00,0X00,0X00,
0X00,0X00,0X01,0XC0,0X00,0X00,0X38,0X00,0X00,0X0E,0X00,0X00,0X03,0X80,0X00,0X00,
0X00,0X00,0X01,0XC0,0X00,0X00,0X38,0X00,0X00,0X0E,0X00,0X00,0X03,0X80,0X00,0X00,
0X00,0X00,0X00,0XC0,0X00,0X00,0X18,0X00,0X00,0X06,0X00,0X00,0X01,0X80,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};
void setup() {
/* Se inicia la comunicación I2C en la direcion 0x3C para la pantalla oled 128x32*/
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
/*Se manda a llamar la función leer_oled para ejecutar su contenido*/
leer_oled();
delay(3000);
}
/*Se declara la función leer_oled la cual define el tamaño, color, texto y la posición del texto
que se mostrara en el display oled*/
void leer_oled() {
display.clearDisplay(); //Borra el buffer
display.drawBitmap(0,0,like,128,32,1); //Se define la imagen su posición
display.display(); //Muestra la imagen
delay(3000); //Se muestre la imagen solo 2 segundos
display.clearDisplay(); //Borra el buffer
display.setTextSize(1); //Establece el tamaño de fuente, admite tamaños de 1 a 8
display.setTextColor(WHITE); //Establece el color
display.setCursor(0,10); //Establecer las coordenadas para mostrar la posición del texto
display.println("UNIT ELECTRONICS");
display.setTextSize(1);
display.setCursor(20,20); //Establecer las coordenadas para mostrar la posición del texto
display.println("PARA TI ;)");
display.display(); //Muestra el texto
}
7. Para desplegar la imagen solo copia y pega el código dentro de los corchetes
Valoraciones
No hay valoraciones aún.