Está en la página 1de 3

Interfaz Arduino con pantalla OLED SSD1306

Este tema muestra cómo conectar la placa Arduino UNO con la pantalla OLED SSD1306 (128 × 64 píxeles). El SSD1306 es una pantalla monocromática, lo que significa que solo tiene un color
(blanco, azul, amarillo ...). También mostraremos cómo simular la pantalla SSD1306 usando Proteus ISIS.

La pantalla SSD1306 contiene un chip controlador con el mismo nombre (SSD1306), puede comunicarse con el dispositivo maestro (microcontrolador, microprocesador ...) a través del protocolo
I2C, protocolo SPI o protocolo paralelo de 8 bits. En este tema voy a mostrar cómo usar los protocolos I2C y SPI con esta pantalla.
El protocolo I2C necesita solo 2 líneas: SDA (datos en serie) y SCK (reloj en serie), se requiere una línea adicional que es una línea de reinicio (RST). El protocolo SPI es más rápido que el protocolo
I2C pero utiliza más pines: SCK, SDA, CS (selección de chip: activo bajo), D / C (datos / comando) y un pin de descanso (RST).

El SSD1306 OLED que utilicé se muestra a continuación (vista posterior), el modo predeterminado es SPI que se puede cambiar a I2C quitando las resistencias R3 y colocando las resistencias R1 y
R8 (como está escrito en la placa). Tenga en cuenta que la resistencia de R1 = R3 = R8 = 0 ohmios.

Hardware requerido:

Tablero Arduino
Pantalla OLED SSD1306
Tablero de circuitos
Cables de puente

Controlador OLED SSD1306 para Arduino:


Adafruit Industries proporciona una biblioteca muy agradable para el OLED SSD1306, se puede instalar fácilmente usando el administrador de la biblioteca Arduino (Sketch -> Incluir biblioteca -
> Administrador de la biblioteca), o manualmente descargándolo del enlace a continuación y agregando a la carpeta de bibliotecas Arduino (C: \ Archivos de programa \ Arduino \ bibliotecas):
biblioteca OLED Adafruit SSD1306

Tenga en cuenta que el controlador OLED Adafruit SSD1306 admite 3 tipos: 128 × 64, 128 × 32 y 96 × 16 píxeles, podemos seleccionar entre ellos en el archivo del
controlador Adafruit_SSD1306.h . Abrir el archivo con un editor de texto como el IDE de Arduino proporciona (desplácese hacia abajo como se muestra):

Comenté el tipo de pantalla predeterminado #define SSD1306_128_32 y el no definido #define SSD1306_128_64 porque estoy usando una pantalla de 128 × 64 píxeles (0.96 ″).
Necesitamos otra biblioteca llamada Adafruit GFX (biblioteca de gráficos) que se puede instalar a través del administrador de la biblioteca Arduino o manualmente descargándola del siguiente
enlace:
Biblioteca Adafruit GFX

Uso de SSD1306 con modo SPI (SPI de 4 hilos):


la biblioteca SSD1306 viene con 4 ejemplos, uno de ellos está usando el OLED SSD1306 con modo SPI. Podemos abrir el ejemplo yendo a Arduino IDE:
Archivo -> Ejemplos -> Adafruit SSD1306 -> ssd1306_128x64_spi
como se muestra en la imagen a continuación:

A continuación se muestran ejemplos de conexiones de circuitos donde:


GND va a GND (tierra)
VDD a 5V
SDA (datos en serie) al pin digital 9
SCK (reloj en serie) al pin digital 10
DC (datos / comando) al pin digital 11
CS (selección de chip ) al pin digital 12
RES (reinicio) al pin digital 13

Simulación de Proteus:
este ejemplo funciona con el software de simulación de Proteus ya que (Proteus) contiene la biblioteca OLED SSD1306. El siguiente video muestra el resultado de la simulación:

Descarga del archivo de simulación de Proteus (para la versión 8.6 y superior):


Arduino + SSD1306 OLED SPI

Uso de SSD1306 OLED con modo I2C:


el segundo ejemplo de Adafruit es SSD1306 OLED con I2C (IIC o: circuito integrado). Podemos abrirlo yendo a Arduino IDE:
Archivo -> Ejemplos -> Adafruit SSD1306 -> ssd1306_128x64_i2c
como se muestra en la imagen a continuación:
A continuación se muestran ejemplos de conexiones de circuitos donde:
GND va a GND (tierra)
VDD a 5V
SDA (datos en serie) al pin A4 (pin Arduino UNO I2C SDA)
SCK (reloj en serie) al pin A5 (pin Arduino UNO I2C SCL)
RES ( restablecer) al pin digital 4

El siguiente video muestra la simulación del ejemplo usando Proteus ISIS:

y el segundo video muestra un circuito de hardware simple:

Descarga del archivo de simulación Proteus (para la versión 8.6 y superior):


Arduino + SSD1306 OLED I2C

Arduino proyecta con pantalla OLED SSD1306:


Arduino con OLED SSD1306 y sensor DHT11 / DHT22
Reloj de tiempo real Arduino con DS1307 y OLED SSD1306
Reloj de tiempo real con NodeMCU, DS3231 y SSD1306 OLED
Arduino con sensor DS18B20 y pantalla OLED SSD1306 Pantalla OLED L1 y OLD
Ar30 con pantalla SSD1306 OLED sensor de temperatura
Arduino con sensor de presión y temperatura BMP280 y SSD1306 OLED
Estación meteorológica Arduino con sensor SSD1306 OLED y BME280

También podría gustarte