Conectar ESP32 a Pantalla OLED de 0.96 pulgadas con I2C


Aprende a conectar una pantalla OLED 0.96 pulgadas al ESP32 utilizando I2C. Código y guía paso a paso para tus proyectos de electrónica

oscar Escrito por oscar 04 April 2024 495 0

Para conectar un ESP32 a una pantalla OLED de 0.96 pulgadas (128x64) basada en el controlador SSD1306, puedes usar el protocolo I2C que es muy común en estas pantallas. Aquí te explico cómo hacer la conexión y un código básico para mostrar texto en la pantalla.

Caracteristicas del oled

Nota: mas informacion la pueden encontrar en el datasheet del oled.

Coordenadas x y

Pantalla oled 0.93
Pantalla oled 0.93

Nota: la imagen anterior es de ilustración y pertenece a una pantalla oled 0.93 con conexion SPI, en este artículo trabajaremos con una pantalla con conexión I2C.

ESP32

Puede revisar los pines y caracteristicas adicionales del ESP32 en si Hoja de dato esp32

Pines esp32
Pines esp32

Conectar esp32 a pantalla oled 0.93

Para conectar un ESP32 a una pantalla OLED de 0.93", necesitarás seguir algunos pasos básicos. Aquí tienes una guía general sobre cómo hacerlo:

Materiales

  • ESP32 (por ejemplo, ESP32 Dev Board)
  • Pantalla OLED de 0.93" (de preferencia con un controlador compatible con I2C)
  • Cables jumper
  • Breadboard (opcional)

Conexión

  • Conecta la pantalla OLED al ESP32 usando cables jumper. La mayoría de las pantallas OLED de este tamaño tienen una interfaz I2C, que solo requiere unos pocos cables para la conexión.
  • Conecta los pines de datos (SDA y SCL) de la pantalla OLED a los pines correspondientes del ESP32.
  • Asegúrate de que la pantalla OLED esté alimentada correctamente. La mayoría de las pantallas OLED necesitan una fuente de alimentación de 3.3V.
conectar esp32 a oled conexion
Conectar esp32 a oled conexión

Librerías

Adafruit SSD1306

Esta biblioteca proporciona funciones para controlar pantallas OLED que utilizan el controlador SSD1306. El SSD1306 es un controlador de pantalla OLED comúnmente utilizado en una variedad de pantallas OLED de diferentes tamaños. La biblioteca Adafruit SSD1306 permite controlar fácilmente estas pantallas desde microcontroladores compatibles como Arduino y ESP32.

Algunas de las características y funciones que proporciona la biblioteca incluyen:

  • Inicialización de la pantalla OLED.
  • Dibujo de formas básicas como líneas, círculos y rectángulos.
  • Dibujo de texto en la pantalla OLED en diferentes tamaños de fuente.
  • Control de contraste y brillo de la pantalla.
  • Desplazamiento de la pantalla.

Adafruit GFX Library

Esta biblioteca proporciona una serie de funciones gráficas básicas que pueden ser utilizadas con una variedad de dispositivos de visualización, incluyendo pantallas OLED, LCD, TFT, entre otros. La biblioteca es independiente del hardware subyacente, lo que significa que puedes usarla con diferentes controladores de pantalla.

Algunas de las características y funciones que proporciona la biblioteca incluyen:

  • Dibujo de formas geométricas como líneas, círculos, rectángulos y polígonos.
  • Dibujo de texto en diferentes tamaños y fuentes.
  • Dibujo de mapas de bits y gráficos en la pantalla.
  • Transformaciones básicas como rotación y escala de gráficos.
  • Métodos para dibujar gradientes de color.

Codificación

Para este desarrollo lo trabajamos con platformIO, aunque el código y las librerías lo puede trabajar tambien con el entorno de Arduino.

Código básico para Arduino IDE

  1. Instala la biblioteca Adafruit SSD1306:

    • Abre Arduino IDE
    • Ve a "Sketch" > "Include Library" > "Manage Libraries"
    • Busca Adafruit SSD1306 e instálala.
  2. Instala la biblioteca Adafruit GFX:

    • Desde el mismo gestor de bibliotecas, busca Adafruit GFX Library e instálala.
  3. Usa el siguiente código para probar la pantalla:

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

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

// Define el pin I2C de la pantalla OLED
#define OLED_RESET    -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  // Inicia la comunicación serie
  Serial.begin(115200);

  // Inicia la pantalla OLED
  if (!display.begin(SSD1306_I2C_ADDRESS, OLED_RESET)) {
    Serial.println(F("Fallo al iniciar la pantalla OLED"));
    for (;;); // Queda bloqueado si falla
  }

  // Limpiar buffer
  display.clearDisplay();
  
  // Muestra texto
  display.setTextSize(1); // Tamaño del texto
  display.setTextColor(SSD1306_WHITE); // Color blanco
  display.setCursor(0, 10); // Posición del cursor (x, y)
  display.println(F("Hola desde ESP32!"));
  
  // Muestra en la pantalla
  display.display();
}

void loop() {
  // No hace nada en el bucle
}

Explicación del código:

  • La biblioteca Adafruit_SSD1306 es para controlar la pantalla OLED.
  • display.begin() inicializa la pantalla.
  • display.clearDisplay() limpia la pantalla.
  • display.setTextSize() y display.setTextColor() configuran el tamaño y el color del texto.
  • display.display() actualiza la pantalla con el contenido.

Nota: Verifica la dirección I2C de tu pantalla OLED si no funciona directamente. Puedes hacerlo con un escáner I2C para verificar que esté en la dirección correcta (normalmente es 0x3C o 0x3D).

Palabras clave (Keywords): conectar ESP32 OLED, pantalla OLED 0.96 ESP32, ESP32 SSD1306 tutorial, I2C ESP32 pantalla, electrónica OLED ESP32, cómo usar OLED con ESP32.

Comentario

Debe aceptar antes de enviar