|

Conexión del ESP8266 NodeMCU con la pantalla OLED SSD1306

En este tema se muestra cómo conectar la pantalla OLED SSD1306 con la tarjeta de desarrollo ESP8266 NodeMCU (ESP-12E). La pantalla utilizada en este proyecto tiene una resolución de 128×64 pixeles y funciona en modo I2C, lo que significa que el NodeMCU se comunica con la pantalla mediante el protocolo de comunicación I2C. El protocolo I2C emplea dos líneas: SDA (datos serie) y SCL (reloj serie). El SSD1306 requiere 2 pines para el bus I2C y un pin adicional de reset (si la tarjeta OLED SSD1306 cuenta con pin de reset).

Controlador OLED SSD1306 para el IDE de Arduino:
Adafruit Industries ofrece una librería muy buena para el OLED SSD1306; se puede instalar fácilmente con el gestor de librerías de Arduino (Sketch —> Include Library —> Library Manager), o manualmente descargándola del enlace de abajo y añadiéndola a la carpeta de librerías de Arduino (C:\Program Files\Arduino\libraries):
Librería OLED Adafruit SSD1306

Ten en cuenta que el controlador OLED Adafruit SSD1306 admite 3 tipos: 128×64, 128×32 y 96×16 pixeles; podemos seleccionar entre ellos en el archivo de cabecera del controlador Adafruit_SSD1306.h. Al abrir el archivo con un editor de texto como el IDE de Arduino se ve lo siguiente (desplázate hacia abajo como se muestra):

Adafruit SSD1306 OLED driver modifiy

Comenté el tipo de pantalla por defecto #define SSD1306_128_32 y descomenté #define SSD1306_128_64 porque estoy usando una pantalla de 128×64 pixeles (0.96″).

Necesitamos otra librería llamada Adafruit GFX (librería de gráficos) que se puede instalar con el gestor de librerías de Arduino o manualmente descargándola del enlace de abajo:
Librería Adafruit GFX

ESP-12E NodeMCU SSD1306 OLED display hardware circuit

Hardware necesario:
Los componentes que se listan a continuación son necesarios para este proyecto.

  • Módulo ESP8266 NodeMCU (ESP-12E)
  • Pantalla OLED SSD1306
  • Protoboard
  • Cables de conexión (jumpers)

Circuito de conexión del NodeMCU con el OLED SSD1306:
La siguiente imagen muestra el diagrama esquemático del circuito del proyecto.

ESP8266 ESP-12E nodeMCU SSD1306 OLED display circuit

y la segunda imagen muestra el circuito en protoboard hecho con fritzing:

ESP8266 ESP-12E nodeMCU SSD1306 OLED display fritzing circuit

Las líneas SDA y SCL del bus I2C provienen de GPIO4 (D2) y GPIO0 (D3) de la tarjeta NodeMCU (respectivamente), y se conectan a los pines SDA y SCL (SCK) del módulo de pantalla SSD1306.
El pin de reset (RES) del módulo de pantalla se conecta a GPIO5 (D1) de la tarjeta de desarrollo NodeMCU.

El módulo de pantalla SSD1306 se alimenta con 3.3V provenientes de la tarjeta NodeMCU.

Código de conexión del NodeMCU con el OLED SSD1306:
El código del proyecto es el código de ejemplo de la librería Adafruit (ssd1306_128x64_i2c) con modificaciones menores. Agregué Wire.begin(4, 0); para configurar los pines del bus I2C. SDA se establece en GPIO4 (D2) y SCL en GPIO0 (D3). El pin de reset del módulo de pantalla se conecta al pin GPIO5 (D5):
#define OLED_RESET 5

La frecuencia de reloj por defecto es 100kHz; para un reloj de 400kHz descomenta la línea número 65 (L de long):
//Wire.setClock(400000L);

Código completo de Arduino:

Conexión de la pantalla OLED

Similar Posts

Deja un comentario