MENWIZ: una libreria per creare menu su LCD

una donna sul forum ?
scusa l'OT ma e' una rarita'.
Benvenuta :smiley:

mmmmmmmm..... e strano?

dai ragazzi qualcuno puo' darmi una mano? :cry:

Non posso che quotare quanto già suggeritoti da nid69

buongiorno ragazzi non riesco a superare questo scoglio

Documents\Arduino\libraries\MENWIZ\MENWIZ.cpp:720:12: warning: case label value exceeds maximum value for type [enabled by default]

case 900: Serial.println(F("E900-Out of memory"));break;

^
AppData\Local\Temp\arduino_modified_sketch_246494\Test_all_var_types.ino:7:0:
Documents\Arduino\libraries\MENWIZ/MENWIZ.h:32:17: fatal error: LCD.h: No such file or directory

#include <LCD.h>

exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Mega or Mega 2560.

@nid69 utilizzo un keypad con 6 tasti collegati in analogico display 16x2

Quale LCD, questo

si esatto... collegato ai pin 46, 48, 56, 60, 61, 62 della ramp 1.4 i tasti al pin 13 che corrisponde ad un pin analogico

ti rispondo nel tuo topic, non inquiniamo questo

http://forum.arduino.cc/index.php?topic=403080.0

Ciao a tutti, vorrei realizzare un menù sul LCD che controlla una centralina per un miscelatore che sto realizzando.
Ho trovato questa libreria ma non riesco a far funzionare nemmeno un esempio...

Il problema è proprio alla base il collegamento con LCD.
Ho aggiunto le librerie extra che richiede, quelle che si trovano nello zip REQUIRED_LIBRARIES.zip ma anche con quelle nulla da fare.

Prima avevo un errore sul file I2CIO.cpp che cercava #include <../Wire/Wire.h> corretto in wire.h compila correttamente ma se carico su Arduino LCD inizia a flashare e non scrive nulla.

LCD che vorrei usare è questo LCD 20x4 con controller PCF8574AT

Questo il codice che riesco a compilare ma che manda in crisi l'LCD....

#include <FastIO.h>
#include <I2CIO.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>

#define BACKLIGHT_PIN     13

LiquidCrystal_I2C lcd(0x3F);  // Set the LCD I2C address

//LiquidCrystal_I2C lcd(0x38, BACKLIGHT_PIN, POSITIVE);  // Set the LCD I2C address


// Creat a set of new characters
const uint8_t charBitmap[][8] = {
   { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 },
   { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 },
   { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 },
   { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 },
   { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 },
   { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 },
   { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 },
   { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 }
   
};

void setup()
{
   int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0]));

  // Switch on the backlight
  pinMode ( BACKLIGHT_PIN, OUTPUT );
  digitalWrite ( BACKLIGHT_PIN, HIGH );
  
  lcd.begin(20,4);               // initialize the lcd 

   for ( int i = 0; i < charBitmapSize; i++ )
   {
      lcd.createChar ( i, (uint8_t *)charBitmap[i] );
   }

  lcd.home ();                   // go home
  lcd.print("Hello, ARDUINO ");  
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print (" FORUM - fm   ");
  delay ( 1000 );
}

void loop()
{
   lcd.home ();
   // Do a little animation by writing to the same location
   for ( int i = 0; i < 2; i++ )
   {
      for ( int j = 0; j < 16; j++ )
      {
         lcd.print (char(random(7)));
      }
      lcd.setCursor ( 0, 1 );
   }
   delay (200);
}

Qualcuno ha qualche idee su come posso risolvere???

Grazieeeeee

Salve a tutti,
lavorando ad un progetto alquanto complesso, sto cercando di usare MENWIZ per gestire i menù di un LCD I²C. Scaricata l'ultima versione, nella guida PDF contenuta nello ZIP ho letto:

The following libraries have to be included in the sketch:
· “new” LiquidCrystal Library by Francisco Malpartida. This library supports I2c, 4, 8 wires and other
lcd devices. the library is a drop replacement for the standard lib LiquidCrystal e LiquidCrystal_I2C.
The latest version can be found at https://bitbucket.org/fmalpartida/newliquidcrystal/
wiki/Home.
· Buttons compact library by Franky (see also “1.4 How to save memory space.” chapter)
· EEPROM library (one of Arduino the builtin libraries); (see also “1.4 How to save memory space”
chapter )
The first two libraries are provided inside the MENWIZ zip file and must be installed before the use of
MENWIZ.

Ho quindi decompresso REQUIRED_LIBRARIES.zip, prendendone le librerie e salvandole nella directory delle librerie assieme a MENWIZ. Siccome la “new” LiquidCrystal Library di Francisco Malpartida richiede (vedi sito libreria e guida PDF) che sia rimossa la libreria LiquidCrystal preinstallata (conflitto con i nomi dei file), ho fatto ciò. Non volendo cambiare il metodo di input (6 pulsanti con INPUT_PULLUP di default), ho aperto direttamente l'esempio quick_tour.ino; nella compilazione di quest'ultimo ho ricevuto un certo errore, descritto con precisione alla presente pagina: #include<..wire/wire.h> error using i2c lcd display. Sistemato l'errore come descitto da PaulS

Look at the I2CIO.cpp file. If it really says

#include <../Wire/Wire.h>

change it to

#include <Wire.h>

ho riavviato l'Arduino IDE 1.6.12 e ricompilato l'esempio. Questa volta l'errore non si è più presentato, anche se ne è giunto un altro, questa volta interno a MENWIZ, che purtroppo mi vedo costretto a non scrivere per non superare il limite di caratteri posto dal Forum. Se poi avete il coraggio e la voglia di leggere i logs, potete trovare 21 pagine di errori a catena QUI (documento Google). L'errore rende quindi la libreria inutilizzabile su nessuna board.

Codice:

//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"));
      s2=tree.addMenu(MW_VAR,s1, F("Node3"));
        s2->addVar(MW_LIST,&list);
        s2->addItem(MW_LIST, F("Option1"));
        s2->addItem(MW_LIST, F("Option2"));
        s2->addItem(MW_LIST, F("Option3"));
      s2=tree.addMenu(MW_VAR,s1, F("Node4"));
        s2->addVar(MW_AUTO_INT,&sp,0,120,10);  
    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");
  }

Detto questo, ho aggirato il problema usando la versione 1.3.2 beta di MENWIZ.
Ho cancellato le vecchie REQUIRED_LIBRARIES per sostituirle con quelle della beta, ho aggiornato MENWIZ alla versione 1.3.2, sistemato nuovamente l'errore della libreria LCD (Wire.h) e aperto l'IDE. Ho copiato ed incollato l'esempio dal PDF della guida (guida per la beta), compilato e...

Uso la libreria Wire alla versione 1.0 nella cartella: C:\Users\Marco\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.14\libraries\Wire 
Uso la libreria LiquidCrystal nella cartella: C:\Users\Marco\Desktop\Arduino\Arduino IDE\libraries\LiquidCrystal (legacy)
Uso la libreria Buttons nella cartella: C:\Users\Marco\Desktop\Arduino\Arduino IDE\libraries\Buttons (legacy)
Uso la libreria MENWIZ nella cartella: C:\Users\Marco\Desktop\Arduino\Arduino IDE\libraries\MENWIZ (legacy)
Uso la libreria EEPROM alla versione 2.0 nella cartella: C:\Users\Marco\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.14\libraries\EEPROM 
exit status 1
'class menwiz' has no member named 'navButtons'

Errore alla riga dell'esempio

tree.navButtons(UP_BOTTON_PIN, DOWN_BOTTON_PIN, LEFT_BOTTON_PIN, RIGHT_BOTTON_PIN, ESCAPE_BOTTON_PIN, CONFIRM_BOTTON_PIN);

Come è possibile? In MENWIZ.cpp (v. 1.3.2) esiste veramente navButtons! Perfino nella guida (non quella vecchia, ovviamente) si fa riferimento a questa funzione!
Ringrazio in anticipo, nella speranza che qualcuno sia in grado di aiutarmi nella compilazione dell'esempio (beta o meno).
SquareBoot

Se guardi dentro il file .h, vedrai che quel comando è opzionale:
#ifdef BUTTON_SUPPORT

infatti all'inizio del file .h si legge:
//#define BUTTON_SUPPORT //comment if you do'nt want to use the Button methods!

Buongiorno a tutti ho una domanda per Brunialti la versione Menwizz che hai postato funziona con la ide 1.65 ? perche a me da tantissimi errori grazie in anticipo

Buongiorno, sto dando un'occhiata ai vari metodi per gestire i menu su arduino ed ho incontrato questa libreria.

A me servirebbero le seguenti funzioni che non ho trovato esplicitamente supportate:

  1. l'utente sceglie una funzione dal menu, avvio la funzione con visualizzazione a display di alcune funzioni, a funzione ultimata il menu ritorna visibile ed utilizzabile
  2. una delle funzioni richiede l'avvio di un loop comandato da pulsante: da menu scelgo la funzione ed una volta avviata la comando con un'altra coppia di pulsanti (tipo start/stop) ... allo stop si torna al menu visibile ed utilizzabile.

Menwiz gestisce queste due funzioni?

Ringrazio anticipatamente!

ciao a tutti,
vorrei chiedervi se secondo voi questa libreria potrebbe fare al caso mio, oppure se è sprecata, data la semplicità di quello che devo fare.

in pratica vorrei usare 2 pulsanti, uno per selezionare e uno per dare l'ok. ad ogni pressione del pulsante SEL, appaiono ciclicamente dei numeri, mentre quando premo OK, viene memorizzato il numero visualizzato in una variabile. serve per selezionare la freq di campionamento di un data logger che sto cercando di fare.

al momento ho quasi risolto con l'utilizzo di una funzione che usa digitalRead sui due pulsanti, ma ho ancora qualche problemino. vale la pena che mi metta a studiare questa libreria, second voi?

grazie!

io direi di no, perche' il tuio caso e' molto semplice, ed in piu' questa libreria non viene aggiornata da tempo ed ha qualche rpoblema con i nuovi ide

Buongiorno a tutti.

Intanto vorrei premettere che, per quanto non abbia saltato le tappe (uso del pulsante, accensione di un led, gestione di un display e via dicendo) sono assolutamente "ignorante" in materia.
ho trovato qualche giorno fa questa libreria e l'ho trovata utile per un piccolissimo progetto che ho in mente.
ma mi sono imbattuto fin da subito in un problema che, a quanto pare è banalissimo.

Il solo esempio che ho trovato in rete (e che ho per il momento copiato/incollato) prevede l'uso di un display (rs, en, D0-D4) e 6 pulsanti collegati sulla linea analogica.

poichè intendo utilizzare le 6 linee analogiche, ho pensato di passare a pulsanti collegati in digitale.
Ma davvero non riesco...

per cominciare, ho definito i pin sui quali collegherò i miei pulsanti

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

dopo aver creato la struttura del menu, ho scritto quanto segue:

 menu.navButtons(UP_BOTTON_PIN, DOWN_BOTTON_PIN, CONFIRM_BOTTON_PIN, ESCAPE_BOTTON_PIN);
 menu.addUsrNav(menuKeys,4);(

se compilo in questo modo, mi restituisce:

test1:108: error: 'menuKeys' was not declared in this scope

Ho anche letto che, questa libreria non viene aggiornata e che potrebbe avere problemi con alcuni IDE (uso la ver.1.8.5 di arduino).

sapreste dirmi dove sbaglio?

Grazie in anticipo

DL

se invece inserisco i nomi dei pulsanti, come precedentemente dichiarato (X_BOTTON_PIN),

>DaddyLee: essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

ATTENZIONE: la Libreria MENWIZ risulta avere problemi con le versioni più aggiornate dell'IDE ed è quindi inutilizzabile.

L'autore, "brunialti", è parecchio che non si collega e non supporta più questa libreria che, quindi, sta diventando sempre più ... abandonware :confused:

Sete avvisati ...

Guglielmo

Aggiornamento: Ho trovato una versione leggermente aggiornata (sempre di 5 anni fa) della libreria MENWIZ che però compila correttamente anche con l'ultimo IDE (provata con la 1.8.9) ... QUI.

Gli esempi vanno corretti perché contengono delle include non necessarie (es. LCD.h) e istanze alla LiquidCrystal_I2C con ancora la vecchia sintassi non più supportata.

Resta sempre il discorso che l'utente "brunialti" è sparito e quindi non c'è supporto oltre quanto scritto in questo thread.

Guglielmo