Menu

OLED movimento de imagem

#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
}

 

Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420
Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420

UFPR nas Redes Sociais


UFPR nas Redes Sociais