
Bibliotecas Arduíno utilizadas:
- SSD1306 by Adafruit.
E dependências das respectivas bibliotecas acima.
Seleção da placa na Arduíno IDE:
Selecionamos o módulo ESP32C3.
Código:
#include "Adafruit_SSD1306.h"
// Define o tamanho do display OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
const unsigned char uktech_negativo_branco [] PROGMEM = {
// 'uktech_negativo_branco, 128x32px
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xe0, 0xff, 0xfe, 0xff, 0xe0, 0xfc, 0x1c, 0x0e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xe1, 0xff, 0xfe, 0xff, 0xe3, 0xff, 0x3c, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xe3, 0xff, 0xfe, 0xff, 0xe7, 0xff, 0xbc, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xe7, 0x81, 0xe0, 0xf0, 0x0f, 0xcf, 0xbc, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xef, 0x01, 0xe0, 0xf0, 0x0f, 0x02, 0x3c, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xfe, 0x01, 0xe0, 0xf0, 0x1e, 0x00, 0x3c, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xfe, 0x01, 0xe0, 0xff, 0xde, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xfe, 0x01, 0xe0, 0xff, 0xde, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3d, 0xff, 0x01, 0xe0, 0xff, 0xde, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x78, 0x3d, 0xe7, 0x81, 0xe0, 0xf0, 0x1e, 0x00, 0x3c, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x78, 0x3d, 0xe3, 0xc1, 0xe0, 0xf0, 0x0f, 0x03, 0xbc, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3c, 0x79, 0xe3, 0xc1, 0xe0, 0xff, 0xef, 0xcf, 0xbc, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3f, 0xf9, 0xe1, 0xe1, 0xe0, 0xff, 0xe7, 0xff, 0xbc, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf1, 0xe0, 0xf1, 0xe0, 0xff, 0xe3, 0xff, 0x3c, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xc1, 0xe0, 0xf9, 0xe0, 0xff, 0xe0, 0xfc, 0x3c, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x20, 0x1c, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x13, 0x24, 0xb2, 0xe8, 0x89, 0x2c, 0xa9, 0x88, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x12, 0xcf, 0x6a, 0xad, 0xcb, 0xc9, 0x76, 0x98, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1a, 0x6d, 0x6e, 0xbd, 0xcb, 0xe9, 0xad, 0x98, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
//Velocidade do monitor serial
Serial.begin(115200);
// Pinos do barramento I2C
Wire.begin(18, 19);
// Verifica estado de inicialização do display, acusa falha em caso de erro
if (!display.begin(SSD1306_SWITCHCAPVCC, 0, false, true)) {
Serial.println(F("Falha ao inicializar o SSD1306"));
for (;;)
;
}
}
void loop() {
display.clearDisplay();
display.drawBitmap(0, 0, uktech_negativo_branco, 128, 32, SSD1306_WHITE); // Draw the bitmap
display.display(); // Show the image on the display
delay(1000); // Pause for 1 second
}
Onde o vetor uktech_negativo_branco[] foi gerado a partir da seguinte imagem.

Como obter o vetor de bytes a partir de uma imagem:
Basta utilizar algum das ferramentas abaixo:
Resultado:

Sobre o autor:
Matheus Ernan Reichert
Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui experiência no domínio de micro controladores e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes.