Como fazer a interface do SSD1306 OLED com o Arduino usando SPI

Cómo conectar SSD1306 OLED con Arduino usando SPI

SSD1306 es un controlador de pantalla OLED popular. Los dispositivos portátiles y vestibles son las nuevas tendencias. Las pantallas OLED pequeñas son perfectas para dispositivos compactos y portátiles. SSD1306 es un controlador CMOS OLED/PLED de un solo chip. Puede gestionar una pantalla gráfica de matriz de puntos de 128×64. Está diseñado para controlar paneles OLED de cátodo común. El chip tiene varias funciones integradas, como control de brillo de 256 pasos, RAM de pantalla, oscilador y control de contraste. Estas funciones integradas reducen los componentes externos necesarios y preparan el chip para su uso con cualquier pantalla OLED de resolución compatible.

SSD1306 OLED

Figura 1. Ejemplo de SSD1306 OLED

SSD1306 se usa comúnmente en pantallas OLED monocromáticas con resoluciones de pantalla de hasta 128×64. Estas pantallas son ahora la mejor alternativa a las pantallas LCD de caracteres convencionales. En comparación con las pantallas LCD de caracteres, es fácil interactuar con las pantallas OLED SSD1306 a través de I2C o SPI y pueden mostrar muchos gráficos complejos, incluidos texto, imágenes de mapas de bits y animaciones. Comparando precios, las pantallas OLED pequeñas no son mucho más caras que las LCD de caracteres. En cambio, las pantallas OLED son demasiado estéticas y compactas para su uso en dispositivos de consumo portátiles y vestibles. Por ejemplo, para un reloj inteligente, las pantallas LCD de caracteres no son adecuadas y las LCD gráficas son bastante más caras, pero una pequeña pantalla OLED es perfecta para esto.

En este tutorial, conectaremos una pantalla OLED SSD1306 con Arduino usando la interfaz SPI. Las pantallas OLED basadas en chip SSD1306 se pueden conectar a un microcontrolador o a una computadora de placa única mediante una interfaz I2C, SPI o paralela. Sin embargo, las interfaces I2C y SPI suelen estar expuestas en módulos de pantalla OLED.

Componentes necesarios

  1. Arduino UNO x1
  2. Módulo OLED SSD1306 de 7 pines x1
  3. Cables de conexión o cables de puente

Acerca de la pantalla OLED SSD1306

OLED significa Diodo emisor de luz orgánico. Las pantallas OLED son similares a las pantallas LED utilizadas en televisores y monitores. Sin embargo, estas pantallas son compactas y adecuadas para su uso en dispositivos portátiles y portátiles. Hay muchos tipos de pantallas OLED. Estas pantallas se pueden clasificar según el tamaño, color, número de pines y controlador IC. Las pantallas OLED vienen en dos tamaños comunes: 0,91″ con una resolución de pantalla de 128×32 y 0,96″ con una resolución de 128×64. La pantalla puede ser azul monocromática, blanca monocromática o azul amarillo. El módulo de pantalla OLED puede tener un puerto de 3/4 pines solo para interfaz I2C, o una interfaz de 7 pines para SPI de 3 cables, SPI de 4 cables e interfaz I2C. SSD1306 y SSD1331 son los chips controladores de pantalla OLED más populares. Cualquier módulo de pantalla OLED tiene el chip controlador integrado en el módulo.

En este proyecto, utilizamos una pantalla OLED de 0,96 ″ con controlador IC SSD1306. El módulo tiene una pantalla Amarillo-Azul con una resolución de pantalla de 128×64. El módulo utilizado aquí tiene una interfaz de 7 pines, lo que permite que el módulo se conecte con cualquier microcontrolador o SBC a través de SPI de 3 cables, SPI de 4 cables e interfaz I2C. La interfaz SPI de 4 cables es la opción de interfaz predeterminada en el módulo de 7 pines.

Cómo conectar SSD1306 OLED con Arduino

Un módulo OLED de 7 pines ofrece todas las opciones de interfaz, como SPI de 3 cables, SPI de 4 cables e I2C. SPI de 4 cables es el modo de comunicación más rápido con OLED y también es el predeterminado. La pantalla OLED de 7 pines tiene la siguiente configuración de pines.

Para interconectar el módulo con Arduino (o cualquier microcontrolador o SBC), conecte los pines GND y VCC/VDD a tierra y a la salida de 5 V del Arduino, respectivamente. OLED funciona con una potencia mínima, por lo que no requiere ninguna fuente de alimentación externa. Es importante tener en cuenta que OLED no enciende su luz de fondo simplemente suministrando energía. No se notan cambios en la pantalla OLED hasta que se programa correctamente. Los pines D0, D1, RST, DC y CS se pueden conectar a cualquier GPIO. Un módulo de 6 pines no tiene Chip Select.

Los módulos OLED de 4 pines solo ofrecen una interfaz I2C para comunicarse con ellos. Tiene la siguiente configuración de pines.

Para interconectar el módulo de 4 pines, conecte los pines GND y VCC a tierra y a la salida de 5 V del Arduino. Conecte los pines D0 y D1 a cualquier GPIO.

Conexiones de circuito

En este proyecto, se conecta un módulo OLED SSD1306 de 7 pines a Arduino UNO. El módulo se conecta al Arduino de la siguiente manera.

Pantalla OLED SSD1306

Figura 3 y 4. Pantalla OLED SSD1306

Programación de pantalla OLED SSD1306 con Arduino

La biblioteca para interconectar el SSD1306 con Arduino está disponible en Adafruit. Para encontrarlo, navegue hasta el administrador de bibliotecas del IDE de Arduino, Sketch -> Agregar biblioteca -> Administrar bibliotecas. Busque SSD1306 y seleccione la última versión de la biblioteca Adafruit SSD1306. También descargará la biblioteca GFX como dependencia.

Biblioteca Arduino OLED Adafruit SSD1306

Figura 5. Instalación de la biblioteca OLED Arduino Adafruit SSD1306

Una vez incluida, la biblioteca se puede importar al código usando las siguientes líneas:

#incluir
#incluir

Los ejemplos de trabajo de la biblioteca ahora se pueden encontrar en Archivo -> Ejemplos -> Adafruit SSD1306.

La biblioteca proporciona varias funciones útiles. Algunas de estas funciones utilizadas con frecuencia se enumeran a continuación.

Para convertir cualquier imagen a mapa de bits para mostrarla en SSD1306 OLED, puede utilizar el siguiente enlace.

Bosquejo de Arduino

Resultado

(Enlace al vídeo de demostración del P15-DV)

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.