Icono del sitio AranaCorp

Usando una pantalla OLED con Arduino

La pantalla OLED es una pantalla gráfica compacta con una resolución de 128 x 64 píxeles que permite dibujar y mostrar texto para crear una interfaz gráfica.

Hardware

Principio de funcionamiento

La pantalla OLED TF052 se basa en el circuito SSD1306 y en interfaces que utilizan la comunicación I2C.

Esquema

La pantalla OLED tiene 4 pines para permitir la gestión de la pantalla. Está alimentado por el microcontrolador y está conectado al bus I2C.

Código

Una vez que la pantalla de Oled esté correctamente conectada, puede modificar el siguiente código para obtener la funcionalidad deseada. En el siguiente ejemplo, simplemente realizaremos la visualización de un contador.
Para manejar la pantalla OLED del programa, la biblioteca utilizada es U8x8lib.h cuyas funciones son las siguientes:

Existen otras funciones más específicas para dibujar rectángulos, líneas o para mostrar imágenes.

//Libraries
#include <U8x8lib.h>//https://github.com/olikraus/u8glib

//Parameters
char cstr [16];//To convert int to char

//Variables
int oledCount  = 0;

//Objects
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init OLED screen
  u8x8.begin();
  u8x8.setPowerSave(0);
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setFlipMode(0);
  drawCentered(1, "Hello World!");
  u8x8.drawString(0, 2, "<-right");
  drawLeft(3, "left->");
  u8x8.drawString(0, 6, "counter =");
}

void loop() {
  OledCounter();
}

void OledCounter() { /* function OledCounter */
  //// Create a counter
  drawLeft(6, itoa(oledCount, cstr, 10));
  oledCount += 1;
  if (oledCount > 255) {
    oledCount = 0;
    drawLeft(6, "    ");
  }
  delay(200);
}

void drawCentered(int lin, char* str) { /* function drawCentered */
  //// Create a counter
  int col = int((16 - String(str).length()) / 2);
  u8x8.drawString(col, lin, str);
}

void drawLeft(int lin, char* str) { /* function drawLeft */
  //// Create a counter
  int col = 15 - String(str).length();
  u8x8.drawString(col, lin, str);
}




Resultado

Observe dónde se colocan las cuerdas mostradas y juegue con los parámetros de entrada de las funciones para comparar sus efectos. Esto le permitirá comprender mejor la biblioteca y las características del módulo Oled.

Aplicaciones

Fuentes

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código

Salir de la versión móvil