Cómo programar pantallas oled con Arduino

En este tutorial te mostraremos cómo utilizar una pantalla OLED con Arduino. Existen varios tipos de pantallas disponibles en el mercado, a saber: LCD (Pantalla de Cristal Líquido), LED, OLED (LED Orgánico) y pantalla eInk. LCD y OLED son los más comunes. En este post aprenderemos a utilizar la pantalla OLED con Arduino. Comencemos.

Materiales para este proyecto

Para crear este proyecto, necesitarás los siguientes materiales:

  • Arduino: Usaremos este controlador como el cerebro del proyecto. Yo usé el Arduino UNO pero no dude en usar cualquier placa Arduino que le guste (Mega, Nano o Micro). Sólo asegúrate de conocer el Pin mapping de tu placa.
  • Pantalla OLED: Hay diferentes tipos de pantallas OLED. La que he usado es la 1.3″ módulo I2C. Tiene una resolución de 128 x 64 y funciona con el driver SH1106.
  • Driver adecuado para la pantalla: He usado el driver SH1106, así que he instalado la librería Adafruit_SH1106 para eso. Asegúrese de comprobar qué controlador necesita su pantalla. Debe ser mencionado en la descripción del producto en la página web.

Entendiendo el Protocolo I2C

Como nuestro módulo de pantalla utiliza la interfaz I2C para la comunicación, primero debemos entender el Protocolo I2C.

I2C es un método de comunicación que sólo utiliza 4 pines. En este Protocolo, varios Maestros (Microcontroladores) pueden ser conectados a varios esclavos (Sensores) usando 4 pines: VCC, GND, SDA y SCL.

En I2C los datos se transfieren en forma de paquetes. Estos paquetes contienen tramas de datos.

conexiones i2C
Diagrama de mensajes de I2C:

codigo

El primer cuadro contiene una «Condición de inicio», cuando un dispositivo lee el cuadro de inicio se prepara para los datos entrantes. La siguiente imagen contiene la dirección del dispositivo. Luego hay dos tramas de datos que contienen las instrucciones. Finalmente, la condición de parada indica el final del paquete.

Los Ack/Nack Bits son los bits de reconocimiento, cuando se recibe un conjunto de datos con éxito se envía el bit de reconocimiento. Esta ha sido solo una breve explicación de I2C, para una información más detallada consulta este enlace de la Wikipedia.

OLED Arduino Diagrama de cableado

esquema programa OLED

Las conexiones son muy sencillas, sólo tienes que seguir el diagrama y listo. Las pantallas OLED son muy eficientes en cuanto a potencia y funcionan perfectamente en 3v. Después de hacer las conexiones, es hora de subir el código de prueba.

Programa la pantalla OLED con Arduino

Antes de que podamos subir el código, hay un par de librerías que deben ser instaladas. Abajo hemos listado las bibliotecas necesarias:

  • Wire.h
  • Adafruit_SH1106.h

La librería Wire.h debe estar ya instalada en el IDE, Descargua la librería SH1106 desde aquí.
Haz clic en «Clonar o Descargar» a la derecha. Luego elige «Descargar ZIP». Extraer el archivo Zip y copiarlo en Arduino >> Bibliotecas.

Luego, crea un nuevo programa, y escriba el código que se indica a continuación:

#include <Wire.h>
#include <Adafruit_SH1106.h>

#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET);

void setup()
{
Serial.begin(9600);
display.begin(SH1106_SWITCHCAPVCC, 0x3C);

display.display();
delay(2000);
display.clearDisplay();
}

void loop()
{
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Hello");
display.setTextSize(2);
display.setTextColor(WHITE);
display.println("World!");
display.display();
delay(2000);
}

Sube el código al Arduino, y deberías ver un mensaje de «¡Hola Mundo!» en este caso «Hello Word!'»en la pantalla. También puedes probar el código de ejemplo presente en el IDE de Arduino.

Ir a Archivo >> Ejemplos >> Adafruit_SH1106-Master >> sh1106_128x64_i2c

Sube el código de ejemplo para ver algunas animaciones interesantes.

guardar oled test

Conclusión

Con eso completo, ahora puedes usar la pantalla OLED para tus proyectos. Estas pantallas pueden ser muy útiles para proyectos como una estación meteorológica, una pantalla de robot o un dado electrónico. Las posibilidades son infinitas una vez aprendida la configuración básica.

 

Pin It on Pinterest

Shares