A 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:
- Abierto Arduino IDE.
- Ir a Sketch → incluir biblioteca → administrar bibliotecas.
- Buscar Adafruit SSD1306 e instálelo.
- 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.