Сразу предупреждаю, что этот проект реализован очень нерационально и особого практического смысла в себе не несёт. Я расскажу о такой, казалось бы простой вещи, как кодовый замок, но реализован он не на микроконтроллере, как это обычно делается, а на логических микросхемах. Ведь взять микроконтроллер и прошить, это слишком просто, здесь есть какой-то подвох! Давайте лучше городить логику, как истинные джедаи!

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

Комментарии (25)


  1. nerudo
    29.09.2015 08:27
    +6

    Автор в какой-то момент тоже не пройдет, потому как в такой схеме рано или поздно где-нибудь потеряется контакт ;)


  1. RegIon
    29.09.2015 08:42

    Неплохой стенд, у нас такие в кабинетах схемотехники стоят, правда никто ими не пользуется — всё мультисим заменил.
    А цеплять сам механизм замка к выходу out?
    А кнопка ресет есть, я просто не смог найти ее на схеме? Нужна же, например когда код введен, дверь открыли и закрыли, он ведь должен сбросится, иначе всегда замок будет открыт.


    1. Alexeyslav
      29.09.2015 13:46
      +1

      А как же прочувствовать волшебный дым из микросхем? Без этого инженер не вырастет…


    1. DDRDmakar
      29.09.2015 23:13

      Да, к выходу OUT.
      А кнопку reset нужно подключать параллельно кнопке fail.


  1. arren
    29.09.2015 09:20

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


    1. GarryC
      29.09.2015 10:35

      Ну и смысл топтаться на правильных кнопках? Их точно нет в оставшейся части кода.
      Порадовали заглушенные входы установки триггеров с 3 по 5, проходящие под элементами И.


    1. DDRDmakar
      29.09.2015 23:20

      «Топтаться» как раз можно было в старой схеме, а тут нельзя.
      Для этого и добавлены элементы «И».


  1. Duti_Fruti
    29.09.2015 10:03
    -2

    155 серия очень не надежна. Либо мне так не везло. Их всегда стоило делать с колодками из за их частого вылета :)


    1. GeckoPelt
      29.09.2015 10:42

      Странно, в свое время много возился с «классическими» К155ЛА3/К155ЛА8 и К155ТМ2, никогда с ними проблем не испытывал.


      1. WST
        29.09.2015 14:19
        +3

        Может, имелись в виду чувствительные к статике 176/561/564/etc?


  1. Sergey_datex
    29.09.2015 11:40
    +6

    Автору на доработку:
    1. Нет ни одного конденсатора по питанию микросхем — чревато нестабильной работой и зависимостью от погоды на луне.
    2. Смешивать в одной схеме CMOS и TTL логику нежелательно. Разные входные/выходные токи и логические уровни.
    3. Цепь сброса триггеров (RC — цепочка) должна обязательно содержать разрядный диод.


    1. DDRDmakar
      29.09.2015 23:24

      Спасибо, учту.
      В принципе, стабилизация питания есть, просто она не на плате. 155ые заменю на 561ые со схожим строением, если найду.
      И про диод спасибо, а то иногда не сбрасывается после отключения.


  1. artemerschow
    29.09.2015 11:42
    +2

    Зажигать светодиод при вводе правильной кнопки и сбрасывать в случае ошибки это ужасно! Количество вариантов кода при подборе сразу же уменьшается с 6*6*6*6*6*6 до 6+6+6+6+6+6 в лучшем случае.


    1. Alexeyslav
      29.09.2015 13:52
      +2

      Визуализация, это всего ишь визуализация. Ведь кодовый замок-то учебный.


    1. lim
      29.09.2015 15:54

      Только количество вариантов кода не 6^6, а 6! (6*5*4*3*2*1)
      И да, оно уменьшится в 6+5+4+3+2+1


      1. DDRDmakar
        29.09.2015 23:27

        По задумке человек, вводящий код, не видит плату. Клавиатура выносная.
        Поэтому количество вариантов подбора кода = 10*9*8*7*6*5 = 151200 вариантов.


        1. artemerschow
          30.09.2015 01:13

          Ну в текущей реализации кнопок всё таки шесть (не считая сброса), так что наверное 6! пока, но не суть)
          А можно глупый вопрос? Я просто, если честно, в схемотехнике профан, да и логические схемы помню постольку поскольку, но что будет если все кнопки нажать абсолютно одновременно?


          1. DDRDmakar
            30.09.2015 15:36

            Да ничего не будет.
            Если рассматривать случай, когда все кнопки нажимаются АБСОЛЮТНО одновременно, с точностью до наносекунд, то будет сброс кода, потому что сигнал сброса по прямому проводу дойдёт гораздо быстрее, чем единица пройдёт с первого элемента на последний.
            А если брать реальную ситуацию, например если человек надавил ладонью на клавиатуру, то у вас есть шанс открыть замок, но шанс этого очень мал (1/151200). И даже если замок откроется, то снова закроется через пару милисекунд, так как после правильных сразу будут нажаты неправильные кнопки.


  1. silencer
    29.09.2015 13:41
    +8

    Не канонично. Вместо синих светодиодов должны быть красные АЛ307.


    1. Alexeyslav
      29.09.2015 13:50
      +2

      оранжевые АЛ102… они как раз одногодки тех микросхем. А АЛ307 более современные, почти уже как импортные.


      1. HardWrMan
        29.09.2015 14:21

        А я помню подобные схемы на реле и транзисторах. Например, в книжке «Юный радиолюбитель».


        1. GeckoPelt
          29.09.2015 15:19
          +2

          Ага:)


          1. HardWrMan
            29.09.2015 15:38
            +1

            Зато было весело и задорно. Не то что сейчас, в век ардуин.


            1. Alexeyslav
              29.09.2015 16:25
              +1

              Кто мешает? Неинтересно же, пройденный этап.


  1. Arezus
    01.10.2015 09:32

    А я бы элементы «И» поставил не на сброс триггеров, а как прослойку между каскадами, тогда один вход был бы входом предыдущего каскада, а второй вход шел бы на DIP-Switch, подтянутый к земле или к уровню. Таким образом можно было бы задавать произвольный код, например, если между вторым и третьим триггером элемент «И» притянут одной ногой к земле через DIP-Switch, то для открытия двери нужно набрать 110111 по позициям 1-6, то есть не нажимать третью кнопу, а если нажать, то он просто заблочит следующий каскад.