Домой Актуальное Ардуино: кодовый замок с клавиатурой 4×4

Ардуино: кодовый замок с клавиатурой 4×4

49
0

Кодовый замок на ардуино с клавиатурой 4x4

Если вы хотите добавить уровень безопасности к своему проекту на 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 и подключить дисплей к микроконтроллеру.

Надеюсь, этот пример поможет вам создать свой кодовый замок на микроконтроллере!