Arduino UNO R4 - OLED
Este tutorial te enseña cómo usar Arduino UNO R4 con una pantalla OLED de 128x64 I2C. En detalle, aprenderemos:
- Cómo conectar una pantalla OLED 128x64 al Arduino UNO R4.
- Cómo programar Arduino UNO R4 para mostrar texto y números en un OLED con Arduino UNO R4.
- Cómo centrar el texto y los números vertical y horizontalmente en un OLED.
- Cómo crear dibujos en un OLED con Arduino UNO R4.
- Cómo mostrar imágenes en un OLED con Arduino UNO R4.

Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca de la pantalla OLED
Hay varios tipos de pantallas OLED. Varían en la forma en que se comunican, en sus tamaños y en sus colores.
- Métodos de comunicación: I2C, SPI
- Dimensiones: 128x64, 128x32...
- Colores: blanco, azul, dos tonos...

SPI suele ser más rápido que I2C, pero requiere más pines en el Arduino UNO R4. En cambio, I2C solo necesita dos pines y estos pines pueden conectarse a múltiples dispositivos I2C. Tienes que elegir entre usar menos pines o tener una comunicación más rápida. Para pantallas OLED con I2C, existen diferentes controladores como SSD1306 y SH1106. Esta guía utiliza la pantalla OLED I2C SSD1306 de 128x64.
Pinout de la pantalla OLED I2C
- Pin GND: debe conectarse a la masa del Arduino UNO R4
- Pin VCC: es la fuente de alimentación para la pantalla, a la que conectamos el pin de 5 voltios del Arduino UNO R4.
- 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:
La disposición de pines en un módulo OLED puede variar según el fabricante y el modelo del módulo. Siempre verifique y siga las etiquetas del módulo OLED. ¡Esté atento!
Esta guía es para una pantalla OLED que utiliza el controlador I2C SSD1306. Lo probamos con una pantalla OLED de DIYables. Funciona perfectamente sin ningún problema.
Diagrama de Cableado
- Diagrama de conexiones para Arduino UNO R4 con pantalla OLED 128x64

This image is created using Fritzing. Click to enlarge image
Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.
Si usas un tipo diferente de Arduino UNO R4, la distribución de pines no será la misma que la del UNO. Consulta la tabla a continuación para obtener información sobre otros modelos de Arduino UNO R4.
| OLED Module | Arduino UNO R4 |
|---|---|
| Vin | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Cómo usar OLED con Arduino UNO R4
Instalar la biblioteca OLED SSD1306
- Ve al icono de Bibliotecas en el lado izquierdo del IDE de Arduino.
- Escribe "SSD1306" en la caja de búsqueda y busca la biblioteca SSD1306 creada por Adafruit.
- Pulsa el botón Instalar para añadir la biblioteca.

- Necesitarás instalar algunas bibliotecas adicionales.
- Haz clic en el botón Instalar todo para instalar todas las bibliotecas necesarias.

Cómo programar para OLED
- Incluye una biblioteca.
- Configura el tamaño de la pantalla a OLED 123x64.
- Crear un elemento OLED SSD1306.
- En la función setup(), configura la pantalla OLED.
- Luego puedes mostrar texto, imágenes y dibujar líneas.
Código de Arduino UNO R4 - Mostrar texto en OLED
Aquí hay algunas funciones que puedes usar para mostrar texto en la pantalla OLED:
- oled.clearDisplay(): apaga todos los píxeles.
- oled.drawPixel(x, y, color): dibuja un píxel en las coordenadas x, y.
- oled.setTextSize(n): cambia el tamaño del texto, con opciones de 1 a 8.
- oled.setCursor(x, y): coloca el cursor en las coordenadas x, y.
- oled.setTextColor(WHITE): hace que el color del texto sea blanco.
- oled.setTextColor(BLACK, WHITE): hace que el color del texto sea negro y el fondo blanco.
- oled.println("mensaje"): muestra el texto.
- oled.println(número): muestra un número.
- oled.println(número, HEX): muestra un número en formato hexadecimal.
- oled.display(): actualiza la pantalla con los cambios.
- oled.startscrollright(start, stop): mueve el texto de izquierda a derecha.
- oled.startscrollleft(start, stop): mueve el texto de derecha a izquierda.
- oled.startscrolldiagright(start, stop): mueve el texto en diagonal de la esquina inferior izquierda a la esquina superior derecha.
- oled.startscrolldiagleft(start, stop): mueve el texto en diagonal de la esquina inferior derecha a la esquina superior izquierda.
- oled.stopscroll(): detiene cualquier desplazamiento de texto.
Cómo alinear vertical y horizontalmente el texto/número en OLED
Arduino UNO R4 Código - Dibujo en OLED
Código de Arduino UNO R4 – Mostrar imagen
Para mostrar una imagen en una pantalla OLED, primero convierte la imagen (de cualquier formato) en un arreglo de bits. Puedes usar esta herramienta en línea para convertirla. Mira la imagen de abajo para ver cómo convertir una imagen en un arreglo de bits. Convertí el icono de Arduino en un arreglo de bits.

Copie el código del nuevo arreglo y actualícelo en el arreglo de iconos de Arduino en el código que aparece a continuación.
※ Nota:
- El tamaño de la imagen debe ser igual o menor que el tamaño de la pantalla.
- Para usar el código proporcionado para un OLED 128x32, debes redimensionar la imagen y ajustar el ancho y la altura en la función oled.drawBitmap();.
Solución de problemas de OLED
Si la pantalla OLED no muestra nada, por favor siga estos pasos:
- Asegúrate de que el cableado esté hecho correctamente.
- Confirma que tu OLED I2C cuente con un controlador SSD1306.
- Verifica la dirección I2C de tu OLED utilizando el siguiente código de escáner de direcciones I2C en Arduino UNO R4.
La salida en el Monitor Serial: