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

How to Use a 0.91" OLED Display with Arduino

Pantalla OLED de 0.91 " es una pantalla pequeña de alto contraste perfecta para Mostrar datos de texto, gráficos y sensores En proyectos Arduino. Esta guía te guiará cableado, codificación y visualización de texto y gráficos usando el Módulo OLED basado en SSD1306 con Arduino.


1. Lo que necesitas

Arduino tablero (Uno, mega, nano, etc.)
Pantalla OLED de 0.91 "(SSD1306, I2C)
Cables de jersey
Arduino IDE instalado

🔹 Nota: Este tutorial se centra en Comunicación I2C, que solo usa Dos cables (SDA y SCL), haciéndolo ideal para proyectos simples.


2. Cableado el OLED de 0.91 "a Arduino (modo I2C)

Pin de pantalla OLED Arduino uno pin Arduino nano pin
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 requeridas

Antes de codificar, instale el Adafruit SSD1306 y Adafruit GFX Bibliotecas:

  1. Abierto Arduino IDE.
  2. Ir a Sketch → incluir biblioteca → administrar bibliotecas.
  3. Buscar Adafruit SSD1306 e instálelo.
  4. Buscar Adafruit GFX e instálelo.

4. Código básico para mostrar texto en OLED

Este ejemplo inicializa el OLED y muestra "¡Hola, Arduino!".

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Define OLED screen size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32

// Initialize OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
    Serial.begin(115200);

    // Start OLED display
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println("SSD1306 allocation failed");
        for (;;);
    }

    display.clearDisplay();  // Clear buffer
    display.setTextSize(1);  // Text size
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(10, 10);
    display.println("Hello, Arduino!");
    display.display(); // Show text on screen
}

void loop() {
    // Nothing here (text is static)
}

🔹 Lo que hace este código:
✔ Inicializa el Pantalla SSD1306.
✔ Huellas dactilares "¡Hola, Arduino!" en la pantalla.
✔ Usos Dirección I2C 0x3c (Algunos módulos pueden usar 0x3d).


5. Mostrar gráficos (líneas, círculos, imágenes)

Para dibujar formas, modifique el código usando Funciones de Adafruit GFX.

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();

    // Draw a rectangle
    display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
    
    // Draw a filled circle
    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 de desplazamiento

Este ejemplo de texto de desplazamiento 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("Scrolling Text...");
    display.display();
    
    // Start scrolling
    display.startscrollleft(0x00, 0x0F); 
}

void loop() {}

🔹 Funciones de desplazamiento:
display.startscrollleft(start, stop); → Texto de desplazamiento izquierda
display.startscrollright(start, stop); → Texto de desplazamiento bien
display.stopscroll(); → Deja de desplazarse


7. Consejos de solución de problemas

Problema: Mostrar no mostrar nada.
✅ Controlar Cableado (SDA y SCL conectado correctamente).
✅ Asegurar el La dirección OLED I2C es 0x3c (o prueba 0x3d).
✅ Usa un Escáner I2C Para detectar el dispositivo:

#include <Wire.h>
void setup() {
    Wire.begin();
    Serial.begin(115200);
    Serial.println("Scanning...");
    
    for (byte address = 8; address < 120; address++) {
        Wire.beginTransmission(address);
        if (Wire.endTransmission() == 0) {
            Serial.print("Found I2C device at 0x");
            Serial.println(address, HEX);
        }
    }
}
void loop() {}

Problema: El texto es demasiado pequeño o demasiado grande.
✅ Ajustar display.setTextSize(1); (Aumente para un texto más grande).


8. Aplicaciones prácticas

Mostrar datos del sensor -Mostrar lecturas en tiempo real de DHT11, BMP280, etc.
Visualización del reloj - Combinar con Módulo RTC DS3231 Para hacer un reloj digital.
Sistemas de menú - Use botones para navegar a través de los menús.
Indicador de voltaje de la batería - Monitorear los niveles de potencia en proyectos portátiles.


9. Conclusión

Usando un 0.91 "OLED con Arduino es una excelente manera de agregar salida visual a tus proyectos. Si quieres mostrar datos de texto, gráficos o sensores, esta pequeña pantalla ofrece Alto contraste y bajo consumo de energía.

Escribir un comentario

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.