Загрузка данных


#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('*');
      }
    }
  }
}