Antonio,
non volermene, ma devi studiarti un po' di più Arduino ed il suo linguaggio ... intendo proprio un po' di basi teoriche ...
1° errore semplice ... (e questo è di distrazione)
byte keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
... l'ultimo array NON deve finire con una virgola visto che non c'è altro che segue.
altri errori più gravi (... e questi sono per gravi lacune) ...
a) punti e virgola mancanti , assegnazione di un typo ad una variabile ...
char code [4]
int = i
... devi scrivere :
char code [4] ;
int i;
b) variabili locali e globali ...
il tipo davanti ad una variabile va messo solo quando la si dichiara, no ogni volta ... altrimenti si definiscono N variabili diverse !!! Quindi, visto che a te serve molte volte "key" la definisci fori come variabile globale e NON 4 volte come locale ...
char code [4] ;
int i;
char key;
e poi nelle chiamate NON devi definire il tipo ... per cui :
key = keypad.getKey();
c) setDebounceTime è un metodo della classe Keypad ... non la puoi chiamare così , ma, come hai fatto per la getKey() la devi chiamare così :
keypad.setDebounceTime (10);
d) Se usi i singoli apici identifichi dei caratteri ASCII e non il loro valore ! Quindi nell' IF , ad esempio, o metti code[0] == 49 oppure metti code[0] == '1' e così via ...
Può sembrare strano, ma in C ... un apicetto fa molta differenza !!!
Quindi ... il codice diventa :
#include <Keypad.h>
#define LED 13
const byte ROWS = 4; // Quattro righe
const byte COLS = 4; // Quattro colonne
// Definizione mappa della tastiera
byte keys[ROWS][COLS] = {
{
'1','2','3','A' }
,
{
'4','5','6','B' }
,
{
'7','8','9','C' }
,
{
'*','0','#','D' }
};
byte rowPins[ROWS] = {
9, 8, 7, 6 }; // Connessione delle righe: Riga0, Riga1, Riga2 e Riga3 ai pins di Arduino.
byte colPins[COLS] = {
5, 4, 3, 2 }; // Connessione delle colonne: Colonna0, Colonna1 , Colonna2 e Colonna3 ai pins di Arduino.
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// Creazione della tastiera
char code [4];
int i;
char key;
void setup() {
Serial.begin(9600);
pinMode (LED, OUTPUT);
}
void loop()
{
digitalWrite (LED, LOW);
key = keypad.getKey();
code [0] = key;
keypad.setDebounceTime(10);
key = keypad.getKey();
code [1] = key;
keypad.setDebounceTime (10);
key = keypad.getKey();
code [2] = key;
keypad.setDebounceTime (10);
key = keypad.getKey();
code [3] = key;
if ( (code[0] == '1') && (code[1] == '2') && (code[2] == '3') && (code[3] == 'A') ) {
digitalWrite (LED, HIGH);
}
}
... che non so se funziona o meno ... dato che non ho la tastiera

Guglielmo