Problemi con la libreria U8glib e display 128x64 per Bromografo

Salve a tutti, ho un problema con la libreria in oggetto, qualcuno la conosce?

Io ho un display LCD12864B (128x64), sul quale vorrei visualizzare un timer programmabile e i simboli di 4 pulsanti, che ad ogni pressione variano le rispettive icone e gestiscono il timer.

Il tutto deve essere inserito in un bromografo.

Ho eseguito già numerose ricerche sul web ma non ho trovato nessuno spunto valido.

Il mio problema sta nel variare una piccola parte del display, lasciando invariato il resto.

Non riesco a trovare una guida esaustiva di questa libreria e non conosco di conseguenza i comandi.

Vi allego il file che sto sviluppando.... praticamente sono fermo all'inizio... ed ho già dubbi sul fatto che sia giusto!

Qualcuno mi aiuta?

Sono alle prime armi, ma con un display 16x2 e la libreria LiquidCrystal riesco a fare quello che voglio.

Bromografo2.0.ino (2.06 KB)

beppexile:
Non riesco a trovare una guida esaustiva di questa libreria e non conosco di conseguenza i comandi.

I casi sono due, o non hai guardato bene sul sito della libreria, sezioni wiki, dove c'è tutta la documentazione fatta benissimo, oppure non sei in grado di usare un display grafico, nel secondo caso lascia perdere e usa un normale lcd alfanumerico.

penso la seconda.... :o

Tuttavia, nessuna anima pia del forum può darmi un'input di come fare?
Imparo molto velocemente....

Comunque, anche se non mi sta aiutando nessuno, sto procedendo così:

#include "U8glib.h"
#define CS_PIN 10
U8GLIB_ST7920_128X64_1X u8g(CS_PIN);

void setup()
{
  u8g.firstPage();
  do
  {
    u8g.setFont(u8g_font_courB08);

    u8g.drawFrame(0, 0, 128, 64); //bordo esterno
    u8g.drawFrame(2, 2, 124, 60); //bordo interno

  } while (u8g.nextPage());

  delay(3000);

  u8g.firstPage();

  do
  {
    u8g.setFont(u8g_font_courB08);

    u8g.drawStr(10, 59, ">>");
    u8g.drawStr(45, 59, "+");
    u8g.drawStr(77, 59, "-");
    u8g.drawStr(101, 59, "Via!");

    u8g.drawFrame(0, 0, 128, 48); //bordo esterno
    u8g.drawFrame(0, 47, 128, 17); //bordo pulsanti
    u8g.drawFrame(0, 47, 32, 17); //bordo tra pulsanti 1-2
    u8g.drawFrame(63, 47, 33, 17); //bordo tra pulsanti 2-3-4
    u8g.drawFrame(2, 49, 28, 13); //pulsante 1
    u8g.drawFrame(33, 49, 29, 13); //pulsante 2
    u8g.drawFrame(65, 49, 29, 13); //pulsante 3
    u8g.drawFrame(97, 49, 29, 13); //pulsante 4

  } while (u8g.nextPage());
}


void loop()
{
  pinMode(2, INPUT);     //pulsante 1
  pinMode(3, INPUT);     //pulsante 2
  pinMode(4, INPUT);     //pulsante 3
  pinMode(5, INPUT);     //pulsante 4
  digitalWrite(2, HIGH); //pulsante 1
  digitalWrite(3, HIGH); //pulsante 2
  digitalWrite(4, HIGH); //pulsante 3
  digitalWrite(5, HIGH); //pulsante 4
  pinMode(6, OUTPUT);    //led
  pinMode(7, OUTPUT);    //relè
  digitalWrite(6, HIGH); //led
  int puls1 = digitalRead(2);
  int puls2 = digitalRead(3);
  int puls3 = digitalRead(4);
  int puls4 = digitalRead(5);

  if (puls1 == 1)
  {
    u8g.firstPage();
    do
    {
      u8g.setFont(u8g_font_courB08);

      //u8g.drawStr(10, 59, ">>");
      u8g.drawStr(45, 59, "+");
      u8g.drawStr(77, 59, "-");
      u8g.drawStr(101, 59, "Via!");

      u8g.drawFrame(0, 0, 128, 48); //bordo esterno
      u8g.drawFrame(0, 47, 128, 17); //bordo pulsanti
      u8g.drawFrame(0, 47, 32, 17); //bordo tra pulsanti 1-2
      u8g.drawFrame(63, 47, 33, 17); //bordo tra pulsanti 2-3-4
      u8g.drawBox(2, 49, 28, 13); //pulsante 1
      u8g.drawFrame(33, 49, 29, 13); //pulsante 2
      u8g.drawFrame(65, 49, 29, 13); //pulsante 3
      u8g.drawFrame(97, 49, 29, 13); //pulsante 4
    } while (u8g.nextPage());
  }

  if (puls2 == 1)
  {
    u8g.firstPage();
    do
    {
      u8g.setFont(u8g_font_courB08);

      u8g.drawStr(10, 59, ">>");
      //u8g.drawStr(45, 59, "+");
      u8g.drawStr(77, 59, "-");
      u8g.drawStr(101, 59, "Via!");

      u8g.drawFrame(0, 0, 128, 48); //bordo esterno
      u8g.drawFrame(0, 47, 128, 17); //bordo pulsanti
      u8g.drawFrame(0, 47, 32, 17); //bordo tra pulsanti 1-2
      u8g.drawFrame(63, 47, 33, 17); //bordo tra pulsanti 2-3-4
      u8g.drawFrame(2, 49, 28, 13); //pulsante 1
      u8g.drawBox(33, 49, 29, 13); //pulsante 2
      u8g.drawFrame(65, 49, 29, 13); //pulsante 3
      u8g.drawFrame(97, 49, 29, 13); //pulsante 4
    } while (u8g.nextPage());
  }

  if (puls3 == 1)
  {
    u8g.firstPage();
    do
    {
      u8g.setFont(u8g_font_courB08);

      u8g.drawStr(10, 59, ">>");
      u8g.drawStr(45, 59, "+");
      //u8g.drawStr(77, 59, "-");
      u8g.drawStr(101, 59, "Via!");

      u8g.drawFrame(0, 0, 128, 48); //bordo esterno
      u8g.drawFrame(0, 47, 128, 17); //bordo pulsanti
      u8g.drawFrame(0, 47, 32, 17); //bordo tra pulsanti 1-2
      u8g.drawFrame(63, 47, 33, 17); //bordo tra pulsanti 2-3-4
      u8g.drawFrame(2, 49, 28, 13); //pulsante 1
      u8g.drawFrame(33, 49, 29, 13); //pulsante 2
      u8g.drawBox(65, 49, 29, 13); //pulsante 3
      u8g.drawFrame(97, 49, 29, 13); //pulsante 4
    } while (u8g.nextPage());
  }

  if (puls4 == 1)
  {
    u8g.firstPage();
    do
    {
      u8g.setFont(u8g_font_courB08);

      u8g.drawStr(10, 59, ">>");
      u8g.drawStr(45, 59, "+");
      u8g.drawStr(77, 59, "-");
      //u8g.drawStr(101, 59, "Via!");

      u8g.drawFrame(0, 0, 128, 48); //bordo esterno
      u8g.drawFrame(0, 47, 128, 17); //bordo pulsanti
      u8g.drawFrame(0, 47, 32, 17); //bordo tra pulsanti 1-2
      u8g.drawFrame(63, 47, 33, 17); //bordo tra pulsanti 2-3-4
      u8g.drawFrame(2, 49, 28, 13); //pulsante 1
      u8g.drawFrame(33, 49, 29, 13); //pulsante 2
      u8g.drawFrame(65, 49, 29, 13); //pulsante 3
      u8g.drawBox(97, 49, 29, 13); //pulsante 4
    } while (u8g.nextPage());
  }


  if (puls1 == 0)
  {
    if (puls2 == 0)
    {
      if (puls3 == 0)
      {
        if (puls4 == 0)
        {
          u8g.firstPage();
          do
          {
            u8g.setFont(u8g_font_courB08);

            u8g.drawStr(10, 59, ">>");
            u8g.drawStr(45, 59, "+");
            u8g.drawStr(77, 59, "-");
            u8g.drawStr(101, 59, "Via!");

            u8g.drawFrame(0, 0, 128, 48); //bordo esterno
            u8g.drawFrame(0, 47, 128, 17); //bordo pulsanti
            u8g.drawFrame(0, 47, 32, 17); //bordo tra pulsanti 1-2
            u8g.drawFrame(63, 47, 33, 17); //bordo tra pulsanti 2-3-4
            u8g.drawFrame(2, 49, 28, 13); //pulsante 1
            u8g.drawFrame(33, 49, 29, 13); //pulsante 2
            u8g.drawFrame(65, 49, 29, 13); //pulsante 3
            u8g.drawFrame(97, 49, 29, 13); //pulsante 4
          } while (u8g.nextPage());
        }
      }
    }
  }
}

Qualcuno può dirmi se sono sulla giusta strada?

Ragazzi, piano con le risposte che non riesco a leggerle tutte!