Arduino - OLED
La pantalla OLED (Diodo Orgánico de Emisión de Luz) es una alternativa a la pantalla LCD. La pantalla OLED es ultraligera, casi ultrafina como papel, flexible y produce una imagen más brillante y nítida.
En este tutorial, vamos a aprender:
- Cómo usar la pantalla OLED con Arduino.
- Cómo mostrar texto y números en la pantalla OLED usando Arduino.
- Cómo centrar vertical y horizontalmente el texto y los números en la pantalla OLED.
- Cómo dibujar en la pantalla OLED usando Arduino.
- Cómo mostrar una imagen en la pantalla OLED usando Arduino.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca de la pantalla OLED
Hay muchos tipos de pantallas OLED. Se diferencian entre sí por la interfaz de comunicación, por los tamaños y por los colores:
- Interfaz de comunicación: I2C, SPI
- Tamaño: 128x64, 128×32...
- Color: blanco, azul, bicolor...

SPI suele ser más rápido que I2C, pero requiere más pines de Arduino. Mientras que I2C solo requiere dos pines y puede compartirse con otros periféricos I2C. Es una compensación entre pines y velocidad de comunicación. La elección depende de ti. Para OLED con interfaz I2C, existen varios tipos de controladores, como SSD1306 y SH1106. Este tutorial utiliza la pantalla OLED I2C SSD1306 de 128x64 y 128x32.
Disposición de pines de la pantalla OLED I2C
- Pin GND: debe conectarse a la masa del Arduino
- Pin VCC: es la fuente de alimentación para la pantalla, a la que conectamos el pin de 5 voltios del Arduino
- Pin SCL: es un pin de reloj serial para la interfaz I2C
- Pin SDA: es un pin de datos serial para la interfaz I2C

※ Nota:
- El orden de los pines del módulo OLED puede variar entre fabricantes y tipos de módulos. SIEMPRE utiliza las etiquetas impresas en el módulo OLED. ¡Observa detenidamente!
- Este tutorial utiliza la pantalla OLED que usa el controlador I2C SSD1306. Hemos probado con la pantalla OLED de DIYables. Funciona sin ningún problema.
Diagrama de Cableado
- Diagrama de cableado entre Arduino y OLED de 128x64

This image is created using Fritzing. Click to enlarge image
- Diagrama de cableado entre Arduino y OLED 128x32

This image is created using Fritzing. Click to enlarge image
- El diagrama real de cableado entre Arduino y OLED 128x64

This image is created using Fritzing. Click to enlarge image
- El diagrama de cableado real entre Arduino y OLED de 128×32

This image is created using Fritzing. Click to enlarge image
Si utilizas otro Arduino que no sea el Uno, los pines son diferentes. Consulta la tabla que se muestra a continuación para otros Arduinos.
| OLED Module | Arduino Uno, Nano | Arduino Mega |
|---|---|---|
| Vin | 5V | 5V |
| GND | GND | GND |
| SDA | A4 | 20 |
| SCL | A5 | 21 |
Cómo usar OLED con Arduino
Instalar la biblioteca OLED SSD1306
- Navega al icono Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca “SSD1306”, luego encuentra la biblioteca SSD1306 de Adafruit
- Haz clic en el botón Instalar para instalar la biblioteca.

- Se le pedirá instalar algunas otras dependencias de la biblioteca
- Haga clic en el botón Instalar todo para instalar todas las dependencias de la biblioteca.

Cómo programar para OLED
- Incluir biblioteca
- Define el tamaño de la pantalla si es OLED 123x64
- Define el tamaño de la pantalla si es OLED 128×32
- Declarar un objeto OLED SSD1306
- En la función setup(), inicializa la pantalla OLED
- Y luego puedes mostrar texto, imágenes, dibujar una línea ...
※ Nota:
A partir de este punto, todos los códigos se proporcionan para OLED 128x64, pero puedes adaptarlos fácilmente para OLED 128x32 cambiando el tamaño de la pantalla y ajustando las coordenadas si es necesario.
Código de Arduino - Mostrar texto en OLED
A continuación se muestran algunas funciones que puedes usar para mostrar texto en la pantalla OLED:
- oled.clearDisplay(): todos los píxeles están apagados
- oled.drawPixel(x,y, color): dibujar un píxel en las coordenadas x, y
- oled.setTextSize(n): establece el tamaño de fuente; admite tamaños de 1 a 8
- oled.setCursor(x,y): establece las coordenadas para empezar a escribir el texto
- oled.setTextColor(WHITE): establece el color del texto
- oled.setTextColor(BLACK, WHITE): establece el color del texto y el color de fondo
- oled.println(“message”): imprimir los caracteres
- oled.println(number): imprimir un número
- oled.println(number, HEX): imprimir un número en formato hexadecimal
- oled.display(): llama a este método para que los cambios tengan efecto
- oled.startscrollright(start, stop): desplazar el texto de izquierda a derecha
- oled.startscrollleft(start, stop): desplazar el texto de derecha a izquierda
- oled.startscrolldiagright(start, stop): desplazar el texto desde la esquina inferior izquierda hasta la esquina superior derecha
- oled.startscrolldiagleft(start, stop): desplazar el texto desde la esquina inferior derecha hasta la esquina superior izquierda
- oled.stopscroll(): detener el desplazamiento
Cómo centrar vertical y horizontalmente el texto o número en la pantalla OLED
Ver Cómo centrar vertical y horizontalmente el texto y el número en OLED
Código de Arduino - Dibujo en OLED
Código de Arduino – Mostrar imagen
Para dibujar una imagen en una pantalla OLED, primero debemos convertir la imagen (en cualquier formato) en un arreglo de bitmap. La conversión se puede hacer usando esta herramienta en línea. Por favor, vea cómo convertir una imagen a un arreglo de bitmap en la imagen de abajo. Convertí el icono de Arduino a un arreglo de bitmap.

Después de convertir, copie el código del arreglo y actualice el código del arreglo ArduinoIcon en el código que aparece abajo.
※ Nota:
- El tamaño de la imagen debe ser menor o igual al tamaño de la pantalla.
- Si quieres adaptar el código anterior para un OLED de 128x32, necesitas reescalar la imagen y cambiar el ancho y la altura en la función oled.drawBitmap();
Solución de problemas de OLED
Si el OLED no muestra nada, por favor siga la siguiente lista de verificación:
- Asegúrate de que tu cableado sea correcto.
- Asegúrate de que tu OLED I2C utilice el controlador SSD1306.
- Verifica la dirección I2C del OLED ejecutando el código del escáner de direcciones I2C que se muestra a continuación en Arduino.
El resultado en el Monitor Serial: