// 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
}