Menu

OLED Múltiplas páginas

#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C

//funções que exibirão as 'páginas'
void pagina1();
void pagina2();
void pagina3();
void pagina4();
void pagina5();

//quantas 'páginas' serão?
const int paginasTotal = 5;

//índice da página atual
int paginaAtual;

//função 'mestre' para chamar as funções de exibição das 'páginas'
void (*mostrar[paginasTotal])() = { pagina1, pagina2, pagina3, pagina4, pagina5 };

//quanto tempo cada 'página' será exibida?
int duracao [paginasTotal] = { 1000, 2000, 800, 300, 3500 };

//esta é uma imagem .XBM
static unsigned char sorriso[] U8G_PROGMEM = {
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
};

//função setup do Arduino
void setup() {
  u8g.setFont(u8g_font_unifont); //pode trocar a fonte se quiser
  u8g.setColorIndex(1);
  paginaAtual = 0; //as páginas começam em zero
}

//função loop do Arduino
void loop() {
  u8g.firstPage();
  do {
    (*mostrar[paginaAtual])(); //descobre qual 'página' exibir
  } while( u8g.nextPage() );
  delay(duracao[paginaAtual]); //exibe a 'página' por certo tempo
  paginaAtual = paginaAtual + 1; //próxima 'página'
  if (paginaAtual == paginasTotal){
    paginaAtual = 0;
  }
}

void pagina1() { //exibe a 'página' 1
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 0, 15, "Pagina 1"); //mude o conteúdo e posição
  return 0;
}

void pagina2(){
  u8g.drawXBMP( 64, 18, 32, 32, sorriso); //mude a posição
  return 0;
}

void pagina3() {
  u8g.drawStr( 0, 15, "Pagina 3");
  return 0;
}

void pagina4(){
  u8g.drawStr( 0, 15, "Pagina 4");
  return 0;
}

void pagina5(){
  u8g.setFont(u8g_font_10x20);
  u8g.setPrintPos(0, 34);
  u8g.print("Feliz P");
  u8g.print(char(225)); //procure outros caracteres especiais se necessário
  u8g.print("scoa");
  return 0;
}

 

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