Oled 0.96 SPI conexión a arduino


Revisaremos el oled 0.96 spi conexión a arduino, que librerías debemos usar y cuál es la distribución de los pines

oscar Escrito por oscar 01 August 2023 541 0

En este artículo realizaremos la conexión de una pantalla oled a Arduino por medio de la comunicación SPI, veremos los pines de cada componente y como se deben conectar correctamente, exploraremos las librería Adafruit_SSD1306 y como usarla en este proyecto con un ejemplo fácil de entender.

Nota: para ver mas información de las pantallas oled, puede ver este artículo donde hablamos y mencionamos caracteristicas principal de las pantallas oled.

Pantalla lcd 0.96 SPI

Es un tipo específico de pantalla OLED que utiliza una interfaz SPI (Serial Peripheral Interface) para comunicarse con un microcontrolador o placa de desarrollo.

Aquí están algunas características clave de un display OLED de 0.96" SPI:

  • Tamaño: 0.96 pulgadas (diagonal)
  • Resolución: Típicamente 128 x 64 pixeles, aunque pueden existir variaciones.
  • Color: Normalmente monocromo, mostrando pixeles blancos sobre un fondo negro.
  • Interfaz: SPI (Serial Peripheral Interface) - Utiliza cuatro cables para la comunicación: MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (Serial Clock) y SS (Slave Select).
  • Consumo de energía: Bajo consumo, especialmente cuando no se encienden todos los pixeles.

La interfaz SPI permite una comunicación más rápida que la interfaz I2C, que es otra opción común para displays OLED. Sin embargo, la interfaz SPI también requiere más cables y puede ser un poco más compleja de implementar.

Oled 0.96 SPI
Oled 0.96 SPI

 

Materiales

Componente Uso en el circuito
Arduino Puede ser cualquier arduino que posea comunicación con SPI
Pantalla oled 0.96" SPI  Pantalla para hacer la prueba
Cables de conexion Requerimos varios cables de conexión

Conexión del circuito

En la siguiente imagen se muestra como conectamos la pantalla oled al arduino por medio del SPI

Conexión arduino oled spi

 

Librerías Adafruit_SSD1306

GitHub - adafruit/Adafruit-GFX-Library: Adafruit GFX graphics core Arduino library, this is the 'core' class that all our other graphics libraries derive from

GitHub - adafruit/Adafruit_SSD1306: Arduino library for SSD1306 monochrome 128x64 and 128x32 OLEDs

Código

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels


#define OLED_DC     8
#define OLED_CS     10
#define OLED_RESET  9
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
  &SPI, OLED_DC, OLED_RESET, OLED_CS);

void setup() {
  Serial.begin(9600);
  
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }

  display.display();
  delay(2000); // Pause for 2 seconds

  // Clear the buffer
  display.clearDisplay();

  // Draw a single pixel in white
  display.drawPixel(10, 10, SSD1306_WHITE);

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

Aquí hay una explicación línea por línea:

  1. Las líneas de "include" son las directivas de inclusión de bibliotecas necesarias para este código. SPI.h y Wire.h son bibliotecas para comunicación serial y I2C respectivamente, mientras que Adafruit_GFX.h y Adafruit_SSD1306.h son bibliotecas específicas para trabajar con pantallas OLED.
  2. Con define SCREEN_WIDTH y SCREEN_HEIGHT , se establece que la pantalla tiene 128 píxeles de ancho y 64 píxeles de alto.
  3. OLED_DC es el pin de control de datos, OLED_CS es el pin de selección de chip y OLED_RESET es el pin de reinicio de la pantalla. Estas líneas definen los pines de conexión del Arduino a la pantalla OLED.
  4. Crea un objeto de la clase Adafruit_SSD1306, que representa la pantalla OLED. Se especifican las dimensiones de la pantalla y los pines de conexión.
  5. En la función setup() se ejecuta una vez al inicio del programa. Se inicia la comunicación serial para la depuración. Luego, se intenta iniciar la pantalla OLED con display.begin(SSD1306_SWITCHCAPVCC). Si la inicialización falla, el programa se queda en un bucle infinito. Después de eso, se limpia el buffer de la pantalla y se dibuja un píxel blanco en la posición (10, 10). Finalmente, se muestra el contenido del buffer en la pantalla y se espera 2 segundos antes de continuar.

Comentario

Debe aceptar antes de enviar