Problema nella programmazione tastiera 4x4

Salve. Ho bisogno di aiuto perchè non sono per niente esperto in programmazione.
Sono riuscito a far funzionare il tastierino numerico 4x4 ma ho bisogno di impostare un valore della varibile con più di una cifra.
Se infatti premo il tasto 1 e poi il tasto 0, quest’ultimo si va a sovrascrivere invece di darmi il numero 10.
Che istruzione devo usare?
Avrei urgentemente bisogno del vostro aiuto nella programmazione che vi posto qui di seguito perchè non conosco le istruzioni in merito a questo tipo di programma.
Ringrazio in anticipo. :slight_smile:

#include <Wire.h>  
#include <LiquidCrystal_I2C.h> 
#include <Keypad.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int LEDVERDE=5;
int LEDGIALLO=6;
int LEDROSSO=7;



const byte ROWS = 4; // Quattro righe
const byte COLS = 4; // Quattro colonne

char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {
  8, 7, 6, 5 }; 
byte colPins[COLS] = {
  12, 11, 10, 9 }; 
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Creazione della tastiera



void setup()
{
   Serial.begin(9600);

  lcd.begin(16, 2); 
   


}

 
void loop()
{
   lcd.setCursor(0, 0);  
    lcd.print ("Tasto premuto");
   char key = keypad.getKey();
 
  if (key){ 
   
    lcd.setCursor(8, 1); 
    lcd.print(key);
   
    }
    
}

Per come hai programmato e' giusto che si comporti cosi', infatti andra' a scrivere sempre nella Colonna 8 della riga 1.
Devi inserire una variabile che aumenta per ogni pressione della tastiera in maniera da far slittare il cursore.
inserisci una variabile prima del setup con valore =8 e poi nel loop un commando del tipo
if(key){
lcd.setCursor(i,1);
lcd.print(key);
i++;
}
ovviamente fai attenzione se la variabile i assume valori superiori a 15.
Spero di essere stato chiaro.