Obtenga entrega gratuita en todas las órdenes más de £20!

Cómo usar una pantalla OLED de 0.91 "con Arduino

How to Use a 0.91" OLED Display with Arduino

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:

  1. Abrir Arduino IDE.
  2. Ir a Programa → Incluir Librería → Gestionar Bibliotecas.
  3. Buscar Adafruit SSD1306 e instálelo.
  4. 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.

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

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

FERNANDO SORIANO LOPEZ,

Escribir un comentario