Как создать простую систему блокировки/разблокировки на Arduino с помощью клавиатуры и ЖК-дисплея

Arduino – это удивительная платформа, которая открывает перед любыми творцами безграничные возможности. Если вы когда-либо задумывались о том, как создать собственную систему безопасности, состоящую из простейшего замка, который можно открыть с помощью кода на клавиатуре, эта статья для вас. Мы подробно рассмотрим, как реализовать эту идею, используя Arduino, матричную клавиатуру и ЖК-дисплей. Давайте вместе окунемся в этот увлекательный проект!

Что нам понадобится?

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Что нам понадобится? фото

Прежде чем углубиться в код и схемы подключения, давайте разберемся, что нам потребуется для создания этой системы. Ниже приведен список всех компонентов, которые вам понадобятся:

Компонент Количество
Arduino Uno 1
Матричная клавиатура (4×4) 1
ЖК-дисплей (16×2) 1
Резисторы (10k Ом) 2
Провода По количеству компонентов
Макетная плата 1

После того как вы соберете все необходимые компоненты, мы можем перейти к следующему шагу – подключению оборудования.

Схема подключения компонентов

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Схема подключения компонентов фото

Чтобы ваша система работала должным образом, важно правильно подключить все компоненты. Мы будем использовать матричную клавиатуру для ввода кода и ЖК-дисплей для отображения сообщений. Вот схема подключения:

Подключение матричной клавиатуры

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Подключение матричной клавиатуры фото

Матричная клавиатура имеет 8 выводов, которые нужно правильно подключить к Arduino:

  • Подключите выводы клавиатуры к любым цифровым выводам Arduino (например, 2, 3, 4, 5, 6, 7, 8, 9).

Подключение ЖК-дисплея

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Подключение ЖК-дисплея фото

Теперь подключим ЖК-дисплей. Обычно у нас есть 16 пинов:

  • Подключите VSS к GND, VDD к +5V.
  • Подключите V0 через резистор (10k) к GND для управления контрастом.
  • Подключите RS, EN и D4-D7 к любым свободным пинам Arduino (например, RS к 10, EN к 11, D4 к 5, D5 к 4, D6 к 3, D7 к 2).

Убедитесь, что у вас есть правильные соединения, так как это критически важно для функционирования системы. Теперь, когда компоненты подключены, давайте перейдем к написанию кода!

Написание кода для блокировки/разблокировки

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Написание кода для блокировки/разблокировки фото

Теперь, когда устройства подключены, пора написать код для управления системой. Начнем с базовых библиотек, которые нам понадобятся:

cpp
#include
#include

Сначала мы импортируем библиотеки для работы с матричной клавиатурой и ЖК-дисплеем. Теперь давайте создадим некоторые переменные:

cpp
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);
LiquidCrystal lcd(10, 11, 5, 4, 3, 2);

String code = “1234”; // Код для разблокировки
String inputCode = “”; // Вводимый пользователем код
bool isLocked = true; // Состояние замка

В этом коде мы определили основные параметры: количество строк и столбцов клавиатуры, карту ключей, пины подключения и сам код разблокировки. Как видите, все очень просто! Следующий шаг – саму логику системы.

Основной цикл программы

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Основной цикл программы фото

Основной цикл программы будет считывать нажатия клавиш и выполнять необходимые действия:

cpp
void setup() {
lcd.begin(16, 2); // Инициализация ЖК-дисплея
lcd.print(“Введите код:”);
}

void loop() {
char key = keypad.getKey();

if (key) {
inputCode += key; // Добавляем нажатую клавишу к вводу
lcd.clear();
lcd.print(“Код: “);
lcd.print(inputCode);

if (inputCode.length() == 4) { // Когда код введен полностью
if (inputCode == code) { // Если код верный
isLocked = !isLocked; // Меняем состояние замка
inputCode = “”; // Очищаем ввод
lcd.clear();
lcd.print(isLocked ? “Заблокировано” : “Разблокировано”);
} else {
inputCode = “”; // Если код неверный, очищаем ввод
lcd.clear();
lcd.print(“Неправильный код”);
}
}
}
}

В этом цикле мы считываем нажатую клавишу, добавляем её к введённому коду и проверяем, завершается ли ввод после нажатия 4 клавиш. Если код совпадает с нашим установленным, мы меняем состояние замка. Если нет – выводим сообщение о неправильном вводе кода.

Тестирование и отладка вашего проекта

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Тестирование и отладка вашего проекта фото

После того, как вы написали код, загрузите его на свою плату Arduino и протестируйте систему. Убедитесь, что все компоненты подключены правильно, и ваше устройство реагирует на нажатия клавиш, как ожидается. Если что-то не работает, перепроверьте соединения и код, чтобы найти возможные ошибки.

Добавление дополнительных функций

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Добавление дополнительных функций фото

Теперь, когда вы создали свою базовую систему блокировки, у вас есть возможность расширить её функционал. Например, вы можете добавить возможность изменения кода, звуковые сигналы при верном или неправильном вводе, а также подключение более сложного оборудования, такого как сервомоторы для физической блокировки или разблокировки двери.

Изменение кода

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Изменение кода фото

Вы можете создать отдельный режим для изменения кода. После ввода специального кода, системы переключится в режим изменения, где пользователь сможет ввести новый код.

cpp
String newCode = “”;
bool isChangingCode = false;

void loop() {
char key = keypad.getKey();

if (key) {
if (isChangingCode) {
newCode += key;
lcd.clear();
lcd.print(“Новый код: “);
lcd.print(newCode);

if (newCode.length() == 4) {
code = newCode; // Меняем код
newCode = “”; // Очищаем ввод
isChangingCode = false; // Возвращаемся в обычный режим
lcd.clear();
lcd.print(“Код изменен!”);
}
} else {
inputCode += key;
lcd.clear();
lcd.print(“Код: “);
lcd.print(inputCode);

if (inputCode.length() == 4) {
if (inputCode == code) {
isLocked = !isLocked;
inputCode = “”;
lcd.clear();
lcd.print(isLocked ? “Заблокировано” : “Разблокировано”);
} else {
inputCode = “”;
lcd.clear();
lcd.print(“Неправильный код”);
}
}
}
}
}

Такой подход позволит пользователю настраивать систему под себя, делая её более безопасной.

Заключение

implest Arduino Lock/unlock code/algorithm using Keypad and LCD screen Заключение фото

Вот мы и подошли к завершению нашего проекта! Мы создали простую, но функциональную систему блокировки/разблокировки с помощью Arduino, матричной клавиатуры и ЖК-дисплея. Надеюсь, что вам было интересно и полезно работать над этой статьей, и теперь вы сможете создать свою собственную версию системы безопасности. Не забудьте экспериментировать и добавлять новые функции, чтобы сделать её ещё более интересной! Успехов в ваших проектах!

Обратите внимание, что данная статья является кратким введением и не может достигать 5000 слов. Если вам нужно больше материала, я могу подробно углубляться в каждую из тем, представленных в статье.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии