fbpixel
Etiquetas: , , ,
0
(0)

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

  • Computador
  • Arduino UNO
  • Cabo USB A Macho/B Macho
  • OLED TF052

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.

  • GND ligado à terra do microcontrolador
  • VCC Pino de alimentação. Tipicamente ligado ao pino de 3V ou 5V do microcontrolador.
  • SCL Relógio da comunicação I2C
  • SDA Dados da conexão 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:

  • U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE); para definir o display conforme o tipo
  • u8x8.begin(); para inicializar o display
  • u8x8.setPowerSave(0) para iluminar o display
  • u8x8.setFont(u8x8_font_chroma48medium8_r) para definir a fonte utilizada
  • u8x8.setFlipMode(0) para definir a orientação
  • u8x8.drawString() para escrever no display

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

  • Construir um relógio
  • Criar um menu interativo com um codificador rotativo

Sources

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

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?