Электронный кодовый замок на atmega8

cxema21.ru

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

Как видно из схемы, устройство ввода представляет собой клавиатуру из 12 клавиш. Из них 10 для ввода символов(SB1. SB10), и 2 для подтверждения (SB11) и сброса (SB12). При сборке использовались обычные кнопки, но можно поэкспериментировать и с графитовыми контактами, однако придется подобрать сопротивление R1 . R4. Если же планируется выводить клавиатуру на проводах, превышающих в длине 20 см, то для более устойчивой работы необходимо уменьшить сопротивление до 4. 5 кОм. Введенные символы дублируются на ЖКИ, который также осуществляет отображение режима работы. Функции управления реализованы на микроконтроллере ATmega8, который настроен на работу от внутреннего генератора 8 МГц. Для подключения к другим устройствам используется разъем, в котором предусмотрены следующие выходы: SW-для включения/выключения (изменяет свое состояние при правильном вводе кода на противоположное: логический «0» на «1» и обратно при повторном вводе), STR — на нем в течении 5 с после правильного кода устанавливается логическая «1». По истечении этого времени устанавливается «0» (преимущественно предусмотрен для замка двери). Данные выходы рассчитаны на максимальный ток нагрузки 20 мА и позволяют самостоятельно разработать исполнительный элемент (транзисторный ключ с реле, например) либо без особого труда связать замок с другим устройством. Питание осуществляется однополярным напряжением 5 В, которое снимается со стабилизатора главной схемы. При отсутствии такового можно применить микросхему 7805. Если вы уверены в возможности ввода кода «в слепую», то ЖКИ можно не подключать. На работу схемы зто не повлияет, но создаст неудобства при смене кода.

ЖКИ может быть использован любой марки, но с такой же конфигурацией и возможностью вывода 16 символом на 2 строки. Конденсатор С1 можно исключить в случает наличия цепей фильтрации в управляемом устройстве.

Базовый вариант данного устройства предусматривает 9 символов кода. Однако, для простоты использования, программа микроконтроллера была изменена. Более подробно см. в главе Прошивка.

При первом включении устройства в ячейках 0-8 (в зависимости от кода) EEPROM памяти находятся значения FFh. Так и должно быть, ведь при стирании МК «с заводской конфигурацией» стирается и этот вид памяти. Следовательно, физически с клавиатуры ввести 255 одним символом невозможно. Поэтому в программу введена специальная процедура проверки EEPROM. При запуске схемы она считывает значение с адреса 0 и анализирует. Если оно не является О, 1,2.. .9 (физически доступным символом), то производиться запись во все ячейки кода значений 0. Следовательно, код будет «000000000» в базовой версии (9 символов). Если же все нормально, то в ОЗУ загружается значения из памяти. На индикатор будет выведено слово «Code: (рус. версия Код:)». На обоих выходах будет присутствовать логический «0». С этого момента устройство работает в режиме ожидания кода (далее РО).

Для открытия замка необходимо ввести код с клавиатуры и нажать клавишу «Ok». При правильном коде вы увидите сообщение «Ок. (Верно. )» и произойдет изменение на выходах устройства. После 5 с — переход в РО. Если же код не верен, вы получите соответствующее сообщение, и схема будет заблокирована на 10 с. Это вынужденный шаг, который позволяет увеличить время взлома замка путем перебора кода. При варианте 9 символов из <0. 9>, данная операция от первой до последней комбинации займет около 310 лет (По 9 комбинаций). В целях безопасности код дублируется на индикаторе символом «#». При превышении количества введенных символов выполняется автоматическая очистка ЖКИ. Кнопка «Clear» служит для произвольной очистки в случае ошибки.

Смена кода: Если верить паспорту микроконтроллера, то количество гарантированных циклов данной операции ограничено 100000.
Для смены текущего кода необходимо знать сам код и код входа в данный режим.

Поэтому процедура выглядит следующим образом:

1. Ввести комбинацию «123» (она фиксирована), нажать «Ok». На индикаторе отобразиться строка «Enter code» («Введите код»)
2. Ввести ваш старый код (при первом запуске все 0) и нажать «Ok». Если все правильно, то вы перейдете на следующий уровень ((«Enter new» (Введите новый)), в противном случае — сообщение об ошибке, блокировка и переход в РО.
3. Ввести новый код, который отображается на индикаторе соответствующими символами при нажатии клавиш. При переполнении количества символов, отображаться и использоваться будут те, что были введены первыми. Если количество символов соответствует необходимому, то после нажатия на «Ok» появиться сообщение «Code is changed (Код изменен)», устройство перепишет код в EEPROM и перейдет в РО с измененным кодом. В противном случае-сообщение о несоответствии количества символов и переход в РО. На любом этапе смены кода выход из данного режима осуществляется нажатием на кнопку «Clear». Это необходимо в том случае, если вы не согласны с тем, что ввели. Так как в данной операции на ЖКИ отображается реальный код, то ее следует производить при отсутствии посторонних.

Для данного устройства было написано 6 прошивок: русский и английский язык по 4, 6 и 9 символов. Английский вариант предусмотрен в тех случаях, когда контроллер ЖКИ не отображает русских символов. У них нет функции «мастер код», при помощи которой можно открыть замок в независимости от основного кода. Код» 123″ не осуществляет воздействия на выходы устройства. Для настройки на внутренний генератор 8 МГц необходимо установить биты конфигурации (они же FUSE bits) CKSEL 0-3 в положение 1101 соответственно. В программаторе от «CodeVisionAVR» 1 соответствует установленная «галочка», т.е. данный бит программируется

Кодовый замок с ЖК дисплеем

Дата публикации: 27 марта 2010 .

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

Описание

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

Конструкция

Как видно из схемы, устройство ввода представляет собой клавиатуру из 12 клавиш. Из них 10 для ввода символов(SB1. SB10), и 2 для подтверждения (SB11) и сброса (SB12). При сборке использовались обычные кнопки, но можно поэкспериментировать и с графитовыми контактами, однако придется подобрать сопротивление R1 . R4. Если же планируется выводить клавиатуру на проводах, превышающих в длине 20 см, то для более устойчивой работы необходимо уменьшить сопротивление до 4. 5 кОм. Введенные символы дублируются на ЖКИ, который также осуществляет отображение режима работы. Функции управления реализованы на микроконтроллере ATmega8, который настроен на работу от внутреннего генератора 8 МГц. Для подключения к другим устройствам используется разъем, в котором предусмотрены следующие выходы: SW-для включения/выключения (изменяет свое состояние при правильном вводе кода на противоположное: логический «0» на «1» и обратно при повторном вводе), STR — на нем в течении 5 с после правильного кода устанавливается логическая «1». По истечении этого времени устанавливается «0» (преимущественно предусмотрен для замка двери). Данные выходы рассчитаны на максимальный ток нагрузки 20 мА и позволяют самостоятельно разработать исполнительный элемент (транзисторный ключ с реле, например) либо без особого труда связать замок с другим устройством. Питание осуществляется однополярным напряжением 5 В, которое снимается со стабилизатора главной схемы. При отсутствии такового можно применить микросхему 7805. Если вы уверены в возможности ввода кода «в слепую», то ЖКИ можно не подключать. На работу схемы зто не повлияет, но создаст неудобства при смене кода.

Настройка

Она заключается только в подстройке сопротивления R6, чем определяется контраст ЖКИ.

Детали

ЖКИ может быть использован любой марки, но с такой же конфигурацией и возможностью вывода 16 символом на 2 строки. Конденсатор С1 можно исключить в случает наличия цепей фильтрации в управляемом устройстве.

Работа с устройством

Базовый вариант данного устройства предусматривает 9 символов кода. Однако, для простоты использования, программа микроконтроллера была изменена. Более подробно см. в главе Прошивка.

Читайте также  Проводка для сварочного инвертора

При первом включении устройства в ячейках 0-8 (в зависимости от кода) EEPROM памяти находятся значения FFh. Так и должно быть, ведь при стирании МК «с заводской конфигурацией» стирается и этот вид памяти. Следовательно, физически с клавиатуры ввести 255 одним символом невозможно. Поэтому в программу введена специальная процедура проверки EEPROM. При запуске схемы она считывает значение с адреса 0 и анализирует. Если оно не является О, 1,2.. .9 (физически доступным символом), то производиться запись во все ячейки кода значений 0. Следовательно, код будет «000000000» в базовой версии (9 символов). Если же все нормально, то в ОЗУ загружается значения из памяти. На индикатор будет выведено слово «Code: (рус. версия Код:)». На обоих выходах будет присутствовать логический «0». С этого момента устройство работает в режиме ожидания кода (далее РО).

Ввод кода

Для открытия замка необходимо ввести код с клавиатуры и нажать клавишу «Ok». При правильном коде вы увидите сообщение «Ок. (Верно. )» и произойдет изменение на выходах устройства. После 5 с — переход в РО. Если же код не верен, вы получите соответствующее сообщение, и схема будет заблокирована на 10 с. Это вынужденный шаг, который позволяет увеличить время взлома замка путем перебора кода. При варианте 9 символов из <0. 9>, данная операция от первой до последней комбинации займет около 310 лет (По 9 комбинаций). В целях безопасности код дублируется на индикаторе символом «#». При превышении количества введенных символов выполняется автоматическая очистка ЖКИ. Кнопка «Clear» служит для произвольной очистки в случае ошибки.

Смена кода

Если верить паспорту микроконтроллера, то количество гарантированных циклов данной операции ограничено 100000.
Для смены текущего кода необходимо знать сам код и код входа в данный режим.

Поэтому процедура выглядит следующим образом:

1. Ввести комбинацию «123» (она фиксирована), нажать «Ok». На индикаторе отобразиться строка «Enter code» («Введите код»)
2. Ввести ваш старый код (при первом запуске все 0) и нажать «Ok». Если все правильно, то вы перейдете на следующий уровень ((«Enter new» (Введите новый)), в противном случае — сообщение об ошибке, блокировка и переход в РО.
3. Ввести новый код, который отображается на индикаторе соответствующими символами при нажатии клавиш. При переполнении количества символов, отображаться и использоваться будут те, что были введены первыми. Если количество символов соответствует необходимому, то после нажатия на «Ok» появиться сообщение «Code is changed (Код изменен)», устройство перепишет код в EEPROM и перейдет в РО с измененным кодом. В противном случае-сообщение о несоответствии количества символов и переход в РО. На любом этапе смены кода выход из данного режима осуществляется нажатием на кнопку «Clear». Это необходимо в том случае, если вы не согласны с тем, что ввели. Так как в данной операции на ЖКИ отображается реальный код, то ее следует производить при отсутствии посторонних.

Монтаж устройства

К данному условию следует отнестись достаточно серьезно, так как это в основном и определяет безопасность использование подобных устройств. Одно из главных требований — это отсутствие открытых и неизолированных участков схемы. Ведь «открыть» замок в противном случае достаточно просто. Клавиатуру желательно выполнить с диэлектрическими толкателями (если выбран вариант с кнопками). На ее внешней части следует установить проводящую пластину с отверстиями под толкатели, которая должна быть заземлена (подойдет и кусок стеклотекстолита с одним слоем фольги). Обращаю ваше внимание, что «земля» клавиатуры должна быть изолирована от «земли» устройства. Это позволит снизить вероятность его поражения от высоковольтных разрядов при попытке вывести из строя. Универсальный вариант — это заземленная рамка, в которую производится монтаж внешних частей устройства. Данные способы подходят для наружной установки замка, однако в большинстве случаев монтаж можно выполнять произвольный, в зависимости от условий эксплуатации.

Прошивка

Для данного устройства было написано 6 прошивок: русский и английский язык по 4, 6 и 9 символов. Английский вариант предусмотрен в тех случаях, когда контроллер ЖКИ не отображает русских символов. У них нет функции «мастер код», при помощи которой можно открыть замок в независимости от основного кода. Код» 123″ не осуществляет воздействия на выходы устройства. Для настройки на внутренний генератор 8 МГц необходимо установить биты конфигурации (они же FUSE bits) CKSEL 0-3 в положение 1101 соответственно. В программаторе от «CodeVisionAVR» 1 соответствует установленная «галочка», т.е. данный бит программируется.

ОДНОКНОПОЧНЫЙ КОДОВЫЙ ЗАМОК

На сайте уже было много кодовых замков — с полноцифровой клавиатурой, двумя кнопками, да и одной тоже. Но и это устройство тоже имеет право на существование из-за своей простоты и надёжности. Реализован проект на МК Attiny-13 и конечно одной микро-кнопке. Конечно эта схема не защитит сейф в банке, но что-то простое и маленькое вполне, чтоб ограничить доступ от, например, детей или коллег на работе. Схема также может действовать как переключатель, или просто как иммобилайзер для автомобиля или мотоцикла. В общем этот гаджет кому-нибудь точно пригодится, поэтому выкладываем полное описание.

Схема кодовой кнопки на Attiny

Пару слов про резистор на выходе микроконтроллера. Используемое реле может потреблять менее 20 мА (чем выше напряжение, тем ниже будет ток удержания катушки), что при усилении тока около 200 дает около 0,1 мА базового тока. Когда выходной сигнал от платы составляет около 5 В, а падение на переходе база-эмиттер составляет около 0,7 В, базовый резистор может иметь значение 4,3 В / 0,1 мА или 43 кОм. Любое меньшее значение гарантирует полное насыщение в этом диапазоне. Так что 4,7 кОм уже даст полное насыщение.

Написана программа в BASCOM и после компиляции она занимает ровно 1024 байта. Bin файл для программирования во вложении. Тактовая частота 1,2 МГц. Работа кнопки шифрования несколько напоминает код Морзе, когда код короткий и длинный нажимается в нужное время. Всего у нас 256 комбинаций. Это может быть немного, но вряд ли кто захочет тратить столько времени на перебор ввода кода (надо ещё знать что вообще требуется сделать). После включения питания в течение 1,5 секунд схема выполняет внутреннюю очистку и готова к работе.

Режим выключения

Реле выключено и код в ожидании. Фактически, это единственная функция в этом режиме. Кнопка включает устройство (переходит в режим ON) после ввода 8-битного кода (как при последовательной передаче). Время нажатия кнопки:

  1. короткий импульс «0» 25 мс — 150 мс
  2. длинный импульс «1» 150 мс — 1 с
  3. максимальное время между импульсами при вводе кода 1,5 секунды — по истечении этого времени код должен быть введен снова.

Красный светодиод активен все время, пока кнопка удерживается (для удобства и чтобы убедиться что кнопка нажата).

Режим включено

Выключение выполняется кратким нажатием кнопки (она не будет реагировать в течение длительного времени). В этом режиме также возможна любая конфигурация кнопки:

  • [A] удерживаем кнопку в течение от 2 до 3,5 секунды — одноразовый запрос кода, при условии что вы переключаетесь в режим OFF. Затем зеленый светодиод мигает каждые 0,5 с (момент входа в эту функцию невидим). Теперь, если не введем код, то не выключим устройство.
  • [B] удерживая кнопку в течение от 4 до 5,5 секунды — отключение запроса кода. Кнопка тогда работает как обычная кнопка (без кода). Система включается или выключается коротким нажатием кнопки в течение длительного времени (без реакции). Режим активен до тех пор, пока кнопка снова не будет удерживаться во включенном режиме в течение от 4 до 5,5 секунды или до тех пор, пока питание не будет отключено (момент входа в эту функцию невидим).
  • [C> удерживая кнопку в течение 6 секунд — ввод для изменения кода. По истечении этого времени зеленый светодиод начинает быстро мигать каждые 75 мс и мигает до тех пор, пока вы не закроете опцию изменения кода.
Читайте также  Проводка для софитов

Процедура изменения кода следующая: вводим новый код со временем для кнопки, о которой написано ранее. После входа в последнее восьмое состояние, нажмите кнопку еще раз и удерживайте в течение 6 секунд, пока светодиод не перестанет мигать. Время паузы от ввода кода до подтверждения не может превышать 1,5 секунды — по истечении этого времени схема автоматически выйдет из режима изменения кода без его изменения. Вы также можете выйти из этого режима удерживая кнопку в течение 6 секунд после ввода неполного кода (программа проверяет, было ли 8 символов). Введенный код сохраняется в памяти EEPROM, поэтому после выключения устройства и его повторного включения он будет по-прежнему действителен.

Дополнительные условия: если опция [A] активна, то невозможно ввести опции [B] и [C], а опция [B] деактивирована, если она была активна, когда при активности [C] невозможно ввести опции [A] и [ B] и опция [B] деактивируется, если она была активной.

Что произойдет если забудем код? Просто отключаем источник питания, снова удерживая кнопку, включаем его и у нас есть временный код «00000000» — в памяти EEPROM, однако лучше сразу войти в режим ON и изменить его на более сложный.

На рисунке изображен прототип на макетной плате. Готовое устройство спаяно в версии SMD.

Дверной кодовый замок с клавиатурой от компьютера.

Расскажу вам историю про то, как я делал кодовый замок. Может кому пригодится. Итак…

Было это в 2007 году, когда мой брат поступил в универ на ПМиК и поселился в общежитие. Придя к нему в гости и увидев, что частые хождения в комнату и обратно сильно задерживает закрывание двери ключом (а это необходимо, ибо в комнате ценные вещи), я подумал, а не сделать ли на дверь кодовый замок? Далее — под катом.

Что необходимо для создания такого устройства?

  1. Замок с защелкой
  2. Исполнительное устройство
  3. Блок управления
  4. Устройство ввода
  5. Блок питания

Был взят вот такой замок. Он был доработан добавлением тяги изнутри замка от защелки к актуатору. Тяга крепилась через цепочку, поэтому заклинивание актуатора не могло заклинить замок в закрытом состоянии.

В качестве исполнительного устройства для открывания взял автомобильный актуатор.

Плата управления с драйвером актуатора. Микроконтроллер взят ATMega8 в дип корпусе.


Устройством ввода послужил отпиленный кусок клавиатуры с цифрами. Повезло тем, что отрезав лишнюю часть не прервались дорожки к контроллеру клавиатуры и к оставшимся кнопкам. Кнопки помещены в металлический корпус, в него была добавлена кнопка RESET и динамик.

Блоком питания послужил бесхозный 200 ваттный блок питания для компьютера. У него не было вентилятора, но как показала практика, при такой нагрузке он совершенно не грелся. В принципе, его можно смело заменить небольшим БП на 12 вольт 1А, так как основной ток возьмет на себя аккумулятор.

Замок спроектирован с резервным питанием от аккумулятора и отсутствие электричества некоторое время не помешает его работе. При открывании замка на актуатор вначале подается полное напряжение питания, а при удержании, с помощью ШИМ, напряжение снижается, что снижает потребление энергии. В любом случае замок можно открыть ключом.

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

Особенность разработки в использовании компьютерной клавиатуры. Протокол передачи по PS/2 довольно прост, но для двусторонней передачи информации нужно подумать. Здесь использовано софтовое решение. Конечно лучше переделать на USART. Про протокол PS/2 можно почитать тут.

Упрощенная блок-схема программы выглядит так.

Замок, актуатор и блок управления были смонтированы на двери в железном корпусе, а блок питания находился над дверью. Соединения сделаны многожильной витой парой. Кнопки открывания лапшой проведены до рабочих столов через всю комнату, чтобы открывать дверь не вставая с места.

За 4 года непрерывной работы была одна неполадка, исправленная выключением блока питания и аккумулятора. Даже RESET нажать не успели. В настоящее время замок демонтирован в связи с успешным окончанием учебы и переселением. Описание и исходники в аттаче.

Самодельные кодовые замки (три схемы на тиристоре, микросхемах и МК)

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

Схема кодового замка на тиристоре

На рисунке 1 показана схема наиболее простого варианта. «Триггером» является тиристор типа MCR100 (на любое напряжение). В его анодной цепи включено электромагнитное реле К1, которое, собственно, и служит выключателем. Питается схема от источника постоянного тока напряжением 12V.

Для включения используется клавиатура, состоящая из десяти кнопок S0-S9 (кнопки для удобства пронумерованы теми же цифрами, как и подписаны). Код задается соответствующим соединением кнопок. Кнопки все переключающие.

Кнопки, номера которых входят в кодовое число (в данном случае код:0478, соответственно, кнопки SO, S4, S7, S8) включены последовательно, используя замыкающие контакты. Кнопки, не входящие в кодовое число (в данном случае, S1, S2, S3, S5, S6, S9) включены последовательно размыкающими контактами.

Цепь из кнопок кодового числа включена через резистор R1 между управляющим электродом тиристора и плюсом питания 12V (до кнопки S10). Поэтому, при одновременном нажатии этих кнопок происходит подача открывающего тока на управляющий электрод тиристора, и он открывается, включая ток на обмотку реле К1, а то замыкает свои контакты и ими включает нагрузку или аппаратуру, для включения которой данная схема используется.

Рис. 1. Схема простого кодового замка на тиристоре MCR100.

Цепь кнопок, не входящих в кодовое число включена последовательно питанию обмотки реле К1 и тиристора VS1. Если будет нажата хотя бы одна из кнопок, не входящих в кодовое число, происходит разрыв цепи и на анод тиристора не поступает напряжение. Поэтому ток на реле тоже не поступает, даже если и были при этом нажаты все кнопки кодового числа.

После правильного набора кода, то есть, одновременного нажатия только кнопок, составляющих кодовое число, контакты реле К1 остаются включенными неограниченное время. Чтобы выключить, нужно нажать кнопку S10, которая служит для выключения. При этом размыкается цепь питания, и тиристор закрывается, после отпускания S10 он остается закрытым до очередного правильного набора кода.

Кодовый замок на микросхемах

Недостаток схемы на рисунке 1 в том, что кнопки кода нужно нажимать одновременно. Более удобен вариант, в котором кнопки нажимают последовательно согласно последовательности цифр в кодовом числе.

Такая схема показана на рисунке 2. Схема построена на двух микросхемах К561ТР2 и К561ЛА7. Кроме последовательного набора кода, здесь еще звуковая индикация нажима каждой кнопки.

Клавиатура для включения состоит из десяти кнопок S0-S9 (кнопки для удобства пронумерованы теми же цифрами, как и подписаны). Код состоит из четырех цифр, кнопки которых нужно нажимать последовательно.

В данном случае, код: 0478, соответственно, нужно сначала нажать кнопку S0, затем S4, затем S7 и закончить нажатием S8. Только в таком порядке. Естественно, код может быть и другим, все зависит от распайки кнопок.

Рис. 2. Принципиальная схема кодового замка на микросхемах К561ТР2 и К561ЛА7.

Микросхема К561ТР2 имеет такую особенность, что её RS-триггеры имеют приоритет по входам «S». То есть, пока на входе «S» есть единица состояние триггера «1», и оно не меняется при подаче единицы на его вход «R». Все четыре триггера микросхемы соединены так, что выход одного триггера соединен с входом «S» другого.

В результате, всю эту систему из четырех RS-триггеров можно установить в состояние нуля на выходе D1.4 только последовательной установкой в нулевые состояния, сначала D1.1, затем D1.2, затем D1.3 и только после этого, D1.4. И никак иначе.

Для установки триггеров в нулевые состояния нужно подать логическую единицу на вход «R». Здесь это делается четырьмя кнопками, выбранными по номерам соответственно коду. В данном случае код: 0478,соответственно, это кнопки SO, S4, S7, S8.

Читайте также  Подключение телефонного аппарата к двум телефонным линиям

Эти кнопки включены так, что при их нажатии поступает логическая единица на «R» вход соответствующего триггера. После последовательного нажатия кнопок кода на выходе D1.4 появляется логический ноль. Он инвертируется элементом D1.4 и на управляющий электрод тиристора VS1 поступает через резистор R9 открывающий ток. Тиристор открывается и реле К1 включает своими контактами нагрузку или оборудование.

Для того чтобы установить единицу на выходе D1.4 нужно подать единицу на вход «S» D1.1. При этом все четыре триггера микросхемы D1 последовательно установятся в единичное состояние.

Все кнопки, номера которых не соответствуют коду, соединяют параллельно, и подключают к выводу 14 D1.1. При нажатии любой из них все триггеры возвращаются в исходное единичное состояние.

Для звуковой сигнализации нажатий кнопок используется мультивибратор на логических элементах D1.1 и D1.2. При нажатии любой из кнопок открывается один из диодов VD1-VD5 и подает напряжение логической единицы на вывод 2 D1.1. При этом мультивибратор запускается и звучит пьезоэлектрический звукоизлучатель BF1.

Звук длится столько времени, сколько нажата кнопка.

Для автоматического сброса схемы триггеров после включения реле К1 служит схема на конденсаторе С1, резисторе R7 и логическом элементе D1.3.

Выключение нагрузки или оборудование производится кнопкой S10. При этом размыкается цепь питания, и тиристор закрывается, после отпускания S10 он остается закрытым до очередного правильного набора кода.

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

Недостаток схемы на рисунке 2, как и на рисунке 1, в том, что код приходится задавать распайкой кнопок, и его невозможно оперативно изменить. На рисунке 3 приводится схема, позволяющая оперативно менять код. Код, как и в схеме на рис.2, набирается последовательным нажатием кнопок кодового числа.

Схема выполнена на микроконтроллере P1C16F84A. Это позволяет оперативно изменять код, потому что он хранится в памяти микроконтроллера. Клавиатура для набора кода состоит из 16-ти кнопок.

Рис. 3. Принципиальная схема кодового замка на микроконтроллере P1C16F84A.

Это готовая клавиатура от стационарного сотового телефона с кнопочным набором номера. На схеме кнопки пронумерованы соответственно их обозначению на этой клавиатуре. Код четырехзначный, но может состоять не только их цифр от 0 до 9, но и букв от А до D. К тому же, цифры (и буквы) могут повторяться.

Это существенно увеличивает количество возможных кодовых комбинаций.

При наборе правильного кода на выводе порта RB2 микроконтроллера появляется импульс, который поступает на управляющий электрод тиристора VS1 через резистор R2. Тиристор открывается и реле К1 включает своими контактами нагрузку или оборудование.

Чтобы набрать код, нужно набрать четырехзначный код на клавиатуре последовательным нажатием соответствующих кнопок, затем подтвердить код нажатием кнопки #.

Выключение нагрузки или оборудования производится размыкающей кнопкой S10. При этом размыкается цепь питания, и тиристор закрывается, после отпускания S10 он остается закрытым до очередного правильного набора кода.

По умолчанию, после программирования микроконтроллера, в нем задан код «1234». Чтобы изменить код, нужно набрать действующий код, затем, нажать кнопку * и два раза набрать новый код через кнопку #. Например, чтобы установить новый код 0478, нужно набрать следующее: 1234*0478#0478#. После этого схема будет включать нагрузку или оборудование после последовательного набора 0478#.

Исходный файл на ассемблере — Скачать (2 КБ).

Электронный RFID замок на микроконтроллере своими руками. Схема

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

Самое главное для рядового пользователя — это удобство в эксплуатации и надежность электронного замка. Этим требованиям удовлетворяют устройства, основанные на RFID (от англ. Radio Frequency IDentification — радиочастотная идентификация) — бесконтактной радиочастотной идентификации.

Подобная система идентификации состоит из стационарного приемника и носимого передатчика (транспондера).

Представленный в данной статье RFID замок работает подобным образом. Идентификация осуществляется на основе чтения 40-битного серийного номера карты Unique. Рабочее состояние сигнализируется звуковым сигналом. Замок может работать в двух основных режимах: чтения и регистрация карт Unique в памяти микроконтроллера. Всего в память можно записать 4 карты.

Краткие характеристики RFID замка;

  • взаимодействие с картами Unique;
  • количество регистрируемых карт: 4;
  • идентификация на основе серийного номера;
  • чувствительность считывателя: ок. 5 см;
  • исполнительное устройство: реле с двумя режимами работы;
  • звуковая сигнализация работы;
  • питание: 9…12В.

Описание работы RFID замка

Всю схему можно разделить на две части: цифровую и аналоговую. Цифровая схема состоит из микроконтроллера, который управляет всем устройством. В схеме применен микроконтроллер типа PIC12F683 в корпусе DIP8.

Внутренний RC генератор микроконтроллера позволяет получить тактовую частоту с программируемым диапазоном частот 37кГц … 8МГц.

Аппаратный генератор сигнала ШИМ, содержащийся в контроллере, используется для генерации прямоугольных импульсов с частотой 125 кГц, которые после усиления поступают на антенну считывателя.

Для генерации использован таймер TMR2, который с помощью цифрового компаратора автоматически сбрасывается после подсчета соответствующего количества импульсов. Кроме того, автоматически изменяется состояние выхода GP2 на противоположное.

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

Форма волны, полученный таким образом, направляется на вход усилителя, состоящего из транзисторов VT1 и VТ2, и далее на катушку-антену считывателя, которая используется для бесконтактного питания схемы, находящейся в Unique карте.

Для используемых Unique карт скорость передачи данных равна примерно 2 кбит/с (125000/64=1953bps). Уникальный код каждой авторизованной карты хранится в энергонезависимой памяти EEPROM микроконтроллера.

Состояние работы замка сигнализируется с помощью зуммера, подключенного к выводу GP4. Управление реле осуществляется с выхода GP5 через транзистор VT3.

Две перемычки служат для установки режима работы микроконтроллера. Перемычка JP2 переводит контроллер в режим программирования новых карт, а JP1 меняет способ управления реле между режимом переключения и временным включением.

Аналоговая часть схемы служит для усиления сигнала, индуцированного в катушке и преобразования его в цифровую форму. Основным элементом здесь является сдвоенный операционный усилитель LM358. Катушка подключается к разъему CON1.

Индуцированный в ней сигнал поступает на анод диода VD1. Кроме полезного сигнала, также есть несущая волна (125 кГц) и случайные сигналы помех, поэтому в схему добавлен полосовой фильтр , который ограничивают полосу пропускания на частоте около 2 кГц.

После всей обработки, уже соответствующий цифровой сигнал поступает на вход GP3 микроконтроллера.

Антенна состоит из 40 витков эмалированного обмоточного провода диаметром 0,1…0,3 м
м, намотанного на временную оправку диаметром 40…60 мм. После этого катушку для защиты следует обмотать изоляционной лентой.

Для питания всей схемы, применен стабилизатор типа LM7805. Диод VD4 защищает стабилизатор от повреждения в случае подключения питания неправильной полярности.

Питающее напряжение подается к выводу CON2. Его значение должно находиться в диапазоне 9…12 В. Более высокое напряжение не повредит стабилизатор, но из-за этого он может значительно греться.

Правильно собранная схема готова сразу к работе, и вы можете приступить к процедуре записи уполномоченных карт.

Для записи карт необходимо при выключенном питании замкнуть перемычку JP2 и включить питание. Микроконтроллер подтвердит режим программирования двухсекундным звуковым сигналом и будет ожидать последовательного приближения четырех RFID карт.

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

Перемычку нужно разомкнуть, чтобы в случае отключения питания процессор не был снова переведен в режим программирования. Если число уполномоченных карт меньше чем четыре, то необходимо несколько раз приложить одну карту (в общем, должно быть 4 регистрации).

Во время работы, приближение карты к антенне сигнализируется двойным звуковым сигналом зуммера и включением реле. Если перемычка JP1 не установлена, то каждое приближение карты будет вызывать изменение состояния реле на противоположное. Если она установлена, то реле включиться на 10 секунд, после чего вернется в исходное состояние.

Скачать прошивку (62,6 KiB, скачано: 1 751)