#include <Keypad.h>
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char correctCode[5] = "1468"; // Nastavte požadovaný 4místný kód zde
char enteredCode[5] = ""; // Pro ukládání vstupního kódu
uint8_t colPins[COLS] = { 5, 4, 3, 2 }; // Pins připojené k C1, C2, C3, C4
uint8_t rowPins[ROWS] = { 9, 8, 7, 6 }; // Pins připojené k R1, R2, R3, R4
const int greenLED = 10; // Pin pro zelenou LED
const int redLED = 11; // Pin pro červenou LED
Keypad keypad = Keypad(makeKeymap("123A456B789C*0#D"), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
digitalWrite(greenLED, LOW);
digitalWrite(redLED, LOW);
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
if (strlen(enteredCode) < 4) { // Pokud je vstupní kód kratší než 4 znaky
enteredCode[strlen(enteredCode)] = key; // Přidáme nově stisknutý klíč do vstupního kódu
Serial.println(enteredCode); // Vypíšeme vstupní kód pro kontrolu
}
if (strlen(enteredCode) == 4) { // Pokud máme celý vstupní kód
if (strcmp(enteredCode, correctCode) == 0) { // Porovnáme vstupní kód s korektním kódem
digitalWrite(greenLED, HIGH); // Zapneme zelenou LED
digitalWrite(redLED, LOW); // Vypneme červenou LED
} else {
digitalWrite(greenLED, LOW); // Vypneme zelenou LED
digitalWrite(redLED, HIGH); // Zapneme červenou LED
}
delay(2000); // Počkáme 2 sekundy
digitalWrite(greenLED, LOW); // Vypneme obě LED
digitalWrite(redLED, LOW);
memset(enteredCode, 0, sizeof(enteredCode)); // Vymažeme vstupní kód pro další pokus
}
}
}