Arduino Nano ESP32 - OLED
Este tutorial proporciona instrucciones sobre cómo usar Arduino Nano ESP32 con una pantalla OLED. En detalle, aprenderemos:
- Cómo conectar una pantalla OLED con Arduino Nano ESP32.
- Cómo programar Arduino Nano ESP32 para mostrar texto y números en la pantalla OLED.
- Cómo programar Arduino Nano ESP32 para centrar el texto y el número vertical y horizontalmente en la pantalla OLED.
- Cómo programar Arduino Nano ESP32 para dibujar en la pantalla OLED.
- Cómo programar Arduino Nano ESP32 para mostrar una imagen en la pantalla OLED.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca de la pantalla OLED
Existen varios tipos de pantallas OLED disponibles. La pantalla OLED SSD1306 I2C de 128×64 y 128×32 es la más utilizada con Arduino Nano ESP32.

Pinout de la pantalla OLED I2C
- Pin GND: Debe conectarse a la masa del Arduino Nano ESP32.
- Pin VCC: Este es el suministro de energía para la pantalla, que debe conectarse a 3.3 V o 5 V.
- Pin SCL: Este es un pin de reloj serie para la interfaz I2C.
- Pin SDA: Este es un pin de datos serie para la interfaz I2C.

※ Nota:
- Los pines del módulo OLED pueden diferir dependiendo del fabricante y del tipo. Por favor, use las etiquetas impresas en el módulo OLED. ¡Fíjese bien!
- Este tutorial utiliza la pantalla OLED que está controlada por el controlador I2C SSD1306. Lo hemos probado con la pantalla OLED de DIYables y funciona perfectamente.
Diagrama de Cableado
- Diagrama de cableado entre Arduino Nano ESP32 y OLED 128x64

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

This image is created using Fritzing. Click to enlarge image
La tabla de cableado entre Arduino Nano ESP32 y la pantalla OLED:
| OLED Module | Arduino Nano ESP32 |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Cómo usar OLED con Arduino Nano ESP32
Instalar la biblioteca OLED SSD1306
- Haz clic en el icono de Bibliotecas en la barra lateral izquierda del IDE de Arduino.
- Busca “SSD1306” y localiza la biblioteca SSD1306 de Adafruit.
- Luego, presiona el botón Instalar para completar la instalación.

- Se le pedirá que instale dependencias de bibliotecas adicionales.
- Para instalarlas todas, haga clic en el botón Instalar todo.

Cómo programar para OLED
- Incluir la biblioteca
- Especifique las dimensiones de la pantalla OLED como 128 x 64.
- O especificar las dimensiones de una pantalla OLED de 128x32.
- Crea un objeto del tipo SSD1306 OLED.
- En la función setup(), inicializa la pantalla OLED.
- Entonces, puedes mostrar texto, imágenes y dibujar una línea...
A partir de ahora, todos los códigos serán para OLED 128x64. Sin embargo, es fácil modificarlos para OLED 128x32 cambiando el tamaño de la pantalla y ajustando las coordenadas si es necesario.
Código para Arduino Nano ESP32 - Mostrar texto en la pantalla OLED
Estas son algunas funciones que se pueden usar para mostrar texto en la pantalla OLED:
- oled.clearDisplay(): todos los píxeles están apagados.
- oled.drawPixel(x,y, color): dibuja 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 comenzar 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”): imprime los caracteres.
- oled.println(number): imprime un número.
- oled.println(number, HEX): imprime un número en formato hexadecimal.
- oled.display(): llama a este método para que los cambios tengan efecto.
- oled.startscrollright(start, stop): desplaza el texto de izquierda a derecha.
- oled.startscrollleft(start, stop): desplaza el texto de derecha a izquierda.
- oled.startscrolldiagright(start, stop): desplaza el texto desde la esquina inferior izquierda hasta la esquina superior derecha.
- oled.startscrolldiagleft(start, stop): desplaza el texto desde la esquina inferior derecha hasta la esquina superior izquierda.
- oled.stopscroll(): detener el desplazamiento.
Cómo alinear vertical y horizontalmente texto/número en OLED
Para obtener información sobre cómo alinear vertical y horizontalmente texto y números en una pantalla OLED, consulte Cómo centrar vertical y horizontalmente en OLED.
Código para Arduino Nano ESP32 - Dibujando en OLED
Código para Arduino Nano ESP32 – Mostrar imagen
Para mostrar una imagen en OLED, primero debemos convertir la imagen (en cualquier formato) a un arreglo de mapa de bits. Esto se puede lograr utilizando la herramienta en línea. La siguiente imagen demuestra cómo convertir una imagen a un arreglo de mapa de bits; he utilizado el icono de Arduino Nano ESP32 como ejemplo.

Después de la conversión, toma el código del arreglo y colócalo en lugar del arreglo ArduinoIcon en el código que se muestra a continuación.
※ Nota:
- El tamaño de la imagen no debe ser mayor que el tamaño de la pantalla.
- Si desea usar el código para un OLED de 128x32, debe redimensionar la imagen y ajustar los parámetros de ancho y alto en la función oled.drawBitmap();.
Solución de problemas de OLED
Verifique que la pantalla OLED funcione correctamente realizando lo siguiente:
- Asegúrate de que el cableado esté correcto.
- Confirma que tu OLED utilice el controlador SSD1306.
- Utiliza el código del escáner de direcciones I2C en Arduino Nano ESP32 para verificar la dirección I2C del OLED.
La salida que se muestra en el Monitor Serial se ve a continuación: