para comenzar, tu código dice lo siguiente
Cada 3 segundos luego que muestre todos los carteles bonitos, presta atención a ver si he presionado una tecla
Evidentemente no es la mejor manera de hacerlo, asi que porque no pruebas de este modo.
Comenta todo lo que tenga que ver con lcd solo para hacer una prueba y luego observa si el programa recompilado donde solo le presta atención a la presion de las teclas funciona.
Te vas a sorprender.
Si eso pasa, entonces modifica la parte de presentación que veo no tiene mucho sentido porque poner (ya se que estas experimentando)
lcd.print("!!!!CHINGADO!!!!"); // Mensaje a desplegar
lcd.setCursor(0,1);
delay (1000);
lcd.print("Por_Que_NO_Jala!"); // Mensaje a desplegar
delay (1000);
lcd.clear();
delay (1000);
Se puede resumir a solo esto
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Keypad"); // Mensaje a desplegar
lcd.setCursor(0,1);
lcd.print("Tecla:"); // Mensaje a desplegar
}
void loop() {
tecla = teclado.getKey();
if(tecla != NO_KEY) {
Serial.print(tecla);
lcd.setCursor(8,1);
lcd.print(tecla); // Mensaje a desplegar
}
}