Устройство представляет собой кодовый замок, управляемый с помощью энкодера (датчика угла поворота).
Схема управления реализована на контроллере Atmel AT89C2051.
Программа для контроллера написана на языке ассемблера Asm51.
Прграмма создавалась в IDE 8051.
Энкодер имеет две пары механических контактов и связанную с ними ось, которая при вращении может принимать 20 дискретных положений. В случае, когда ось находится в фиксированном положении, обе пары контактов разомкнуты. При переходе из одного положения в другое кратковременно замыкается одна пара контактов, а затем другая. Порядок замыкания пар зависит от направления вращения оси. Анализируя порядок замыкания пар контактов и подсчитывая количество замыканий можно определять положение оси.
В качестве механизма замка использован привод CD-ROM. Роль ригеля (засова) выполняет лоток привода. Положению "открыто" соответствует полностью задвинутый лоток, положению "закрыто" - полностью выдвинутый.
Для перевода замка в положение "закрыто" следует однократно повернуть ось энкодера в любом направлении на любое количество шагов.
Для перевода замка в положение "открыто" следует ввести код, состоящий из 6 чисел. Одно число вводится поворотом оси в любом направлении на требуемое количество шагов. Смена направления поворота оси воспринимается, как переход к вводу следующего числа. Смена направления после ввода шестого числа воспринимается, как команда на открывание. Если все 6 чисел введены правильно, замок открывается.
Код замка записан в программной памяти. Оперативная смена кода в данной реализации не предусмотрена. При желании код можно сменить перепрошивкой контроллера.
Допустимый диапазон скоростей ввода кода: от 4 шагов в секунду до 4 секунд на шаг. Если манипуляций с энкодером не производилось более 5 секунд, то программа выполняет очистку буфера кода и начинает ввод кода заново. Очистку буфера вводимого кода можно выполнить, не дожидаясь завершения 5-секундной паузы. Для этого следует нажать на ручку энкодера, как на кнопку.
Допустимый диапазон каждого из шести чисел кода: от 1 до 255 :)
Использование энкодера обеспечивает возможность набора кода в полной темноте и даже в положении "за спиной". Эта возможность выгодно отличает устройство от классических кодовых замков.