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