#include <Keypad.h>
// Налаштування пінів для клавіатури
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2};
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// Налаштування світлодіодів
const int greenLED = 10; // Зелений світлодіод
const int redLED = 11; // Червоний світлодіод
// Пароль та введений код
String enteredCode = "";
String password = "1234"; // Правильний пароль
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);
void setup() {
// Ініціалізація пінів для світлодіодів
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
digitalWrite(greenLED, LOW); // Зелений вимкнений на старті
digitalWrite(redLED, LOW); // Червоний вимкнений на старті
Serial.begin(9600); // Для відладки
}
void loop() {
char key = keypad.getKey(); // Зчитуємо натиснуту клавішу
if (key != NO_KEY) {
Serial.println(key); // Виводимо натиснуту клавішу в Serial Monitor
enteredCode += key; // Додаємо її до введеного коду
if (enteredCode.length() > 4) {
enteredCode = enteredCode.substring(1); // Залишаємо лише останні 4 символи
}
if (enteredCode.length() == 4) { // Перевіряємо, якщо код введено повністю
if (enteredCode == password) { // Якщо правильний пароль
digitalWrite(greenLED, HIGH); // Вмикаємо зелений світлодіод
digitalWrite(redLED, LOW); // Вимикаємо червоний
delay(2000); // Чекаємо 2 секунди
digitalWrite(greenLED, LOW); // Вимикаємо зелений світлодіод
} else { // Якщо неправильний пароль
digitalWrite(greenLED, LOW); // Вимикаємо зелений
digitalWrite(redLED, HIGH); // Вмикаємо червоний
delay(2000); // Чекаємо 2 секунди
digitalWrite(redLED, LOW); // Вимикаємо червоний світлодіод
}
enteredCode = ""; // Очищаємо введений код для нового вводу
}
}
}