Tastierino e arduino

Buon giorno a 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 a 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 a 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:

#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 to the row pinouts of the keypad
byte colPins[COLS] = {45, 43, 41, 39}; //connect to the column pinouts of the 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 a tutti dell’aiuto!

Buona giornata.

Alessandro

Ti invitiamo a presentarti qui: Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! - Generale - Arduino Forum
e a leggere il regolamento: [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum

Il tasto che ottieni è il carattere '1' e non il valore 1. Il carattere '1' vale nella tabella ascii 49

if (vettore[0]=='1')

oppure

if (vettore[0]==49)   // '1'=49

Ciao,
prima di tutto, essendo il tuo primo post, ti consiglio di presentarti QUI e di leggere con attenzione il REGOLAMENTO ...

... poi ... stai comparando un carattere '1' con un numero 1 !

Il carattere '1' vale 0x31 (è 1 espresso in ASCII) mentre il numero 1 vale 0x01 ... come pretendi che siano uguali ??? XD XD XD

Guglielmo

@Nid : ahhh, ma allora è un vizio quello di sovrapporci XD XD XD XD

gpb01:
@Nid : ahhh, ma allora è un vizio quello di sovrapporci XD XD XD XD

:grin: :grin: :grin:

Vi ringrazio moltissimo, sapevo di aver commesso qualche errore di distrazione e così e stato.
Corro a presentarmi.
Un cordiale saluto a tutti voi!

Grazie ancora!

Alessandro