Libreria per Menu su LCD?

Buongiorno a tutti,

Sto cercando di realizzare un menù su uno schermo LCD 16x2 I2C (il solito schermo che mettono praticamente in tutti gli starter kit)

Volevo utilizzare la MENWIZ di Brunialti (versione 1.3.2 - GitHub - brunialti/MENWIZ_1_3_2: Editable text variables and user grants) ma non c’è verso di farla funzionare, anche con un semplicissimo sketch tipo questo che vi allego qua sotto il mio Duemilanove continua a resettarsi perchè esaurisce la RAM ogni volta che passa nel loop.

//The full code is in library example file Quick_tour.ino
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <buttons.h>
#include <MENWIZ.h>
#include <EEPROM.h>

// DEFINE ARDUINO PINS FOR THE NAVIGATION BUTTONS
#define UP_BOTTON_PIN       9
#define DOWN_BOTTON_PIN     10
#define LEFT_BOTTON_PIN     7 
#define RIGHT_BOTTON_PIN    8
#define CONFIRM_BOTTON_PIN  12
#define ESCAPE_BOTTON_PIN   11

menwiz tree;
// create lcd obj using LiquidCrystal lib
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

int  list,sp=110;

void setup(){
  _menu *r,*s1,*s2;

  Serial.begin(19200);    
  tree.begin(&lcd,20,4); //declare lcd object and screen size to menwiz lib

  r=tree.addMenu(MW_ROOT,NULL,F("Root"));
    s1=tree.addMenu(MW_SUBMENU,r, F("Node1"));
    s1=tree.addMenu(MW_VAR,r, F("Node2"));
      s1->addVar(MW_ACTION,myfunc);
       tree.navButtons(UP_BOTTON_PIN,DOWN_BOTTON_PIN,LEFT_BOTTON_PIN,RIGHT_BOTTON_PIN,ESCAPE_BOTTON_PIN,CONFIRM_BOTTON_PIN);
  }

void loop(){
  tree.draw(); 
  }

void myfunc(){
  Serial.println("ACTION FIRED");
  }

E’ solo lo sketch di esempio fornito con la libreria ridotto all’osso per vedere che comportamento aveva, ma non c’è verso di farlo andare. Lo schermo continua a spegnere e riaccendere velocissimo la retroilluminazione e aggiungendo qualche print seriale e qualche delay ho scoperto che si resetta in continuazione.

Cos’altro posso usare per fare un menu funzionante?

Grazie mille a tutti,

Ale.

Ma perchè se io scrivo un post sul forum non mi considera mai nessuno? :(

Up..

Probabilmente perché pensi che tutti conoscano la libreria in questione.

Ti consiglio di impratichirti con la libreria usando gli esempi allegati, ma prima ancora di usare gli esempi della libreria LiquidCrystal_I2C.