// Definition der Eingänge und Ausgänge
#define ledgruen 18
#define ledrot 19

int tasterPins[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // Taster-Pins
int code[] = {3, 9, 2, 2}; // Geheimer Code (3962)
int eingabe[4] = {0}; // Zwischenspeicher für eingegebenen Code
int eingabeIndex = 0; // Zähler Eingaben

void setup() {
  // Konfiguriere die Taster als Eingänge
  for (int i = 0; i < 9; i++) {
    pinMode(tasterPins[i], INPUT_PULLUP);
  }

  // Konfiguriere LEDs als Ausgänge
  pinMode(ledgruen, OUTPUT);
  pinMode(ledrot, OUTPUT);
}

void loop() {
  // Eingabeschleife
  for (int i = 0; i < 9; i++) {
    if (digitalRead(tasterPins[i]) == LOW) { // Taster gedrückt
      delay(200); // Eingabe Verzögerung
      eingabe[eingabeIndex] = i + 1; // Speichere Tasternummer 
      eingabeIndex++;

      // Wenn 4 Stellen eingegeben sind
      if (eingabeIndex == 4) {
        if (pruefeCode()) { 
          digitalWrite(ledgruen, HIGH); // Richtige Eingabe -> grüne LED
          delay(1000);
          digitalWrite(ledgruen, LOW);
        } else {
          digitalWrite(ledrot, HIGH); // Falsche Eingabe -> rote LED
          delay(1000);
          digitalWrite(ledrot, LOW);
        }
        eingabeIndex = 0; // Eingabe zurücksetzen
      }
    }
  }
}

// Funktion zum Überprüfen des eingegebenen Codes
bool pruefeCode() {
  for (int i = 0; i < 4; i++) {
    if (eingabe[i] != code[i]) {
      return false; // Falscher Code
    }
  }
  return true; // Richtiger Code
}
esp:0
esp:1
esp:2
esp:3
esp:4
esp:5
esp:6
esp:7
esp:8
esp:9
esp:10
esp:18
esp:19
esp:GND.1
esp:3V3.1
esp:3V3.2
esp:GND.2
esp:RST
esp:GND.3
esp:GND.4
esp:5V.1
esp:5V.2
esp:GND.5
esp:GND.6
esp:GND.7
esp:GND.8
esp:GND.9
esp:RX
esp:TX
esp:GND.10
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
r1:1
r1:2
led1:A
led1:C
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
btn5:1.l
btn5:2.l
btn5:1.r
btn5:2.r
btn6:1.l
btn6:2.l
btn6:1.r
btn6:2.r
btn7:1.l
btn7:2.l
btn7:1.r
btn7:2.r
btn8:1.l
btn8:2.l
btn8:1.r
btn8:2.r
btn9:1.l
btn9:2.l
btn9:1.r
btn9:2.r
r2:1
r2:2
led3:A
led3:C