
Если вы хотите добавить уровень безопасности к своему проекту на Arduino, подумайте о создании кодового замка с клавиатурой 4×4. В этом руководстве мы покажем вам, как построить надежный кодовый замок, используя всего несколько компонентов и несколько строк кода.
Прежде чем мы начнем, убедитесь, что у вас есть все необходимые компоненты. Вам понадобится плата Arduino, клавиатура 4×4, несколько светодиодов, резисторы и переключатель. Также убедитесь, что у вас есть правильные библиотеки Arduino, в том числе Keypad и LiquidCrystal.
Начнем с подключения клавиатуры 4×4 к вашей плате Arduino. Клавиатура 4×4 имеет восемь выходных линий и четыре входных линии. Подключите выходные линии к цифровым пиновым выходам 2-9 на вашей плате Arduino, а входные линии подключите к цифровым пиновым входам 10-13.
Теперь давайте напишем код для чтения клавиатуры и управления светодиодами. Используйте библиотеку Keypad для чтения клавиатуры и библиотеку LiquidCrystal для отображения сообщений на ЖК-дисплее. В коде мы будем использовать переменную для хранения введенного кода и переменную для хранения правильного кода. Когда пользователь вводит правильный код, светодиод загорится, и дверной замок откроется.
Подключение и настройка клавиатуры 4×4
Для подключения клавиатуры к плате Ардуино, подключите каждый ряд клавиатуры к двум цифровым пинам, начиная с пина 2. Например, первый ряд подключается к пинам 2 и 3, второй ряд — к пинам 4 и 5, и так далее. Затем подключите каждый столбец клавиатуры к двум другим цифровым пинам, начиная с пина 6. Например, первый столбец подключается к пинам 6 и 7, второй столбец — к пинам 8 и 9, и так далее.
После подключения клавиатуры к плате Ардуино, вам нужно настроить ее в коде. Включите библиотеку Keyboard в вашем коде, чтобы иметь возможность считывать нажатия клавиш. Затем используйте функцию `getKeyPress()` для чтения нажатий клавиш. Эта функция возвращает код ASCII символа, соответствующего нажатой кнопке.
Пример кода для чтения нажатий клавиш с клавиатуры 4×4:
cpp
#include
void setup() {
Keyboard.begin();
}
void loop() {
if (Keyboard.getKeyPress() != NO_KEY) {
Serial.println(Keyboard.getKeyPress());
}
}
Этот код начинает прием нажатий клавиш в функции `setup()` и затем считывает нажатия клавиш в функции `loop()`. Если нажата клавиша, код ASCII символа, соответствующего нажатой кнопке, отправляется в монитор сериала.
Программирование кодового замка на микроконтроллере
Для начала вам понадобится микроконтроллер, например, Arduino Uno. Также вам понадобится клавиатура 4×4 и дисплей для отображения состояния замка. Подключите клавиатуру к микроконтроллеру, используя соответствующие пины.
Теперь давайте напишем программу для управления кодовым замком. Для этого нам понадобится библиотека Keypad, которую можно скачать и установить через менеджер библиотек в Arduino IDE.
Вот пример кода, который можно использовать в качестве основы для вашего проекта:
cpp
#include
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] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
}
Теперь давайте добавим функциональность кодового замка. Для этого нам понадобится массив для хранения кода доступа и переменная для хранения введенного кода:
cpp
const int accessCodeLength = 4;
char accessCode[accessCodeLength] = {‘1’, ‘2’, ‘3’, ‘4’};
char inputCode[accessCodeLength];
int index = 0;
Затем мы добавим проверку введенного кода в функции loop():
cpp
if (key){
if (index < accessCodeLength){
inputCode[index] = key;
index++;
} else {
if (strcmp(inputCode, accessCode) == 0){
Serial.println(«Access granted!»);
} else {
Serial.println(«Access denied!»);
}
index = 0;
memset(inputCode, 0, sizeof(inputCode));
}
}
Также можно добавить функциональность отображения состояния замка на дисплее. Для этого можно использовать библиотеку LiquidCrystal и подключить дисплей к микроконтроллеру.
Надеюсь, этот пример поможет вам создать свой кодовый замок на микроконтроллере!









