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.

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

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:

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
#include

#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.

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.

 

Carrito17
Tuerca Mariposa M5 COD:4BZ
-
+
Transistor Mje350 Pnp 0,500a 300v 20w Dpow To-126 COD:6AI
-
+
Transistor Bc548 Bc548b Bc548c 548 To-92 COD:6AJ
-
+
Regulador Positivo 7809cv L7809cv 7809 Cv 9v 1,5a COD:1BS
-
+
Capacitor Ceramico 30pF 50v 30
-
+
Zócalo de 16 Pines Dip 16 Para Soldar COD:5BT
-
+
Transistor 2n3904 Npn To92 COD:4AU
-
+
Transistor 2SC1815 C1815 Npn 0.150a 50v 0.4w 80mhz COD:4BD
-
+
Transistor Bc817-25 Pnp 0.5a 40v 250mw Sot-23 COD:6AN
-
+
Capacitor Ceramico 68pF 50v 68
-
+
Fotorresistencias Ldr 5mm Sensor De Luz COD:1BH
-
+
Transistor Tip 35 Tip-35 Tip35 Tip35c Npn Audio 100 V 25 A COD:5BW
-
+
Módulo Wifi Serial ESP8266 ESP 01 COD:3BQ
-
+
Transistor Mmbt3904 2n3904 3904 1am 1a 7a COD:6AU
-
+
Transistor Bc546b Bc546 546 To-92 COD:6BL
-
+
17