Конструкция данного кодового замка, как это часто бывает, возникла в результате необходимости. Было необходимо разработать самую дешевую и простую в использовании систему контроля доступа, с помощью которой можно управлять входной дверью, оснащенную электромагнитным затвором.
Дополнительное требование, которому должно было удовлетворять разрабатываемое устройство — оснащение его дружественным и оригинальным пользовательским интерфейсом. Вот так и родился дизайн этого кодового замка, который, может иметь много практических применений.
Принципиальная схема предлагаемого решения кодового замка показана на рисунке ниже. Это несложная микроконтроллерная система, в основе которой лежит небольшой микроконтроллер ATtiny2313, реализующий всю необходимую функциональность.
Микроконтроллер управляет работой 7-сегментного светодиодного индикатора (с общим анодом) в режиме мультиплексирования. Катоды светодиодного дисплея подключены через токоограничивающие резисторы непосредственно к PORTB микроконтроллера, а четыре анода — через транзисторные PNP ключи (BC560) — к PORTD. Управление замком происходит посредством реле К1, которое управляется транзистором VT1 (BC547). Диод VD1 (1N4148) предназначен для защиты транзистора от напряжения самоиндукции при отключении реле.
Правильно собранное устройство с использованием запрограммированного микроконтроллера не требует настройки и должно заработать сразу после включения питания. В зависимости от используемого цвета светодиодного дисплея может потребоваться подобрать сопротивление резисторов, ограничивающих ток отдельных его сегментов (R5… R12).
Код замка по умолчанию «0000». Этот код мы можем аварийно восстановить путем короткого замыкания вывода № 5 микроконтроллера на массу питания при включении устройства.
При создании программного обеспечения стояла задача максимально упростить работу замка, сохранив при этом всю необходимую функциональность. Это было важно, поскольку единственным регулирующим элементом является энкодер со встроенной кнопкой.
Прежде всего, был введен режим настройки, который можно запустить только при включении устройства нажатием кнопки, встроенной в энкодер. Режим настройки позволяет установить время активации реле (0…5 секунд), сопровождающее разблокировку / блокировку кодового замка.
В случае установки времени 0 сек реле остается все время включенным после закрытия замка и выключенным после разблокировки. В случае установки значения в диапазоне 1…5 сек реле включается на время, соответствующее настройке (1…5 сек) при каждом закрытии / открытии нашего кодового замка.
Выход из режима настройки возможен путем повторного нажатия кнопки энкодера. После этого мы переходим в режим ожидания устройства (дисплей выключен). Важно отметить, что по умолчанию при включении питания или выходе из режима настройки замок остается разблокированным.
После нажатия кнопки энкодера переходим в режим ввода секретного кода, чтобы закрыть замок. Это сопровождается миганием первой цифры справа, которую мы можем изменить, вращая энкодер (в диапазоне «0» … «9», «A» … «F»).
Подтверждение введенной цифры производится нажатием кнопки энкодера. В этот момент эта цифра переместится влево на одну позицию и перестанет мигать, а первая цифра справа, как и раньше, снова начнет мигать, что говорит о возможности ее изменения.
Другими словами, код вводим слева направо, при этом постоянно редактируемая цифра отображается всегда на первой позиции справа, а ранее введенные цифры сдвигаются на соответствующее количество позиций влево.
Эти шаги повторяем 4 раза, до ввода всего кода. После этого замок будет зарыт (будет соответствующая реакция реле), код будет записан в энергонезависимую память EEPROM микроконтроллера и устройство перейдет в режим ожидания. Факт блокировки замка сигнализируется свечением десятичной точки в 0 позиции дисплея даже во время ожидания.
Также стоит отметить, что для удобства пользователя был введен дополнительный механизм, с помощью которого мы можем пропустить ввод пользовательского кода для закрытия замка, приняв по умолчанию ранее использованный и сохраненный код.
Для этого после входа в режим ввода секретного кода (из режима ожидания) нажмите и удерживайте кнопку энкодера в течение длительного времени, после чего замок закроется (будет соответствующая реакция реле) и устройство перейдет в режим ожидания. В этот момент (после блокировки замка) нажатие кнопки энкодера приведет к вводу пользовательского кода (как и раньше), но на этот раз для разблокировки замка.
Правильный ввод кода приведет к разблокировке замка (будет соответствующая реакция реле), а ошибочный код — к переходу в спящий режим в ожидании ввода нового кода разблокировки.
Если в режиме ввода кода в течение 5 секунд не будет никаких изменений, то устройство перейдет в режим ожидания. Это время отсчитывается заново каждый раз после внесения какого-либо изменения.
Кроме того, чтобы сигнализировать о рабочем состоянии, устройство отображает следующую текстовую информацию:
- dEF — Восстановление кода по умолчанию, т. е.,, 0000″.
- Err — Код введен неверно.
- OPEn — Замок открыт (правильно введенный код).
- cLOSE — Замок закрыт.
Скачать прошивку (1,5 KiB, скачано: 689)
код не сохраняется в eeprom при снятии напряжения приходится по новой вводить, дополнительный механизм, с помощью которого мы можем пропустить ввод пользовательского кода также не работает при удержании кнопки ничего не происходит