Russian Federation
Voronezh, Voronezh, Russian Federation
The paper discusses the development of a combination lock based on the Atmega microcontroller. The creation of this microprocessor-based system will make it possible to obtain a safe, convenient, easy-to-use and easy-to-manufacture device. The relevance of the development of this device is due to the fact that combination locks are an effective means of preventing unauthorized persons from accessing guarded premises. The undoubted advantage of combination locks will be the absence of the need to manufacture keys.
Programming of microprocessors, Atmega32, combination locks
Задача данной статьи состоит в разработке программного обеспечения кодового замка на базе микроконтроллера семейства Atmega с помощью программы автоматизированного проектирования электронных схем Proteus 8 Professional и интегрированной среды разработки Atmel Studio 7. Разработка будет производиться на языке СИ.
Реализация данного устройства поможет обеспечить безопасность помещения. Это могут быть жилые, рабочие помещения. В ходе проектирования необходимо решить ряд задач: подключить матричную клавиатуру и LCD дисплей к микроконтроллеру, написать ряд подпрограмм, позволяющих решить поставленную задачу.
К основным функциям устройства, можно отнести:
- Считывание ввода комбинации чисел с матричной клавиатуры “Keypad-Phone”;
- Вывод введенной комбинации на LCD дисплей “LM044L”;
- Проверка введенного кода на правильность.
Исходя из функциональных требований, предъявленных к устройству, электронный кодовый замок должен включать в себя следующие элементы:
- Микроконтроллер на базе семейства Atmega;
- Клавиатура. Для ввода запрашиваемого пароля;
- Устройства сигнализации об открытии двери и о попытке подбора кода. Для реализации данного пункта будут использованы два светодиода: красного цвета, для информирования о попытке подбора кода и зеленого цвета для информирования об успешном открытии двери;
- LCD дисплей. Для вывода нажатых клавиш, для отображения информационных надписей.
Главный программный файл main.c содержит в себе 3 функции: функция для начала работы с кодовым замком writeTitle(), функция инициализации портов ввода/вывода port_init() и главная функция int main(), в которой реализована главная функциональная часть. Для этого программного файла подключается директива #define определяющая частоту процессора в герцах.
Также подключается библиотека для работы с вводом/выводом микроконтроллера io.h, библиотека для работы со строками string.h, библиотека для работы с программной задержкой delay.h и две пользовательские библиотеки для работы с матричной клавиатуры keypad.h и для работы с LCD дисплеем lcd.h.
Функция writeTitle() представленная на рис. 1 позволяет инициировать процесс работы с кодовым замком, она выполняет вывод сообщения о просьбе ввести код и включает курсор для дальнейшего ввода. Также функция включает 0 бит порта A, что позволяет активировать свечение светодиода красного цвета, который будет сигнализировать о том, что дверь закрыта.
Рисунок 1 – Функция начала работы с кодовым замком
Функция port_init(), представленная на рис. 2, позволяет инициализировать порт D, как порт для ввода/вывода информации.
Рисунок 2 – Функция инициализации портов ввода/вывода
На рис. 3 отображен фрагмент кода, который выполняет проверку введенного пароля и в случае выполнения условия на правильность выводит соответствующее сообщение и включает 1 бит порта А, для зажигания светодиода зеленого цвета. Данный код вступает в силу при введении 4 символов.
Рисунок 3 – Проверка введенного пароля на правильность
Рис. 4 позволяет отобразить действия кодового замка при неправильно введенной комбинации пароля. Если пароль неправильно введен меньше 3 раз, то выводится информирующее сообщение и запускается программная задержка длиной в 3 секунды, после которой снова запускается функция начала работы кодового замка writeTitle(). Если пользователь ввел неправильную комбинацию 3 раза, то на кодовый замок накладывается блокировка на 5 минут, после которой снова будет доступна возможность ввода пароля.
Рисунок 4 – Обработка при неправильно введенном пароле
В ходе анализа функциональных требований к устройству, можно сделать вывод, что для корректной работы электронного кодового замка будет необходимо использовать 6 элементов. Это такие электронные компоненты программы Proteus как:
- Микроконтроллер Atmega32. Данный микроконтроллер был выбран, потому что имеет хорошую пропускную способность команд. Также к данному микроконтроллеру возможно подключить периферийные устройства. Несомненным преимущество данного микроконтроллера перед некоторыми представителями семейства Atmega, будет тот факт, что Atmega32 имеет 4 порта, которые могут работать, как на вход, так и на выход;
- LCD дисплей “LM044L”. Данный дисплей был выбран, потому что он является достаточно крупным представителем среди своих конкурентов по соотношению сторон, что позволит единоразово выводить большое количество информации. Преимуществом дисплея является тот факт, что он без проблем интегрируется с микроконтроллерами семейства Atmega;
- Матричная клавиатура “Keypad-Phone”. Данная клавиатура была выбрана, так как является самым минималистичным представителем матричных клавиатур в среде Proteus;
- 2 светодиода зеленого и красного цветов;
- Кнопка сброса.
На рис. 5 отображена электронная схема кодового замка с подключенными устройствами. Можно заметить, что для каждого периферийного устройства выделен свой порт. Так, для LCD дисплея выделен порт D и конкретной шине данных D2…D3 соответствует свой бит порта. Для матричной клавиатуры выделен порт C, для столбцов определены биты от 0 до 2, а для строк от 4 до 7. Первые 2 бита порта A соответствую двум светодиодам.
Рисунок 5 – Электронная схема кодового замка
После описания электронной схемы и процесса установки прошивки, можно перейти к моделированию работы устройства. На рис. 6 отображено информирующее сообщение о вводе пароля. Данное сообщение отображается сразу после запуска симуляции.
Рисунок 6 – Начало работы с кодовым замком
Если код был введен верно, то на LCD высветится информирующее сообщение об этом и загорится светодиод зеленого цвета. На рис. 7 отображена правильная попытка ввода кода.
Рисунок 7 – Правильная попытка ввода кода
На рис. 8 отображена работа кодового замка при неверной попытке ввода пароля.
Рисунок 8 – Неверная попытка ввода пароля
На рис. 9 отображена блокировка замка после достижения трех попыток. На LCD дисплей выводится информирующее сообщение о возможности повторной попытки ввода пароля через 5 мин.
Рисунок 9 – Блокировка замка после достижения фиксированного числа
попыток
В ходе проведения моделирования работы устройства, было проведено проектирование электронной схемы кодового замка в программе Proteus v8.15 SP1 Professional. В результате проверки работы схемы, можно сделать вывод, что устройство работает корректно и полностью отвечает функциональным требованиям.
Данная статья отображает процесс проектирования кодового замка с микроконтроллерным управлением. Разработка кодового замка выполнялась на основе микроконтроллера Atmega32, с использованием периферийных устройств, таких как: матричная клавиатура KeyPad-Phone, LCD дисплей “LM044L”, два светодиода и кнопка сброса.
Для решения поставленной задачи были изучены аналоги данных устройств, включая анализ режимов работы. По результатам изучения были выделены необходимые электронные компоненты, которые позволили реализовать кодовый замок. Также отдельно была изучена техническая документация от компании “Atmel” и документация для программного средства Proteus v8.15 SP1 Professional. В ходе проведения функционального анализа программ для проектирования электронных схем, удалось прийти к выводу, что использование Proteus v8.15 SP1 Professional было самым оптимальным решением, так как данная программа смогла полностью покрыть поставленную задачу.
Разработанная система может быть применена для обеспечения безопасности помещения. Это могут быть жилые, рабочие помещения. Электронный кодовый замок имеет несомненное преимущество перед обычным дверным, так как нет необходимости переносить ключи, которые можно перепутать, потерять, поломать.
При проведении тестирования и отладки устройства, можно сказать, что электронный кодовый замок полностью соответствует установленным требованиям и данное устройство выполняет свои функциональные задачи корректно.
1. Evdokimova, S.A. Matematiko-statisticheskaya ocenka rezul'tatov testa na osnove IRT / S.A. Evdokimova, M.A. Kaschenko // Modelirovanie sistem i processov. – 2020. – T. 13, № 3. – S. 16-22.
2. Poluektov A.V., Makarenko F.V., Yagodkin A.S. Ispol'zovanie storonnih bibliotek pri napisanii programm dlya obrabotki statisticheskih dannyh // Modelirovanie sistem i processov. – 2022. – T. 15, № 2. – S. 33-41.
3. Novikova, T.P. Razrabotka algoritma i modeli funkcionirovaniya informacionnoy sistemy dlya platnogo otdeleniya stomatologicheskoy polikliniki / T.P. Novikova, A.A. Bodin, S.A. Evdokimova // Modelirovanie sistem i processov. – 2021. – T. 14, № 1. – S. 51-58. – DOI:https://doi.org/10.12737/2219-0767-2021-14-1-51-58.
4. Levental', L. Vvedenie v mikroprocessory: Programmnoe obespechenie, apparatnye sredstva i programmirovanie / L. Levental'. - M.: Energoatomizdat, 2021. - 464 c.
5. Oficial'naya tehnicheskaya dokumentaciya “Atmel”. URL: https://www.microchip.com/content/dam/mchp/documents/atmel-start.