Tastierino e arduino


buon giorno tutti ragazzi, è da tanto che seguo il forum e fino ad ora mi ha sempre risolto un sacco di impicci!
questo che stò per mostrarvi però è un errore che non riesco davvero trovare.
spiego lo scopo:
inserendo il codice '1' da tastierino sul display dovrebbe uscire 'pin corretto', mentre in caso contrario dovrebbe uscire 'pin errato'.
naturalmente questo non è il vero e proprio programma, però l'ho ridotto in minimi termini per capire dove stava l'errore, ma davvero non riesco trovarlo.
in sostanza il fatto è che anche inserendo 1 da tastierino,  facendo l'uguaglianza il pin risulta comunque errato, non compilandomi l'if ma andando nell'else.
allego il codice:

code: [select]
#include <keypad.h>
#include <liquidcrystal.h>
char vettore[1];
int i=0;
const byte rows = 4;
const byte cols = 4;
char hexakeys[rows][cols] = {
  {'d','#','0','*'},
  {'c','9','8','7'},
  {'b','6','5','4'},
  {'a','3','2','1'}
  };
byte rowpins[rows] = {37, 35, 33, 31}; //connect row pinouts of keypad
byte colpins[cols] = {45, 43, 41, 39}; //connect column pinouts of keypad
keypad customkeypad = keypad( makekeymap(hexakeys), rowpins, colpins, rows, cols);

liquidcrystal lcd(22, 23, 24, 25, 26, 27);

void setup()
{
  serial.begin(9600);
  lcd.begin(16, 2);
}
void loop()
{
  while (i<1) {
  char customkey = customkeypad.getkey();
    if (customkey){
  lcd.print(customkey);
  vettore[i]=customkey;
  i++;
  }
}
  if (vettore[0]==1)
  {
    lcd.clear();
    lcd.print("pin giusto");
  }
    else {
      lcd.clear();
      lcd.print("pin errato");
      serial.println(vettore[0]);    //messo per controllo tramite monitor seriale se il numero corrisponde ad 1
    }
    i=0;
    delay(2000);
    lcd.clear();
  }


ovvio inoltre che il vettore deve comunque starci, perchè nel programma finale il pin dovrà essere molto più lungo.
grazie tutti dell'aiuto!

buona giornata.

alessandro

ti invitiamo presentarti qui: http://forum.arduino.cc/index.php?topic=113640.0
e leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0
- qui una serie di schede xxxpighi per collegamenti elettronici vari: http://forum.arduino.cc/index.php?topic=146152.0
- qui le pinout delle varie schede xxxpighi: http://forum.arduino.cc/index.php?topic=151646.0
- qui una serie di link utili: http://forum.arduino.cc/index.php?topic=126861.0

il tasto che ottieni è il carattere '1' e non il valore 1.  il carattere '1' vale nella tabella ascii 49
code: [select]
if (vettore[0]=='1')
oppure
code: [select]
if (vettore[0]==49)   // '1'=49


Arduino Forum > International > Italiano > Software (Moderator: leo72) > Tastierino e arduino


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support