#include <LiquidCrystal.h>
#include <Keypad.h>
// Инициализация дисплея: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, A0, A1, A2, A3);
// Настройка матричной клавиатуры
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5};
byte colPins[COLS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const String correctPass = "1234"; // Установите желаемый пароль
String enteredPass = "";
void resetScreen() {
enteredPass = "";
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ENTER CODE:");
lcd.setCursor(0, 1);
}
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
resetScreen();
}
void loop() {
char key = keypad.getKey();
if (key) {
if (key == '#') { // Кнопка ввода/подтверждения
if (enteredPass == correctPass) {
lcd.clear();
lcd.print("ACCESS GRANTED");
Serial.println("PLAY"); // Отправка команды на ПК
delay(3000);
} else {
lcd.clear();
lcd.print("WRONG PASSWORD");
delay(2000);
}
resetScreen();
}
else if (key == '*') { // Кнопка сброса текущего ввода
resetScreen();
}
else { // Нажатие любой другой кнопки
if (enteredPass.length() < 16) {
enteredPass += key;
lcd.setCursor(enteredPass.length() - 1, 1);
lcd.print('*');
}
}
}
}