Problema libreria MenWiz

Salve a tutti, scrivo qui per cercare di risolvere un problema a cui non sono capace di venirne a capo e spero qualcuno piu esperto di me sappia spiegarmi come risolverlo.
Premetto che ho scritto anche nel post megatopic qualche giorno fa ma non ho avuto alcuna risposta, e non sapendo se avessi scritto nel posto sbagliato rifaccio la domanda qui.
Il mio problema e questo, se carico lo sketch quicktour, demo della libreria menuwiz, sul displei compare tutto regolarmente, ma da tastierino non posso muovermi dentro il menu.
La tastiera e stata fatta con 8 pulsanti collegati tutti a dei pin digitali della arduino Mega con una resistenza da 10K verso massa, una da 330 om verso il pin dell’arduino e il +5 volt all’altro capo del pulsante. ( Vedi schema )
La pulsantiera e stata provata usando questo sketch

 const int keyPin[8]={
  30,32,34,36,38,40,42,44};  //Pin tastiera
int ingState = 0;          //Stato ingresso

void setup() {
  Serial.begin(9600);
// Setto i pin della tastiera come ingressi
  for(int i=0;i<8;i++){
    pinMode(keyPin[i], INPUT);
  }
  
}
 
void loop() {

   for(int i=0;i<8;i++){
    ingState = digitalRead(keyPin[i]);
    if (ingState == HIGH ){
      if (keyPin[i] == 30){
      Serial.println("LEFT");
      }
      if (keyPin[i] == 32){
      Serial.println("DOWN");
      } 
      if (keyPin[i] == 34){
      Serial.println("UP");
      } 
      if (keyPin[i] == 36){
      Serial.println("RIGHT");
      } 
      if (keyPin[i] == 38){
      Serial.println("P O1");
      } 
      if (keyPin[i] == 40){
      Serial.println("P 02");
      } 
      if (keyPin[i] == 42){
      Serial.println("P 03");
      }
      if (keyPin[i] == 44){
      Serial.println("P 04");
      }  
     }
    }
  }

Sulla seriale leggo tutti i valori corretti, ma se modifico una parte dello sketch quik_tour del menu wiz in questo modo non funziona

 //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       34
#define DOWN_BOTTON_PIN     32
#define LEFT_BOTTON_PIN     30 
#define RIGHT_BOTTON_PIN    36
#define CONFIRM_BOTTON_PIN  38
#define ESCAPE_BOTTON_PIN   40

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

ho provato a leggere il manuale fornito con la lib ma non ho capito…NULLA!!

qualcuno sa dirmi dove sbaglio !
devo usare una tastiera diversa ?
devo impostare altri valori in altri punti dela codice ??

grazie in anticipo

Vic

pulsante doppia resistenza.jpg

a parte che basterebbero pulsanti verso massa, perche’ se non erro viene attivata la pullup
Pero’ la libreria buttons, che fa’ da debounce, controlla il cambiamento di stato, quindi ti deve funzionare.
Infatti ho fatto una prova assegnando alla Mega la tua piedinatura… e funziona, sia con il solo pulsante che come li hai collegati tu

Non e’ che ti sei dimenticato del GND ? ( Edit: No, hai fatto il test con il tuo sketch )

pul.png

Grazie della risposta, domani provo a mettere direttamente verso massa i pin segnati nella demo originale e vedo come si comporta, poi provo anche ad usare un altra mega, quella che sto usando adesso e una rev 3, provo anche con una rev 2, visto che nella sezione hardware ho fatto un post per un comportamento anomalo, il led del pin 13 e sempre acceso, questo con la rev 2 non succede.

Per ora grazie a presto

Vic

Grazie Brunello della risposta, ho fatto alcune prove e il menu funziona correttamente, collegando direttamente il pin X a massa e tutto ok, ho capito anche perché la mia tastiera non funziona, purtroppo non ho controllato le resistenza che ho comprato, non sono da 330 om ma da 330 Kom, quello che non capisco e perché lo sketch fatto da me rileva comunque la pressione e la libreria menwiz no. Sto comunque rifacendo la tastiera usando solo una resistenza da 10K verso massa e il più diretto sul pulsante.

Grazie vic