Ты не пройдёшь: кодовый замок на логике

Сразу предупреждаю, что этот проект реализован очень нерационально и особого практического смысла в себе не несёт. Я расскажу о такой, казалось бы простой вещи, как кодовый замок, но реализован он не на микроконтроллере, как это обычно делается, а на логических микросхемах. Ведь взять микроконтроллер и прошить, это слишком просто, здесь есть какой-то подвох! Давайте лучше городить логику, как истинные джедаи!
image
Итак, приступим. Первоначальная схема была взята из журнала «Радио» 2 2005 года выпуска, но я внёс в неё некоторые изменения.
Схема построена на триггерах — логических элементах, в которые можно записывать 1 бит информации. Если подать плюс на вход триггера С, то он запомнит логический уровень на входе D. Если же подать плюс на вход R, то триггер будет очищен — запомнит ноль, а вход S, соответственно, служит для того, чтобы записывать в триггер единицу, но он в схеме не используется. Записанное в триггер значение выводится на двух выходах — Q и неQ, неQ всегда будет противоположно Q.
image
image
Именно принцип работы триггера и лежит в основе этого кодового замка. При включении замка за счёт зарядки конденсатора на входах R возникает импульс высокого уровня, устанавливающий все триггеры в положение 0. Увеличив емкость конденсатора и сопротивление резистора идущего к нему, можно повысить секретность замка. При этом при нажатии на ошибочные кнопки повторный ввод верного кода будет возможен лишь через некоторое время, определяемое цепью RC.
Кнопки нужно нажимать в строго определённом порядке, иначе последний триггер не активируется и замок не откроется. Сигнал с выхода Q каждого триггера поступает на вход D следующего, а нажимая кнопку мы осуществляем запись этого уровня в триггер. Таким образом эта единица с первого триггера «переезжает» на последний сквозь все остальные. Также, если нажать неверную кнопку, то подадите + на входы R всех триггеров, схема сбросит код и нужно будет вводить его сначала.
image

Отличие старой схемы в том, что в ней нет вспомогательных элементов И, поэтому код легче подобрать. В моём же случае, если вы будете нажимать на верные кнопки, но в неправильном порядке, то элементы И, опять же, сбросят код. Это повышает его надёжность. Они работают следующим образом: элемент И считывает сигнал с кнопки, идущей к триггеру и входу -Q предыдущего триггера. Если кнопка, идущая к триггеру нажата, а предыдущий триггер не активен, то на оба входа элемента И поступает плюс, на выходе получается тоже плюсовой уровень, который уже идёт на входы R и сбрасывает весь код.
Я считаю главным недостатком такой конструкции то, что цифры в коде не могут повторяться, но в остальном работа устройства очень радует.

Помимо основных деталей в схему добавлены лампочки-индикаторы. Шесть лампочек в середине показывают активность каждого из триггеров, а две лампочки сбоку — активность всего замка (красная — закрыто, зелёная — открыто). Не обошлось и без ошибок, кое-где схема перепаяна, но в файле печатной платы я исправил эти ошибки.
image
image

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

Использованы микросхемы: К561ТМ2, К155ЛИ1, К155ЛН1.
Печатная плата и схема: yadi.sk/d/p56qGpVDjJXpo
Источник первоначальной схемы: www.radioelectronika.ru/?mod=cxemi&sub_mod=full_cxema&id=661

© Geektimes