Устройство реализовано на простом микроконтроллере AVR ATtiny13. Данная схема может найти применение для ограничения доступа в помещения, в разного рода сейфах, а так же при включении приборов, которые могут быть активизированы только после введения кода.

Схема кодового замка с кнопочным управлением на микроконтроллере

Алгоритм Работы

Водятся три числа в такой последовательности: сперва первое, затем второе и третье, например: 3, 2, 1. Числа могут быть в пределах от 1 до 255, в отличие от декадных наборных устройств,  которые используются для набора чисел в подобных устройствах, у которых диапазон ограничен от 0 до 9-ти.
Если содержимое введённых 3-х чисел совпало с теми числами, которые занесены предварительно, в энергонезависимую память микроконтроллера (EEPROM), на выходе появляется сигнал логической «1», загорается светодиод HL4, который горит около 15 сек. В этот период индикация из светодиодов HL1, HL2, HL3 приобретает вид «бегущих огней» по истечении этого времени на выходе появляется логический «0» и схема переходит снова в исходное состояние ожидания.
Все операции можно осуществлять посредством 2-х кнопок, ориентируясь при этом на состояние светодиодных индикаторов. Введение чисел осуществляется посредством одной кнопки «SET»,  которая может быть вынесена наружу устройства и доступна всем пользователям. Кнопка «RESET». Должна располагаться непосредственно на плате, посредством этой кнопки осуществляется режим программирования занесённых предварительно в энергонезависимую память чисел.
Имеется два режима:
1. Режим программирования, (записи) для введения 3-х желаемых чисел с занесением их значений в энергонезависимую память микроконтроллера, эти значения сохраняются при обесточивании устройства.
2. Режим введения кодов (чисел) для открывания кодового замка.

пример работы

Нужно занести в энергонезависимую память числа 3, 2, 1 (вводя которые, мы будем отпирать замок). Для этого нам надо войти в режим программирования, для этого после включения питания одновременно удерживать нажатыми обе кнопки. После чего сперва отпустить кнопку «RESET», и после начала мигания первого светодиода HL1, сразу же отпустить установочную кнопку «SET». После чего светодиод HL1 перестаёт мигать и загорается постоянно,(остальные светодиоды HL2, HL3 погашены) это означает, что устройство готово для ввода первого числа.
Далее надо нажать кнопку «SET» и удерживать её в нажатом состоянии, отсчитывая одновременное мигание всех 3-х светодиодов HL1, HL2, HL3 (чтобы мигнуло 3 раза) затем кнопку отпустить. В подтверждение, через секунду, индикация мигнёт набранное нами число — 3 (три раза). Далее загорится постоянно второй светодиод HL2 (это означает, что надо ввести второе число) у нас это число равно двум. Надо нажать снова кнопку «SET » и удерживать её нажатой, пока светодиод HL2 после нажатия не загорелся два раза, после этого кнопку отжать, через секунду последует подтверждение набранного нами второго числа, Индикация мигнёт одновременно 3-мя светодиодами два раза. После этого загорится постоянно 3-й светодиод HL3,  третье число мы выбрали равным — 1.
Значит нам надо нажать кнопку, чтобы светодиод загорелся после нажатия только 1 раз и отпустить кнопку. Через секунду в подтверждение, светодиод мигнёт 1 раз. На этом процедура программирования (внесение чисел 3,2,1 ) закончена.

3. Далее надо нажать кнопку «RESET» или отключить питание, чтобы после этого схема вошла в исходный режим ожидания. Режим введения кодов (чисел) для открывания кодового замка. В этом режиме вся индикация погашена.

Теперь попробуем открыть замок, нам надо занести числа 3, 2, 1. Для этого нажмите кнопку «SET», схема активизируется, это будет видно по миганию 1-го светодиода. После этого сразу отпустить кнопку, теперь первый светодиод горит постоянно, это означает, что надо ввести первое число — 3. Процедура аналогична выше описанной, нажимаем кнопку «SET», и удерживая её нажатой ждём,  чтобы все 3 светодиода зажглись 3 раза, после этого отпускаем кнопку, через секунду следует подтверждение набранных нами чисел, в ответ мигание 3 раза. Далее такая же процедура со вторым и третьим числом.
После введения третьего числа и подтверждения индикацией. Если код всех 3-х чисел введён верно, то через секунду зажигается светодиод HL4 и горит около 15 секунд. В это время HL1, HL2, HL3 начинают мерцать, как «бегущие огни» один за другим. По истечении 15 секунд все светодиоды гаснут и схема переходит в исходное состояние ожидания.

Если код введён не верно, никакой реакции не последует до введения 3-й неудачной попытки введения 3-х чисел, после чего индикация приобретает вид мерцающих «бегущих огней» 3-х светодиодов и переходит в режим блокировки схемы на 2,5 минуты. За это время устройство заблокировано на этот период времени,по истечении которого схема снова перейдёт в исходное состояние ожидания и можно будет снова повторить попытку ввести правильный код.

Сменить старые на новые коды, можно в режиме записи, записав новые три числа взамен прежних. Процедура программирования кодов, описана выше.

Детали и конструкция

В схеме применены широко распространённые, недефицитные детали. В качестве тактирования микроконтроллера, выбран внутренний RC-генератора с тактовой частотой 128кГц/8 (16 кГц). Осуществляется это при программировании, выставлением фьюзов, как показано на рисунке.
 
Выставление fuse-битов микроконтроллера
 
В ISP режиме микроконтроллер программируется только один раз, для дальнейшего перепрограммирования этого чипа нужен программатор с HV-режимом.
 
Эмулирование работы устройства в Proteus
 
Так же прилагается схема и описание, прошивкой, а так же файл с виртуальной моделью работы устройства в Proteus. Схема там работает точно так же, как и в реальном устройстве. Схема была собрана и опробована автором.
 
Владимир Науменко, г. Калининград, vladimir@radioded.ru
 
Просмотров всего: 5 285, сегодня: 1

3 комментария

  1. Андрей Reply

    Задумка интересная, но алгоритм ввода чисел неудобный — слишком много «телодвижений» при вводе кода и просто при случайной ошибке надо все равно довводить уже заведомо не правильный код до 3й цифры, получить блокировку на 2,5 минуты и только потом повторить набор… и не дай бог опять ошибся…
    А ведь пользоваться то будет не только «разработчик» данного устройства, а простой юзер, которому показали «тыкай сюда вот так» и каждый день и может не по одному разу… и может очень спеша, с вещами в руках и т.д.

  2. Здравствуйте.Не могли бы вы показать исходный код программы,пожалуйста?

  3. Роберт Reply

    Здравствуйте.Не могли бы вы показать исходный код программы,пожалуйста

Напишите комментарий