//OLED movimento de imagem
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C
static unsigned char pascoa[] U8G_PROGMEM = { //pascoa = nome do meu desenho
0x00,0xf0,0x0f,0x00,0x00,0xfc,0x39,0x00,0x00,0x06,0x20,0x00,
0x00,0x02,0x40,0x00,0x00,0x03,0x80,0x00,0x80,0x01,0x00,0x01,
0xc0,0x00,0x00,0x02,0x60,0x00,0x00,0x06,0x30,0x0e,0x00,0x04,
0x10,0x1e,0x00,0x04,0x10,0xff,0x00,0x0c,0x10,0xfc,0xff,0x0b,
0x10,0x30,0xff,0x0b,0x10,0x60,0x00,0x08,0x10,0xc0,0xff,0x0b,
0x10,0x60,0x00,0x08,0x10,0x60,0x78,0x18,0x10,0xc0,0xcf,0x11,
0x10,0x00,0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x06,0x00,0x10,
0x30,0x04,0x00,0x10,0x20,0x18,0x00,0x18,0x60,0x60,0x30,0x08,
0x40,0xc8,0x1f,0x08,0xc0,0x10,0x00,0x04,0x80,0xe1,0x3f,0x02,
0x00,0x03,0x00,0x03,0x00,0x02,0x80,0x01,0x00,0x0c,0x60,0x00,
0x00,0x78,0x3f,0x00,0x00,0xe0,0x03,0x00
};
//Faça o seu 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 - as coordenadas a seguir são para o meu
//u8g.drawXBMP( 0, 18, 32, 32, pascoa); // canto superior esquerdo para este desenho
//u8g.drawXBMP( 0, 34, 32, 32, pascoa); // canto inferior esquerdo para este desenho
//u8g.drawXBMP( 98, 18, 32, 32, pascoa); // canto superior direito para este desenho
//u8g.drawXBMP( 98, 34, 32, 32, pascoa); // canto inferior direito para este desenho
// 32 x 32 = tamanho do desenho
u8g.drawXBMP( coluna, linha, 32, 32, pascoa); //pascoa = nome do meu desenho
}
Veja também este outro:
//Feliz Páscoa
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C
static unsigned char felizPascoa[] U8G_PROGMEM = {
0xef,0x05,0xf9,0x80,0xf3,0x21,0x04,0x81,0xc0,0xf6,0x21,0x04,
0xc1,0x40,0xf4,0xe7,0x04,0x61,0xc0,0xf7,0x21,0x04,0x31,0x40,
0xf4,0x21,0x04,0x19,0xc0,0xf6,0xe1,0x3d,0xf9,0x80,0xf3,0x00,
0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
0x00,0xf0,0xcf,0x67,0x0c,0xc7,0xf7,0x51,0x94,0x92,0x48,0xf4,
0x51,0x14,0x82,0x48,0xf4,0x49,0x14,0x82,0x48,0xf4,0xc7,0x67,
0x82,0xc8,0xf7,0x41,0x84,0x82,0x48,0xf4,0x41,0x84,0x82,0x48,
0xf4,0x41,0x94,0x92,0x48,0xf4,0x41,0x64,0x0c,0x47,0xf4,0x00,
0x00,0x00,0x00,0xf0
};
int coluna, linha, vai, desce;
void setup() {
u8g.setFont(u8g_font_10x20);
u8g.setColorIndex(1);
u8g.setContrast(255);
coluna = 0;
linha = 0;
vai = 1;
desce = 1;
}
void loop() {
u8g.firstPage();
do {
mostraDesenho();
} while( u8g.nextPage() );
delay(50);
if (vai){
coluna += 2;
if (coluna > 92){
coluna = 92;
vai = 0;
}
}
else{
coluna -= 2;
if (coluna < 0){
coluna = 2;
vai = 1;
}
}
if (desce){
linha += 2;
if (linha > 44){
linha = 44;
desce = 0;
}
}
else{
linha -= 2;
if (linha < 0 ){
linha = 0;
desce = 1;
}
}
}
void mostraDesenho(){
u8g.drawXBMP( coluna, linha, 36, 20, felizPascoa);
}