#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C
static unsigned char sorriso[] U8G_PROGMEM = { //sorriso = nome do meu desenho
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00,
0x00, 0xFE, 0x3F, 0x00, 0x80, 0x0F, 0xF0, 0x00, 0xC0, 0x01, 0xE0, 0x01,
0xE0, 0x00, 0x80, 0x03, 0x70, 0x00, 0x00, 0x07, 0x30, 0x00, 0x00, 0x0E,
0x18, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,
0x0C, 0x1C, 0x1C, 0x18, 0x0C, 0x1C, 0x1C, 0x10, 0x0C, 0x08, 0x08, 0x10,
0x0C, 0x00, 0x00, 0x10, 0x0C, 0x00, 0x00, 0x10, 0x0C, 0x00, 0x00, 0x10,
0x0C, 0x00, 0x00, 0x10, 0x0C, 0x00, 0x00, 0x10, 0x0C, 0x03, 0x60, 0x08,
0x08, 0x07, 0x30, 0x08, 0x18, 0x0E, 0x38, 0x0C, 0x10, 0xF8, 0x0F, 0x0C,
0x30, 0xF0, 0x07, 0x06, 0x70, 0x00, 0x00, 0x07, 0xE0, 0x01, 0xC0, 0x03,
0x80, 0x03, 0xF0, 0x00, 0x00, 0x1F, 0x7C, 0x00, 0x00, 0xFC, 0x1F, 0x00,
0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
};
//Faça um ovo de Páscoa e troque a imagem acima!
//desenhe seu ovo, ou seus ovos, e copie os valores hexadecimais
// veja como aqui: https://tiaplicada.ufpr.br/escolas/senhorinha/criar-arquivo-xbm/
int coluna, linha, vai, desce;
void setup() {
u8g.setFont(u8g_font_10x20);
u8g.setColorIndex(1);
u8g.setContrast(255); //teste com outros valores, por exemplo 127
// mude a tela se quiser
// u8g.setRot180(); //teste com 90 para ver o resultado
coluna = 0;
linha = 18;
vai = 1;
desce = 1;
}
void loop() {
u8g.firstPage();
u8g.setFont(u8g_font_10x20);//teste outras fontes
do {
mostraTexto();
mostraDesenho();
} while( u8g.nextPage() );
delay(150); //mude o tempo para trocar a velocidade de deslocamento
if (vai){
coluna += 2; //pode variar de 1 em 1, de 3 em 3,... teste
if (coluna > 98){ //os limites dependem do tamanho da imagem
coluna = 96;
vai = 0;
}
}
else{
coluna -= 2; //pode variar de -1 em -1, de -3 em -3,... teste
if (coluna < 0){
coluna = 2;
vai = 1;
}
}
if (desce){
linha += 2;
if (linha > 34){ //os limites dependem do tamanho da imagem
linha = 36;
desce = 0;
}
}
else{
linha -= 2;
if (linha < 18 ){
linha = 18;
desce = 1;
}
}
}
void mostraTexto(){
u8g.setPrintPos(5, 15);
u8g.print("Feliz P");
//procure os caracteres especiais que precisar
u8g.print(char(225));
u8g.print("scoa");
}
void mostraDesenho(){
//Teste os limites com o seu desenho
//u8g.drawXBMP( 0, 18, 32, 32, sorriso); // canto superior esquerdo para este desenho
//u8g.drawXBMP( 0, 34, 32, 32, sorriso); // canto inferior esquerdo para este desenho
//u8g.drawXBMP( 98, 18, 32, 32, sorriso); // canto superior direito para este desenho
//u8g.drawXBMP( 98, 34, 32, 32, sorriso); // canto inferior direito para este desenho
// 32 x 32 = tamanho do desenho
u8g.drawXBMP( coluna, linha, 32, 32, sorriso); //sorriso = nome do meu desenho
}