Кодовый замок на микроконтроллере

Ivica Novakovic

Можно найти много модификаций устройств, известных как электрический кодовый замок. Уникальность этого устройства в новом способе считывания нескольких клавиш при помощи только одного входа микроконтроллера (МК). Я использовал аналогово-цифровое преобразование (АЦП), и этим методом я могу точно детектировать, какая из клавиш нажата. Этот способ детектирования клавиш может быть использован только с микроконтроллерами, имеющими встроенный АЦП, поэтому мы будем использовать простой PIC12F675, т.к. нам не требуется много портов для считывания состояний клавиш.

Как это работает

Нажмите четыре клавиши в определенном порядке, и реле переключится на 5 секунд, вот и все. Но вначале вы должны запомнить ваш код: нажмите и удерживайте кнопку, подключенную к выводу 3 МК, пока не загорится светодиод. Теперь, когда светодиод загорелся, вы должны ввести секретный код.

После того, как вы сделали это, ваш код сохранился в eeprom контроллера PIC12F675, и вы сможете включить реле, используя только этот код. Если вы наберете неправильный код 10 раз, включится реле сигнализации.

Определение клавиш с помощью аналого-цифрового преобразователя

Как видно на рисунке, клавиатура сделана из последовательности резисторов и кнопок. От клавиатуры выходит только три провода: +5В, «Земля» и сигнал клавиши, который идет к выводу 7 МК. Резисторы соединены последовательно, и в каждом узле значения напряжения различны. Когда мы нажимаем любую клавишу на клавиатуре, мы подаем определенное напряжение от узла резистивной цепи на 7 вывод МК.

Вывод 7 на PIC12F675 определен как вход и внутренне он подключен к модулю АЦП. PIC12F675 имеет встроенный 10 битный АЦП с диапазоном значений преобразования от 0 до 1023. Поэтому, если у нас использовано 12 клавиш, зазор преобразования между ними равен 85. Согласно этим вычислениям, зададим «клавише 0” диапазон 0-85, «клавише 1” — диапазон 86-170, «клавише 2” — диапазон 171-256 и т.д.

Я думаю, что можно подключить и больше 12-ти клавиш, сохранив при этом хорошее распознавание каждой клавиши.


PCB back side


PCB components side

Keylock sch & pcb — pcb files in Protelu-99 SE format

Keylock.pdf — pcb in acrobat PDF format

Keylock program in hex: Keylock hex

На английском языке: KeyLock

2 комментариев

  1. А не можно как то переписать программу, что бы реле на 5 ск не включалось, а постоянно работало в подтянутом состоянии. Пока не нажму кнопку закрыть ??? Хочу такое поставить на мотоцкл biggrin

  2. Добрый день!
    Кто может подсказать какие виды конденсаторов и на сколько вольт тут стоят?
    заранее благодарю! alapaevsk6696@mail.ru