#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
/* Cria o objeto de controle do display OLED com a resolução de 128x64 pixels. */
Adafruit_SSD1306 display(128, 64);
static const unsigned char PROGMEM nome_imagem[] = {
// 'enedina', 128x64px
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x02, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xee, 0xb3, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3e, 0xee, 0xb2, 0x7c, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7a, 0x25, 0x35, 0x9e, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xc4, 0x24, 0x34, 0xbb, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xa1, 0x25, 0x15, 0xb3, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x6a, 0x70, 0x0d, 0x30, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x0e, 0x93, 0xc0, 0x03, 0xa1, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x18, 0x17, 0x80, 0x01, 0xe0, 0x38, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x34, 0x1e, 0x00, 0x00, 0x78, 0x6c, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0x76, 0xba, 0x20, 0x00, 0x5c, 0x06, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0xfb, 0x66, 0x00, 0x40, 0x66, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf9, 0x9c, 0xde, 0x03, 0xf0, 0x7b, 0x13, 0x9f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf1, 0xa7, 0xbe, 0x1f, 0xfe, 0x3d, 0x8b, 0x8f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe3, 0xdb, 0x7e, 0x1f, 0xfe, 0x3e, 0xd4, 0xc7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe3, 0xe6, 0xfe, 0x1f, 0xfe, 0x3f, 0x49, 0xc7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe7, 0x3e, 0xfe, 0x1f, 0xfe, 0x3f, 0x64, 0xe7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc6, 0xcd, 0xfe, 0x1f, 0xfe, 0x3f, 0xb3, 0x63, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc4, 0x7b, 0xfe, 0x3e, 0xee, 0x3f, 0xd8, 0xa3, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xcf, 0x1b, 0xfe, 0xb9, 0xf7, 0x3f, 0xda, 0xf3, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xcd, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xfd, 0x33, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8c, 0xd7, 0xfe, 0xff, 0xff, 0x7f, 0xe8, 0xb1, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8f, 0xb7, 0xfe, 0x7f, 0xff, 0x7f, 0xec, 0xf9, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9f, 0xef, 0xff, 0xbf, 0xff, 0xff, 0xf7, 0xf9, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x18, 0x6f, 0xff, 0xdf, 0xff, 0xff, 0xf6, 0x38, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x18, 0x6f, 0xff, 0xdf, 0xff, 0xff, 0xf4, 0x18, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x90, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x09, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x98, 0xef, 0xff, 0xbf, 0xf7, 0xff, 0xf6, 0x79, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x1f, 0xef, 0xff, 0xbf, 0xff, 0xff, 0xf7, 0xf8, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x1f, 0xef, 0xff, 0x3f, 0xff, 0xff, 0xf7, 0xf8, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9c, 0x6f, 0xfe, 0x3f, 0xf9, 0xff, 0xf6, 0x99, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xfc, 0x3f, 0xf8, 0xff, 0xff, 0xd9, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x9d, 0xf7, 0xf0, 0x3f, 0xfc, 0x1f, 0xef, 0x39, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x8c, 0x77, 0xe0, 0x3f, 0xf8, 0x03, 0xec, 0x31, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xce, 0xff, 0x80, 0x3f, 0xf8, 0x00, 0xff, 0x73, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xcc, 0x3b, 0x00, 0x1f, 0xf8, 0x00, 0x5e, 0x73, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc7, 0x5a, 0x00, 0x1f, 0xf8, 0x00, 0x1b, 0x63, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xc6, 0xfc, 0x00, 0x1e, 0xf8, 0x00, 0x3a, 0x63, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe7, 0x1e, 0x00, 0x0f, 0xf8, 0x00, 0x78, 0xe7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe3, 0xa6, 0x00, 0x0f, 0xf8, 0x00, 0x65, 0xc7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xe3, 0xbd, 0x00, 0x07, 0xf8, 0x00, 0xf5, 0xc7, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf1, 0x93, 0x80, 0x07, 0xf8, 0x01, 0xd3, 0x8f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf9, 0xf1, 0xc0, 0x07, 0xf8, 0x03, 0xaf, 0x9f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0xe5, 0xe0, 0x03, 0xf8, 0x07, 0x57, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0x73, 0x78, 0x03, 0xfc, 0x1e, 0x6e, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x3e, 0x3c, 0x01, 0xfc, 0x3b, 0x1c, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x1d, 0x2f, 0x81, 0xe9, 0xf4, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0x8b, 0xf0, 0x0f, 0xfb, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf2, 0xff, 0xfa, 0x2f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe6, 0xf5, 0xaf, 0xaf, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xfc, 0xa2, 0xbc, 0xdf, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xfe, 0x22, 0xb8, 0x7f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xe2, 0xc7, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
/* Primeiro parâmetro: Define o tipo de inicialização do display, existem
algumas opções além de SSD1306_SWITCHCAPVCC. Aqui estão algumas delas:
SSD1306_EXTERNALVCC: Se o display é alimentado por uma fonte externa, não pela saída de 5V do Arduino.
SSD1306_INTERNALVCC: Se o display possui seu próprio regulador de tensão interna.
SSD1306_SWITCHCAPVCC: Se o display é alimentado diretamente do pino de 5V do Arduino.
Segundo parâmetro: Este é o endereço I2C do dispositivo, que é 0x3C no caso do display OLED SSD1306 padrão.
*/
display.invertDisplay(false);
/* Este método inverte todas as cores do display, ou seja, onde havia pixels brancos,
* agora serão pretos, e onde havia pixels pretos, agora serão brancos.
*/
display.clearDisplay(); // Limpa a tela toda
display.drawBitmap(0, 0, nome_imagem, 128, 64, WHITE);
/* Função que desenha uma imagem bitmap no display OLED.
* 0, 0: Ponto que inicia o desenho no display (origem do desenho).
* coracao: Nome da matriz de bytes da imagem.
* 128, 64: Dimensões da imagem.
* WHITE: Desenhará a imagem acendendo os pixels.
*/
display.display();
/*
Usado para atualizar o display OLED com os dados que foram desenhados ou modificados
desde a última vez que o comando display.display() foi chamado. Isso significa que qualquer desenho ou alteração que você fez no buffer de exibição não será visível no display até que você chame esse comando.
*/
}
void loop() { }