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