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