Un OLED de 0.91" pantalla una pantalla pequeña y de alto contraste, perfecta para mostrando texto, gráficos y datos de sensores proyectos de Arduino. Esta guía te guiará paso a paso por cableado, programación y visualización de texto y gráficos usando el Módulo OLED basado en SSD1306 con Arduino.
1. Lo que necesitas
✅ Placa Arduino (Uno, Mega, Nano, etc.)
✅ OLED de 0.91" Pantalla (SSD1306, I2C)
✅ Cables Puente
✅ Arduino IDE Instalado
🔹 Nota: Este tutorial se centra en comunicación I2C, que solo utiliza dos cables (SDA & SCL), por lo que es ideal para proyectos sencillos.
2. Cableado de OLED de 0.91" a Arduino (Modo I2C)
| Pin de Pantalla OLED | Pin De Arduino Uno | Pin Para Arduino Nano |
|---|---|---|
| VCC | 5V | 5V |
| GND | GND | GND |
| SDA | A4 (SDA) | A4 (SDA) |
| SCL | A5 (SCL) | A5 (SCL) |
🔹 Para Arduino Mega: Usar SDA (Pin 20) y SCL (Pin 21).
3. Instalación de Bibliotecas Necesarias
Antes de programar, instala el Adafruit SSD1306 y Adafruit GFX bibliotecas:
- Abrir Arduino IDE.
- Ir a Programa → Incluir Librería → Gestionar Bibliotecas.
- Buscar Adafruit SSD1306 e instálelo.
- Buscar Adafruit GFX // e instálalo.
4. Código Básico para Mostrar Texto en OLED
Este ejemplo inicializa la pantalla OLED y muestra "¡Hola, Arduino!".
#include
#include
#include
// Definir tamaño de pantalla OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
// Inicializar pantalla OLED (dirección I2C 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
// Iniciar pantalla OLED
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("Error al asignar SSD1306");
for (;;);
}
display.clearDisplay(); // Borrar búfer
display.setTextSize(1); // Tamaño de texto
display.setTextColor(SSD1306_WHITE);
display.setCursor(10, 10);
display.println("¡Hola, Arduino!");
display.display(); // Mostrar texto en pantalla
}
void loop() {
// Nada aquí (el texto es estático)
}
🔹 Qué Hace Este Código:
✔ Inicializa el pantalla SSD1306.
✔ Imprime "¡Hola, Arduino!" la pantalla.
✔ Usos dirección I2C 0x3C (algunos módulos pueden usar 0x3D).
5. Mostrar Gráficos (Líneas, Círculos, Imágenes)
Dibujar formas, modifica el código usando Funciones de Adafruit GFX.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
// Dibuja un rectángulo
display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
// Dibuja un círculo relleno
display.fillCircle(90, 16, 10, SSD1306_WHITE);
display.display();
}
void loop() {}
🔹 Otras Funciones de Dibujo:
✔ display.drawLine(x1, y1, x2, y2, color); → Dibuja una línea
✔ display.drawCircle(x, y, radius, color); → Dibuja un círculo
✔ display.drawRect(x, y, width, height, color); → Dibuja un rectángulo
6. Ejemplo de Texto Desplazable
Este ejemplo desplaza texto horizontalmente a través de la pantalla OLED.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println("Texto desplazándose...");
display.display();
// Iniciar desplazamiento
display.startscrollleft(0x00, 0x0F);
}
void loop() {}
🔹 Funciones de Desplazamiento:
✔ display.startscrollleft(start, stop); → Desplazar Texto izquierda
✔ display.startscrollright(start, stop); → Desplazar Texto correcto
✔ display.stopscroll(); → Detiene el desplazamiento
7. Consejos de Solución de Problemas
Problema: La pantalla no muestra nada.
✅ Verificar cableado (SDA & SCL conectados correctamente).
✅ Garantiza que el La dirección I2C del OLED es 0x3C (o prueba con 0x3D).
✅ Usa un escáner I2C para detectar el dispositivo:
#include
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("Escaneando...");
for (byte address = 8; address < 120; address++) {
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("Dispositivo I2C encontrado en 0x");
Serial.println(address, HEX);
}
}
}
void loop() {}
Problema: El texto es demasiado pequeño o demasiado grande.
✅ Ajustar display.setTextSize(1); (aumentar para texto más grande).
8. Aplicaciones Prácticas
✔ Visualización De Datos De Sensores – Mostrar lecturas en tiempo real de DHT11, BMP280, etc.
✔ Pantalla del Reloj – Combina con DS3231 módulo RTC para hacer un reloj digital.
✔ Sistemas de Menú – Usa los botones para navegar por los menús.
✔ Indicador de Voltaje de la Batería – Supervisa los niveles de energía en proyectos portátiles.
9. Conclusión
Usando un OLED de 0.91" con Arduino una excelente manera de añadir salida visual a tus proyectos. Ya sea que quieras mostrar o, gráficos o datos de sensores, esta pequeña pantalla ofrece alto contraste y bajo consumo de energía.




1 comentario
Sres. buenas noches, gracias a su amables enseñanzas al menos yo he podido programar mis arduinos para escribir en pantallas OLED.
Ahora se me presenta otro reto, programar un arduino nano V3.0 con pantalla OLED 128 × 32 integrada, seria que nos ayudara si es que tienen el IDE para hacerlo?
Saludos afectuosos desde México.
Atte Fernando Soriano López