Site icon AranaCorp

Usar um display OLED 128×64 com o Arduino

O display OLED é um visor gráfico compacto com resolução de 128×64 pixels que permite fazer desenhos e exibir texto para criar uma interface gráfica.

Material

Princípio de funcionamento

O display OLED TF052 é baseado no circuito SSD1306 e interage por comunicação I2C.

Esquema

O display OLED tem 4 pinos que permitem gerenciar a exibição. Ele é alimentado pelo microcontrolador e conecta-se ao barramento I2C.

Código

Com o display OLED devidamente conectado, pode modificar o código abaixo para obter a funcionalidade que deseja. No exemplo a seguir, vamos simplesmente realizar a exibição de um contador.

Para gerenciar o ecrã OLED no programa, utilizamos a biblioteca U8x8lib.h, cujas funções a se conhecer são as seguintes:

Existem outras funções mais específicas para desenhar retângulos, linhas ou exibir imagens.

//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 bem o posicionamento das cadeias de caracteres exibidas e brinque com os parâmetros de entrada das funções para comparar os seus efeitos. Isso permite uma boa apreensão da biblioteca e uma melhor compreensão das funcionalidades do módulo OLED.

Aplicações

Sources

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Exit mobile version