Conectar arduino uno a oled 0.96 i2c


Aprenderás a conectar un arduino uno a oled 0.96 por el protocolo i2c, tendrás información como el datasheet, circuito la librera de adafruit y un código de ejemplo

Conectar arduino uno a oled 0.96 i2c
oscar Escrito por oscar 02 August 2023 2342 0

En este post aprenderás a conectar una pantalla OLED de 0.96" al microcontrolador arduino utilizando el protocolo de comunicación I2C, el cual es soportado por ambos dispositivos.

Comenzaremos analizando cada componente por separado, destacando sus principales características, pines y formas de conexión. Posteriormente, listaremos los materiales necesarios para armar el circuito correctamente.

Arduino uno oled
Arduino uno oled

También revisaremos las librerías más utilizadas actualmente para facilitar la configuración y comunicación entre el Arduino y la pantalla OLED. Finalmente, implementaremos algunos ejemplos prácticos para ilustrar su funcionamiento.

Como complemento, incluiremos un video donde se muestra el circuito en funcionamiento, acompañado de una explicación detallada y ejemplos reales de uso en proyectos.

📌 Cómo conectar y usar una pantalla OLED con el Arduino

El Arduino es un microcontrolador potente y versátil, ideal para proyectos de IoT. Una pantalla OLED (como la SSD1306 de 0.96") es una excelente opción para mostrar información, gracias a su bajo consumo de energía y buena visibilidad.

🔹 Pantalla OLED 0.96"

Esta interfaz utiliza solo dos cables de datos (SDA y SCL) para comunicarse con el microcontrolador o la placa de desarrollo. Es una interfaz simple y fácil de usar, por lo que es popular para proyectos de electrónica caseros.

OLED 0.93" i2c
OLED 0.93" i2c

Observemos el reverso de la pantalla en donde vamos a encontrar una resistencia que usaremos para seleccionar la dirección i2c de la pantalla, por defecto estarla con la direccion 0c3C, si cambiamos la resistencia de ubicación, la nueva dirección sera 0x3D.

Reverso OLED 0.93"
Reverso OLED 0.93"

⚠️ Nota: mas informacion la pueden encontrar en el datasheet del oled adicionalmente tenemos un post del display oled.

La conexión del circuito es sencilla, como el oled usa la interfaz I2C, solo es conectar los dos cables como se observa en la siguiente imagen.

🔌 Materiales

  • Arduino uno
  • Pantalla OLED de 0.93" (de preferencia con un controlador compatible con I2C)
  • Cables jumper
  • Breadboard (opcional)

⚙️ Circuito

La pantalla OLED I2C tiene 4 pines: VCCGNDSCL y SDA. Conecta así:

Conectar arduino uno a oled i2c

⚙️ Conexión entre Arduino y OLED

OLED Arduino
VCC 3.3V
GND GND
SCL SCL
SDA SDA

⚠️ Nota: algunos modelos pueden usar otros pines, verifica tu placa.

🧰 Librerías necesarias

En este ejemplo, vamos a realizar la explicación con las librerías Adafrui SSD1306

Adafriut

Abre el Arduino IDE, ve a Sketch > Include Library > Manage Libraries... y busca e instala:

  • Adafruit SSD1306
  • Adafruit GFX Library

Tambien la puedes encontrar en el siguiente enlace https://github.com/adafruit/Adafruit_SSD1306

📲 Código de ejemplo

El siguiente código muestra un ejemplo de como usar la pantalla oled 0.96 i2c con arduino.

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

// 2
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64 

// 3
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C

// 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

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

  // 5
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }

  // 6
  display.display();
  display.clearDisplay();

  // 7
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0,0);
  display.println(F("codigoelectronica"));
  display.display();
  
  delay(2000);
}

void loop() {
}
  1. Inicializamos las librerías, en este caso Wire para la comunicacion i2c; ademas de las librerías de Adafruit GFX, SSD1306.
  2. Definimos el ancho y alto de la pantalla para que la librería pueda calcular correctamente donde pintar.
  3. Definimos el pin de reset como (-1) indicando que es un reset por software y la direccion i2c del oled.
  4. Con Adafruit_SSD1306 display() inicializamos un objeto display para poder acceder a los métodos de la librería.
  5.  display.begin inicializa la librería
  6. display.clearDisplay limpia la pantalla.
  7. Imprimimos un mensaje
    1. setTextSize: proporciona el tamaño del texto.
    2. setTestColor: indica si los pixeles son blancos o negros.
    3. setCursor: indica la posicion en (x, y).
    4. println texto a imprimir.
    5. display: envía a la pantalla lo que esta pendiente de escribir.

Comentario

Debe aceptar antes de enviar