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

