Abfrage eines Tastenfelds -> Problem beim if-Statement

Hallo.

Mein Projekt sieht wie folgt aus:
Man gibt auf einem 4X4-Tastenfeld eine Zahl ein und der Arduino bestimmt durch diese Eingabe, welche “Auswahl” vom Benutzer getroffen wurde.
Das Problem dabei ist, dass es zum Beispiel bei der Auswahl 2 hier in “case ‘2’” mehrere Unterauswahlmöglichkeiten gibt. Irgendwie funktioniert dieses if-Statement bei mir nicht…
Wahrscheinlich ist es bloß ein ganz primitiver Fehler, aber ich würde mich freuen, wenn mir hier jemand helfen könnte.

Code:

int ID = 0;
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
const byte ROWS = 4; 
const byte COLS = 4; 
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {0, 1, 2, 3}; 
byte colPins[COLS] = {4,5,6,7}; 
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
  lcd.begin(16, 2);
  lcd.print("TASTE BETÄTIGEN");
  Serial.begin(9600);
}
void loop() {
  char key = keypad.getKey();
  if(key){
    lcd.setCursor(0,0);
    Serial.println(key);
    switch (key)
    {
      case '1':
      	lcd.clear();
        lcd.print("Auswahl 1");
        break;
      case '2':
      	lcd.clear();
        lcd.print("Auswahl 2");
        delay(600);
      	lcd.clear();
      	lcd.setCursor(0,0);
      	lcd.print("A -> UAuswahl 1");
      	lcd.setCursor(0,1);
      	lcd.print("B -> UAuswahl 2");
      ID = 2;
      delay(66);
      Serial.println(keypad.getKey());
      if(keypad.getKey()=='A'){
        lcd.clear();
        lcd.print("UAuswahl 1");
        Serial.println("UAuswahl 1");
      }
      else if(keypad.getKey()=='B') {
        lcd.clear();
        lcd.print("UAuswahl 2");
        Serial.println("UAuswahl 2");
      }
        break;
     default:
     lcd.print("TASTE BETÄTIGEN");
    }
}
}

So schnell / zeitlich genau kannst Du bei 2 das A oder B nicht drücken.

Du solltest genau 1 Stelle am Anfang des Loop haben, an der Du das Keypad ausliest.

Wenn eine Taste gedrückt ist, verzweigst Du in Abhängigkeit von ID in die Bearbeitung des Untermenüs oder in die Ziffernauswertung.

Oder Du suchst mal nach der Menu-Lib von Jomelo.

Gruß Tommy

Vielen Dank für die schnelle Antwort, mit der Library werde ich mich mal beschäftigen.