Кодовый замок на микроконтроллере. Схема и описание

Работаю я электромонтером в районе Крайнего Севера. Зимой у нас всегда возникала проблема, замерзает замок на входе в электроцех. И вот попался мне на глаза журнал «Радио» №5 за 2008 год. Там была опубликована статья Е. Переверзева «Цифровой кодовый замок».

Решил и сделал. Перерисовал печатку из журнала. Спаял схему.
Залил прошивку и схема заработала сразу, хотя это моя первая схема на микроконтроллере.

О моей сборке

На схеме показан аккумулятор, но я его не ставил.
Отсутствие электричества в электроцехе - это нонсенс, но на печатке аккумулятор я учел.
Файл «1.hex» - прошивка флэш, файл «2.hex» - прошивка EEPROM.
В EEPROM изначально заносится код открытия «1, 2, 3». Смена кода производится на открытом замке, после нажатия кнопки «#». Код может содержать до 125 знаков.

Версия печатки из статьи Е. Переверзева

Саму схему, кнопки «Открытие», «Закрытие», блок питания разместил к коробочке из под блока управления вакуумным выключателем.

Блок питания использовал от старого сканера.
Соленоид использовал от старой электоролаборатории, один минус - соленоид потребляет 1,5 А.

Клавиатуру взял от старого телефона.


Резиновые контакты пришлось удалить, т.к на морозе они работать не будут. На их место поставил кнопки SWT-9. Установить замок пока нет возможности (холодно). Но схема полностью работоспособна.

--
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»

Оригинальная статья из "Радио":
🕗 20/12/11 ⚖️ 512,66 Kb ⇣ 111 Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.

Хорош! Халява кончилась. Хочешь файлы и полезные статьи - помоги мне!

Дело было вечером, когда на пороге офиса появилась настойчивая крупногабаритная женщина, предлагающая купить посуду известной марки. На следующий же день я получила от начальника (он же ) задание оградить его творческую натуру от нападок торговых представителей. Так появилась идея создания проекта под кодовым названием Hungry _ Wall . Конечно, сейчас существует множество служб, занимающихся контролем доступа в помещение. Но куда интереснее сделать электронный замок своими руками, особенно мне, начинающему программисту и электронщику.

Как говорится, главное правильно составить ТЗ, т.е.то, что мы хотим получить в результате.

  1. Создать систему распознавания ключей.
  2. Сравнивать ключ с базой, и при совпадении кода поднесенного ключа с одним из записанных в базе открывать замок.
  3. Снимать показания магнитного датчика, позволяющие идентифицировать состояние двери, и если дверь открыта, закрывать замок.
  4. Использовать таймер, по истечению которого замок закрывается, в том случае, если мы передумали входить/выходить. Это предусмотрено для того, чтобы “враги” не попали в секретное логово, воспользовавшись нашей переменой настроения.
  5. Обеспечить открытие двери с помощью кнопки, размещенной внутри помещения.
  6. Запись нового ключа в базу после поднесения ключа-мастера и, естественно, запись самого мастера.
  7. Удаление ключа из базы (feature).
  8. Система индикации для пущей привлекательности.

Полдела сделано, осталось самое малое – реализовать задуманное аппаратно и программно. Для этого необходимо:

  1. Электрический замок
  2. Считыватель прокси (em-Marin) карт "CP-Z" фирмы IronLogic
  3. Ключи или карточки для записи в базу
  4. Кнопка
  5. Блок питания 12 V
  6. Корпус (чтобы все было аккуратно и красиво)
  7. Электроника – микроконтроллер ATmega 8, «кроваткаХ28», стабилизатор КР1158ЕН5В, транзистор IRLU 024 N , 6 разъемов KLEM 2, 1 разъем WF 3 (COM-port), конденсатор, светодиоды и резисторы по вкусу.

Разводка платы показана на схеме 1.

Внутренности платы показаны на рисунке 1.

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

Блок замка включает в себя непосредственно электрический замок, таймер TimeOpen , позволяющий задать максимальное время открытого состояния замка, магнитный датчик, индицирующий открытие и закрытие двери. Входом блока замка является команда открыть замок (Open), поступающая от блоков уключины и кнопки. Блок уключины состоит из считывающего устройства, базы данных, таймера TimeMaster , задающего максимальное время на поднесение нового ключа для записи в базу. Вход в блок осуществляется поднесением ключа или мастера. Блок кнопки состоит из кнопки, которая может принимать 2 состояния (нажата/не нажата).

Для считки бесконтактных карт применяется "Считыватель прокси (em-Marin) карт "CP-Z" фирмы IronLogic его особенность в том, что он эмулирует iButton (1-wire) если к нему поднести проксикарту.. это позволяет упростить программирование замка. однако следует учесть что в данной версии считывателя имеются свои подводные грабли .

Принцип работы предельно прост. При поднесении ключа происходит считывание его кода и сравнение с базой. Если ключ найден в базе замок получает команду Open . Здесь необходимо учитывать особенность замка: открытие надо производить щелчками (открыть-закрыть-открыть). Это обеспечивает защиту от заклинивания замка. При поднесении мастера логика программы меняется. Его наличие никак не влияет на “настроение” замка. Он рассматривается как некий турецкий султан, готовый зарегистрировать (записать в EEPROM) очередную жену (ключ). Т.е. при поднесении ключа (если он ранее не был записан) его код записывается в EEPROM . Тут необходимо учитывать, что память микрухи нерезиновая, и, например, для ATmega 8 она составляет 512 байт, что позволяет записать максимум 255 ключей (если для хранения 1 ключа использовать 2 байта, как в нашем случае). В качестве мастера записывается самый первый поднесенный ключ. Нажатие кнопки также посылает замку команду Open . Система индикации делает наш проект более красочным и информативным. Если горит красный диод – проход блокирован,если зеленый – можно идти! При поднесении мастера горят оба светодиода.

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

Внешний вид всего устройства показан на рисунке 2. Все достаточно аккуратно и красиво.

Скачать исходники можно

Схема и программа цифрового кодового замка с инфракрасным ключом на микроконтроллере

Доброго дня уважаемые радиолюбители!
Приветствую вас на сайте “ “

Доброго дня уважаемые радиолюбители! Сегодня в разделе “Радиолюбительские схемы на микроконтроллерах” мы рассмотрим несложную схему – цифровой кодовый замок с ИК ключом.

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

Кодовый замок находится в режиме ожидания, пока на фотодиод VD1 не поступит ИК сигнал, который преобразуется в электрические импульсы. Ключ представляет собой передатчик ИК сигнала и питается от одного гальванического элемента. На микросхеме собран преобразователь напряжения 1,5 вольта в 5 вольт. Данную часть схемы ключа с преобразователем напряжения можно игнорировать, но для этого потребуется подобрать подходящий источник питания ключа напряжением 5 вольт. Ключ активизируется подачей питающего напряжения выключателем SA1. При замене “секретных” слов надо изменить их коды в текстах программы как замка, так и ключа. Питают замок от сетевого блока питания напряжением 12 вольт. Его желательно дополнить аккумулятором для питания соленоида при отсутствии сетевого напряжения.



Данный проект будет отличным вариантом для повторения новичками, в нем используется ЖКИ дисплей 1602, клавиатура 4х4 из кнопок и конечно же сам контроллер. Кроме того, применены реле, кнопка и разъемы питания, PLS штырьки, пару транзисторов ну и по мелочи. Кстати, яркость дисплея в проекте будет регулироваться по методу ШИМ.

Это устройство может быть использовано для защиты практически любых объектов, пользователь должен ввести правильный пароль для получения доступа. Плата уже спроектирована удобным образом, и остается изготовить только красивый корпус для него. Пароль вводится с помощью встроенной в клавиатуру матрицы 4×4. Основной модуль ЖК-дисплея используется для отображения сообщений пользователю и текущей информации. Как только будет введен правильный пароль – сработает реле. Об этом так же будет свидетельствовать светодиод, установленный рядом с реле. Для отключения реле нужно нажать соответствующую кнопку на клавиатуре.

После ввода четырехзначного пароля необходимо нажать кнопку "ОК" (S8). В любое время вы можете нажать кнопку "Отмена" (S12), чтобы очистить код (например, при вводе любых неправильных цифр).

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

Подсветка ЖК-дисплея выключается автоматически, после того как система находится в режиме ожидания нескольких секунд. Затемнение подсветки происходит очень плавно, так же как например в мобильных телефонах. Дисплей можно заменить на любой аналогичный, с похожим контроллером или даже другого разрешения, главное советую обратить внимание на распиновку выводов, в некоторых моделях распиновка дисплеев может отличаться. Программа для контроллера написана в среде С++, исходники, а так же прошивка для контроллера прилагаются. Микроконтроллер можно применить с любым индексом, буква L означает пониженное энергопотребление.

Список используемых радиодеталей:

01 330 Ом резистор (2 шт), R3, R5

02 4.7 кОм резистор R2, R4, R6

03 200 Ом резистор R1

04 0.1мкФ керамический конденсатор C1, C3, C4, C5

05 1N4007 Диод (2 шт), D1, D3

06 5мм светодиоды любого цвета D4

07 Микроконтроллер ATmega8L U1

08 Стабилизатор напряжения 7805 U2

09 Разъем питания CON1

10 PCB реле RL1

11 Выключатель Вкл / Выкл SW1

12 DC гнездо X1

13 16×2 LCD дисплей LCD1

14 10 кОм подстроечный резистор RV1

15 28 PIN кроватка для микроконтроллера IC

16 BC548 транзистор (2 шт.) Q1, Q2

17 Кнопки (16 штук)

Файл печатной платы для изготовления методом ЛУТ находится ниже в архиве, печатную плату можно заметно уменьшить, если применить кнопки поменьше, или если вынести клавиатуру на отдельную плату. Цифровые клавиши можно взять от старой клавиатуры компьютера или ноутбука.

Скачать файл печатной платы, исходник и прошивку

Оригинал статьи на английском языке (перевод: Адвансед для сайта cxem.net)

Данный проект будет отличным вариантом для повторения новичками, в нем используется ЖКИ дисплей 1602, клавиатура 4х4 из кнопок и конечно же сам контроллер. Кроме того, применены реле, кнопка и разъемы питания, PLS штырьки, пару транзисторов ну и по мелочи. Кстати, яркость дисплея в проекте будет регулироваться по методу ШИМ.

Это устройство может быть использовано для защиты практически любых объектов, пользователь должен ввести правильный пароль для получения доступа. Плата уже спроектирована удобным образом, и остается изготовить только красивый корпус для него. Пароль вводится с помощью встроенной в клавиатуру матрицы 4x4. Основной модуль ЖК-дисплея используется для отображения сообщений пользователю и текущей информации. Как только будет введен правильный пароль - сработает реле. Об этом так же будет свидетельствовать светодиод, установленный рядом с реле. Для отключения реле нужно нажать соответствующую кнопку на клавиатуре.

После ввода четырехзначного пароля необходимо нажать кнопку "ОК" (S8). В любое время вы можете нажать кнопку "Отмена" (S12), чтобы очистить код (например, при вводе любых неправильных цифр).
Код блокировки можно легко изменить, для этого нужно ввести специальный пароль "0000", как только вы введете этот пароль, устройство переключится в режим смены пароля. Здесь нужно ввести старый пароль, чтобы получить разрешение, а затем ввести новый пароль, все очень просто.

Подсветка ЖК-дисплея выключается автоматически, после того как система находится в режиме ожидания нескольких секунд. Затемнение подсветки происходит очень плавно, так же как например в мобильных телефонах. Дисплей можно заменить на любой аналогичный, с похожим контроллером или даже другого разрешения, главное советую обратить внимание на распиновку выводов, в некоторых моделях распиновка дисплеев может отличаться. Программа для контроллера написана в среде С++, исходники, а так же прошивка для контроллера прилагаются. Микроконтроллер можно применить с любым индексом, буква L означает пониженное энергопотребление.

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

Фьюзы:
HIGH=D9
LOW=E1

Скачать файл печатной платы, исходник и прошивку вы можете ниже

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 МК AVR 8-бит

ATmega8

1 ATmega8L В блокнот
U2 Линейный регулятор

LM7805

1 В блокнот
Q1, Q2 Биполярный транзистор

BC548

2 В блокнот
D1, D3 Выпрямительный диод

1N4007

2 В блокнот
D2, D4 Светодиод 2 В блокнот
С1, С3-С5 Конденсатор 0.1 мкФ 4 В блокнот
С2 Электролитический конденсатор 470 мкФ 1 В блокнот
R1 Резистор

200 Ом

1 В блокнот
R2, R4, R6 Резистор

4.7 кОм

3 В блокнот
R3, R5 Резистор

330 Ом

2 В блокнот
RV1 Подстроечный резистор 10 кОм 1 В блокнот
LCD1 LCD-дисплей 16x2 LCD 1 В блокнот
RL1 Реле РСВ 1 В блокнот
S1-S16 Кнопка 16 В блокнот
SW1 Выключатель 1 В блокнот
L1 Катушка индуктивности 10 мкГн 1