Skip to Content

Cómo conectar el SSD1306 I2C OLED Graphic Display con Arduino

Cómo conectar el SSD1306 I2C OLED Graphic Display con Arduino

Este tutorial contiene todo lo que necesitas saber sobre cómo utilizar la pantalla gráfica I2C OLED con una placa Arduino.

He incluido un diagrama de cableado y códigos de ejemplo para la pantalla gráfica I2C. 

Después de este tutorial, serás capaz de mostrar texto, formas, imágenes y diversos datos en una pantalla gráfica I2C con placas Arduino.

Empecemos.

Componentes de hardware

Arduino Uno Rev3x1Amazon
Arduino Mega (opcional)x1Amazon
Pantalla OLEDx1Amazon
Tablero de pruebasx1Amazon
Cables de puentex15Amazon
Potenciómetro de 10Kx1Amazon
Cable USB tipo A/Bx1Amazon

Software

Arduino IDEArduino IDE

Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.

Introducción a la pantalla OLED SSD1306 I2C

Este tutorial le enseñará acerca de 0,96 SSD1306 I2C OLED muestra con la placa Arduino. Es una simple pantalla gráfica de matriz de puntos con 128 columnas y 64 filas, por lo que muestra un total de 8192 píxeles.

Como la pantalla funciona con el protocolo I2C, sólo requiere dos pines de la MCU.

Pinout del módulo de pantalla OLED I2C

Hay cuatro pines en esta pantalla. Pantalla OLED I2C Pinout, se puede ver a continuación.

Pinout del módulo de pantalla OLED I2C
1GNDConecte la tierra de la alimentación a esta clavija.
2VCCAquí hay un pin de alimentación. A este pin se le puede proporcionar una alimentación de 3,3V o 5V para alimentar la pantalla.
3SCL (Línea de reloj serie)Es una señal de reloj. Los datos se envían a otros dispositivos a medida que se producen las pulsaciones del reloj. Sólo el maestro genera el SCL.
4SDA (línea de datos en serie)A través de SDA, los esclavos y los maestros pueden intercambiar datos y acuses de recibo.

Tenga en cuenta que en algunas de las pantallas que tiene tanto los pines SPI y I2C, en ese caso, es posible que tenga que utilizar el pin de reinicio también.

Dirección I2C de la pantalla OLED

Cada dispositivo I2C tiene su dirección esclava o dirección de dispositivo. La pantalla OLED tiene un formato de dirección esclavo, como se muestra en la siguiente imagen.

76543210
011110Bit SA0Bit R/W

Bit SA0 (Dirección Esclava): Este bit proporciona dos opciones de dirección esclava a elegir.

Bit R/W (lectura/escritura): Este bit sirve para determinar el modo de funcionamiento.

Modo de operación de escritura I2C - 0

Modo de operación de lectura I2C - 1

¿Cómo puedo conectar un Arduino a una pantalla OLED?

Aquí, usted aprenderá acerca de la conexión paso a paso de la pantalla I2C OLED con la placa Arduino Uno.

Paso 1: Conecte los pines I2C de Arduino a los pines de la pantalla OLED como se menciona en la siguiente tabla. A continuación, conecte los pines Vcc y tierra.

Arduino Uno PINOLED Pantalla Pin
GND GND
VCC3.3 V
Pin analógico A4SDA
Pin analógico A5SCL
Pin de la pantalla OLED
Arduino Uno PIN

Paso 2: Conecta el pin del potenciómetro al pin A0 de Arduino Uno, conecta Vcc a +5V, y haz tierra común.

Eso es todo, y usted ha completado el proceso de interconexión.

Instalación de las librerías Arduino necesarias

Puede utilizar una biblioteca ya construida para pantallas OLED con Arduino IDE.

Siga los siguientes pasos para instalar la biblioteca en el IDE de Arduino.

Paso 1: Ve a Herramientas > Gestionar Bibliotecas (Ctrl + Shift + I en Windows) para abrir el gestor de bibliotecas en Arduino IDE.

Paso 1 Ir a las Herramientas

Paso 2: Ahora, en el cuadro de búsqueda, escribe "GFX", y podrás ver los diferentes resultados de tu búsqueda.

Tienes que hacer clic en la última versión, instalarla y utilizarla.

Lo mismo que buscar "SSD1306 " e instalar la última versión.

GFX
SSD1306

Código Arduino para la interconexión con Arduino Uno y la pantalla OLED I2C

#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"

int Pot_Value = 0;
int Data = 0;
const int analog_Pin = A0;

//#define OLED_RESET 4
//Adafruit_SSD1306 display(OLED_RESET);

Adafruit_SSD1306 display(-1);

#define DIS_WIDTH 128 // OLED display width, in pixels
#define DIS_HEIGHT 64 // OLED display height, in pixels

#define IMG_HEIGHT   128
#define IMG_WIDTH    64

static const uint8_t  PROGMEM makerguides [] PROGMEM = {
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0x82, 0x08, 0x3c, 0x3c, 0x1f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff,
  0x87, 0x1c, 0x3c, 0x3c, 0x1f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xf3, 0xff, 0xff,
  0x8f, 0x1e, 0x3c, 0x3c, 0x1f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xf3, 0xff, 0xff,
  0x87, 0x1c, 0x3c, 0x1c, 0x1f, 0x1f, 0x1f, 0xfd, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff,
0x86, 0x0c, 0x3c, 0x98, 0x1c, 0x07, 0x18, 0xf0, 0x78, 0x1e, 0x6f, 0xfd, 0xdf, 0x13, 0xe3, 0xf1, 0x82, 0x0c, 0x3c, 0x98, 0x18, 0x47, 0x11, 0xe2, 0x38, 0x18, 0x8e, 0x79, 0xde, 0x43, 0x99, 0xcd, 0x82, 0x0c, 0x3c, 0x99, 0x1c, 0xe7, 0x03, 0xc7, 0x18, 0xf3, 0xce, 0x79, 0xdc, 0xf3, 0xbc, 0xcf, 0x82, 0x0c, 0x3c, 0x89, 0x1f, 0xc7, 0x03, 0xc7, 0x18, 0xf3, 0xee, 0x79, 0xdd, 0xf3, 0x3c, 0xcf, 0x82, 0x0c, 0x3c, 0xc1, 0x1c, 0x07, 0x03, 0xc0, 0x18, 0xf3, 0xee, 0x79, 0xd9, 0xf3, 0x00, 0xe3, 0x82, 0x0c, 0x3c, 0xc3, 0x18, 0xe7, 0x01, 0xc7, 0xf8, 0xf3, 0xee, 0x79, 0xd9, 0xf3, 0x3f, 0xf9, 0x82, 0x0c, 0x3c, 0xc3, 0x18, 0xe7, 0x19, 0xc7, 0xf8, 0xf3, 0xee, 0x79, 0xdd, 0xf3, 0x3f, 0xfc, 0x82, 0x0c, 0x3c, 0xc3, 0x18, 0xc7, 0x18, 0xc3, 0x18, 0xf9, 0xce, 0x79, 0xdc, 0xf3, 0xbf, 0xfc, 0x82, 0x0c, 0x3c, 0xe3, 0x18, 0x03, 0x1c, 0xe0, 0x38, 0xf8, 0x0f, 0x01, 0xde, 0x03, 0x80, 0xc1, 0xc7, 0x1c, 0x3c, 0xe7, 0xbc, 0x37, 0x3e, 0xf8, 0x7d, 0xff, 0xef, 0x8d, 0xdf, 0x1b, 0xe1, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};

void setup(){
  Serial.begin(9600);
  //Initialize display by providing the display type and its I2C address.
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;); // Don't proceed, loop forever
  }
  delay(2000); // Pause for 2 seconds

  display.clearDisplay();

  Serial.println("Display Bitmap Image");
  show_Bitmap();
  Serial.println("Display Print Message");
  Print_msg();
  Serial.println("Display Print Message Scroll");
  Print_msg_scroll();
  Serial.println("Display Rectangle");
  Rect_Blank_filled();

}
void loop()
{
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(40, 5);
  display.println("POT VALUE");
  Serial.print("POT VALUE :");
  Pot_Value = analogRead(analog_Pin);
  Data = map(Pot_Value, 0, 1023, 0, 500);
  display.setCursor(60, 15);
  display.print(Data);
  Serial.println(Data);
  delay(1000);
  display.display();
}
// Shows fn bitmap
void show_Bitmap(void) {
  display.clearDisplay();
  display.drawBitmap(0, 0, makerguides, IMG_HEIGHT, IMG_WIDTH, WHITE);
  display.display();
  delay(1000);
}
// Shows fn print string
void Print_msg() {
  display.clearDisplay();
  display.setTextSize(1);             // The fontsize
  display.setTextColor(WHITE);    // Draw white text
  display.setCursor(5, 10);           // Start at top-left corner
  display.print("Makerguides.com");
  display.display();
  delay(3000);
}
//shows fn msg scroll
void Print_msg_scroll() {
  display.clearDisplay();
  display.setTextSize(1);             // The fontsize
  display.setTextColor(WHITE);        // Draw white text
  display.setCursor(0, 5);           // Start at top-left corner
  display.print("Hello");
  display.display();
  delay(3000);

  display.startscrollleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrollright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrolldiagright(0x00, 0x07);
  delay(2000);
  display.startscrolldiagleft(0x00, 0x07);
  delay(2000);
  display.stopscroll();
  delay(3000);
}

// Shows fn Rectangle display
void Rect_Blank_filled() {
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.drawRect(30, 5, 60, 25, WHITE);
  display.display();
  delay(2000);

  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.fillRect(30, 5, 60, 25, WHITE);
  display.display();
  delay(2000);
}

Cómo funciona el código de la pantalla OLED de Arduino Uno e I2C

He utilizado un IDE de Arduino para programar una placa Arduino Uno.

Paso 1: En primer lugar, he incluido el archivo de cabecera necesario para la pantalla OLED.

#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"

Paso 2: 

Si tienes la pantalla combinada con SPI e I2C, puedes usar el pin 4 de GPIO para usar un pin de RESET.

// #define OLED_RESET 4
// Adafruit_SSD1306 display(OLED_RESET);

Si sólo tienes una pantalla OLED I2C, no es necesario conectar el pin de reset. 

Adafruit_SSD1306 display(-1);

El parámetro (-1) significa que tu pantalla OLED no tiene un pin de RESET.

Paso 3: 

#define DIS_WIDTH 128 
#define DIS_HEIGHT 64

Defino la anchura y la altura de tu OLED. En este ejemplo, estoy usando una pantalla OLED de 128×64. Si estás usando otros tamaños, puedes cambiarlo en las variables DIS_WIDTH y DIS_HEIGHT 64.

Paso 4: Visualización de imágenes de mapa de bits.

static const uint8_t PROGMEM makerguides [] PROGMEM = { 0xff, ......

Para mostrar cualquier imagen, primero hay que convertirla en un mapa de bits monocromo. Convertir las imágenes a código Hex, y luego puede mostrar las imágenes.

Importante función de Arduino para la pantalla OLED I2C:

display.clearDisplay() : Todos los píxeles están apagados.

display.setTextSize() : Para establecer el tamaño de la fuente. Los argumentos que se pasan empiezan por 1.

display.setTextColor() : Para establecer el color del texto. Pasando los argumentos BLANCO: para el fondo oscuro y NEGRO: para un fondo brillante.

display.setCursor(X,Y) : Para mostrar la posición del cursor. Los argumentos que se pasan deben ser coordenadas x,y. horizontales (X) y verticales (Y).

display.print(): Imprime el mensaje en la pantalla como los datos de impresión en un monitor de serie.

display.display() : Para mostrar los datos.

display.drawBitmap(): Para mostrar una imagen de mapa de bits en la pantalla. Paso los argumentos 1 y 2 correspondientes a las coordenadas X e Y. El siguiente argumento es la matriz de bytes del mapa de bits monocromo, la anchura del mapa de bits en píxeles, la altura del mapa de bits en píxeles y el Color.

display.startscrollleft() & startscrollright(): Para desplazar la pantalla horizontalmente. 

startscrolldiagright() & startscrolldiagleft(): Para desplazar la pantalla en diagonal. En esta función, pasa los argumentos página de inicio y página de parada. La pantalla tiene ocho páginas de 0 a 7, por lo que se puede desplazar toda la pantalla pasando los parámetros 0x00 y 0x07.

display.stopscroll(): Para detener el desplazamiento.

display.drawRect(): Para dibujar un rectángulo en la pantalla. Esta función dibuja un rectángulo hueco con un borde de 1 píxel.

display.fillRect() : Para dibujar un rectángulo relleno.

Ambas funciones, pasando el argumento de coordenadas X e Y, ancho, alto y color.

Paso 5: 

void setup(){
  Serial.begin(9600);
  
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;); // Don't proceed, loop forever
  }

En la función de configuración, inicialice el monitor en serie y establezca la tasa de baudios a una velocidad de 9600.

display.begin(SSD1306_SWITCHCAPVCC, 0x3C) : Inicializa con la dirección I2C 0x3C

Pantalla OLED. Es fija y no se puede cambiar.

Aquí, estoy implementando algunas funciones adicionales. Usando esta función, puedes ver en la pantalla los mensajes, el desplazamiento del texto, las imágenes de mapa de bits y los rectángulos.

Antes de ejecutar esta función mediante un terminal serie, imprima el mensaje para una tarea específica.

show_Bitmap(): Para que esta función muestre las imágenes de mapa de bits. 

Print_msg() : Para ayudar a esta función a imprimir los mensajes.

Print_msg_scroll() : Para ayudar a esta función a desplazar el mensaje de impresión. 

Rect_Blank_filled() : Para ayudar a esta función Dibujar un rectángulo y relleno. 

¿Cómo se muestran los datos en una pantalla OLED?

Paso 6: En el bucle void(), muestra un valor del potenciómetro.

void loop()
{
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(40, 5);
  display.println("POT VALUE");
  Serial.print("POT VALUE :");
  Pot_Value = analogRead(analog_Pin);
  Data = map(Pot_Value, 0, 1023, 0, 500);
  display.setCursor(60, 15);
  display.print(Data);
  Serial.println(Data);
  delay(1000);
  display.display();
}

La salida de la pantalla OLED en el Terminal Serial

La salida de la pantalla OLED en el Terminal Serial

Conclusión

Después de este tutorial, has aprendido a interconectar una pantalla OLED con una placa Arduino, y puedes mostrar varios tonos, imágenes y cadenas.

Espero que hayas encontrado este tutorial informativo. Si lo has hecho, ¡compártelo con un amigo al que le guste la electrónica y hacer cosas!

Me encantaría saber qué proyecto tienes pensado construir o has hecho ya con el Arduino.

Por favor, comenta abajo si tienes alguna pregunta o sugerencia o crees que faltan cosas en este tutorial.

Tenga en cuenta que los comentarios son retenidos por la moderación para evitar el spam.