#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
// Nastavení LCD - stejné jako ve vašem původním kódu
int greenLedPin = 12; // Pin pro zelenou diodu
int redLedPin = 13; // Pin pro červenou diodu
int lcdColumns = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
// Nastavení klávesnice
const byte numRows = 4;
const byte numCols = 3;
char keymap[numRows][numCols] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[numRows] = {19, 18, 5, 17}; // Změňte piny podle vašeho zapojení
byte colPins[numCols] = {16, 4, 0,}; // Změňte piny podle vašeho zapojení
Keypad keypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
String currentText = "";
const String correctCode = "225225"; // Zde definujte správný kód
void setup() {
lcd.init();
lcd.backlight();
pinMode(greenLedPin, OUTPUT); // Nastavíme pin pro zelenou diodu jako výstup
pinMode(redLedPin, OUTPUT); // Nastavíme pin pro červenou diodu jako výstup
digitalWrite(greenLedPin, LOW); // Vypneme zelenou diodu na začátku
digitalWrite(redLedPin, LOW); // Vypneme červenou diodu na začátku
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
if (key == '*') {
if (currentText == correctCode) {
displayText("Spravne heslo");
digitalWrite(greenLedPin, HIGH); // Zapneme zelenou diodu pro správné heslo
digitalWrite(redLedPin, LOW); // Vypneme červenou diodu pro špatné heslo
} else {
displayText("Spatne heslo");
digitalWrite(greenLedPin, LOW); // Vypneme zelenou diodu pro špatné heslo
digitalWrite(redLedPin, HIGH); // Zapneme červenou diodu pro špatné heslo
}
delay(3000); // Počkej 3 sekundy
currentText = "";
lcd.clear();
digitalWrite(greenLedPin, LOW); // Vypneme zelenou diodu
digitalWrite(redLedPin, LOW); // Vypneme červenou diodu
} else if (key == '#') {
currentText = ""; // Vymazat text na displeji při stisku #
lcd.clear();
digitalWrite(greenLedPin, LOW); // Vypneme zelenou diodu
digitalWrite(redLedPin, LOW); // Vypneme červenou diodu
} else {
currentText += key;
displayText(currentText);
digitalWrite(greenLedPin, LOW); // Vypneme zelenou diodu (pokud byla zapnuta)
digitalWrite(redLedPin, LOW); // Vypneme červenou diodu (pokud byla zapnuta)
}
}
}
void displayText(String text) {
lcd.setCursor(0, 0);
lcd.print(text);
}