С. ШИШКИН, г. Сэров Нижегородской обл.
Предлагаемое устройство собрано на микроконтроллере и управляет дверным замком на основе соленоида или электродвигателя. Применено кнопочное управление, а информация выводится на цифровые светодиодные индикаторы.
Основа устройства (рис. 1) — микроконтроллер DD1, рабочая частота которого задаётся генератором с внешним кварцевым резонатором ZQ1. Информация выводится на три цифровых семиэлементных индикатора HG1 — HG3 и один шкальный HL1. В устройстве применена динамическая индикация. Питающее напряжение на аноды индикаторов HG1—HG3 поступает через электронные ключи, собранные на транзисторах VT1— VT5, управление которыми осуществляет микроконтроллер DD1 сигналами с линий порта PDO—PD4.
Управление элементами индикаторов HG1—HG3 осуществляют линии порта РСО—РС7, резисторы R7—R14 — токоограничивающие. Кроме того, эти же линии порта использованы для ввода информации от кнопок управления SB1—SB8. Шкальный индикатор HL1 подключён к линиям порта РВО—РВЗ, резисторы R3—R6 также токоограничивающие. Питается устройство от внешнего стабилизированного источника
питания напряжением +5 В. Конденсаторы СЗ, С4 фильтруют питающее напряжение. Управляющий сигнал на исполнительный механизм замка поступает на вилку ХР2.
Кнопки SB1—SB7, обозначенные цифрами от "1" до "7", предназначены для ввода "секретного" кода, который состоит из четырёх цифр от 1 до 7. Последовательным нажатием на кнопку SB8 "Р" ("Режим") задают один из трёх режимов работы: "№ 1", "№ 2", "№ 3". После режима "№ 3" снова включается режим "№ 1". Режимы работы индицирует шкальный индикатор HL1, содержащий четыре элемента. Первый элемент индикатора HL1 включён в режиме "№ 1", второй — в режиме "№ 2" и третий — в режиме "№ 3".
Сдвоенные цифровые индикаторы HG1 и HG2 образуют четырёхразрядное табло, на котором индицируется вводимый код. Цифровой индикатор HG3 индицирует символы "3" (закрыто) при закрытом замке и "О" (открыто) при открытом замке. Чтобы индикатор HG3
выделялся на фоне индикаторов HG1, HG2, его размеры должны быть меньше индикаторов табло. Переключателем SA1 задают режим отображения кода на табло. В положении "1" (открытый режим) индицируются цифры, в положении "2" (скрытый режим) — символы "-".
Сразу после подачи питающего напряжения на входе RST (вывод 9) микроконтроллера DD1 с помощью RC-цепи R1C1 формируется сигнал сброса и устройство переходит в дежурный режим. В этом режиме ("№ 1") оно готово к вводу кода для открывания замка (если, конечно, он был предварительно записан в память микроконтроллера). Первый элемент индикатора HL1 включён (остальные элементы погашены), индикатор HG3 индицирует символ "3" (закрыто), а на табло выводится код 0000.
Кнопками SB1—SB7 набирают четырёхразрядный "секретный" код. После каждого нажатия микроконтроллер DD1 записывает введённую информацию в ОЗУ и начинает сверку введённого кода с записанным в EEPROM. Если код верен, микроконтроллер на пять секунд подаёт сигнал на исполнительный механизм открывания замка — включается четвёртый элемент индикатора HL1, при этом на индикаторе HG3 — символ "О", а на линии порта PD7 (вывод 21) устанавливается низкий уровень. По истечении этого времени четвёртый элемент индикатора HL1 выключается и на линии порта PD7 устанавливается высокий логический уровень. Табло индицирует код 0000, а индикатор HG3 — символ "3".
В режиме записи секретного кода (режим "№ 2") включён второй элемент индикатора HL1. на индикаторе HG3 — символ "3", а на табло — код 0000. Нажатием на кнопки SB1— SB7 устанавливают "секретный" код, который сразу отображается на табло. После набора нажатие на любую из кнопок SB1 —SB7 приведёт к записи этого кода в память микроконтроллера, после чего на табло снова индицируется код 0000. В режиме проверки записанного кода (режим "№ 3") включается третий элемент индикатора HL1, индикатор HG3 индицирует символ "3", а "секретный" код выводится на табло. Понятно, что доступ к кнопке SB8 и переключателю SA1 должен быть ограничен.
Если исполнительный механизм замка — соленоид или электродвигатель с рабочим напряжением 12 В, его подключают к вилке ХР2 устройства через согласующий узел, схема которого показана на рис. 2. При появлении сигнала открывания замка — низкого уровня на линии порта PD7 — транзисторы согласующего узла откроются и питающее напряжение поступит на исполнительный механизм. Диод VD1 защищает полевой транзистор VT2 от пробоя ЭДС самоиндукции, возникающей при закрывании транзистора VT2. Для исполнительного механизма, питающегося от сети 220 В, схема согласующего узла показана на рис. 3. Оно построено на базе твердотельного реле S202TO2, которое обеспечивает гальваническую развязку устройства от сети.
Программное обеспечение микроконтроллера разработано в среде AVR Studio и занимает объём памяти около 1,2 кбайт. В программе использованы два прерывания: Reset и прерывание таймера ТО, обработчик которого начинается с метки TIM0. При переходе на метку Reset инициализируются стек,
таймер, порты, а также флаги и переменные, используемые в программе. Таймер ТО генерирует прерывания по переполнению (в регистре TIMSK установлен бит TOIE0). Коэффициент предварительного деления тактовой частоты таймера установлен равным 64 (в регистр TCCR0 записано число 3).
В обработчике прерывания таймера ТО осуществляются процедура опроса состояния контактов кнопок SB1—SB8, работа динамической индикации, запись "секретного" кода в EEPROM и его чтение, перекодировка двоичного числа в код для отображения информации на семиэлементных индикаторах устройства, а также формируется времен-
ной интервал длительностью пять секунд, необходимый для включения исполнительного механизма замка — соленоида или электродвигателя.
Применены резисторы С2-ЗЗН, МЛТ, оксидный конденсатор — К50-35 или импортный, остальные — К10-17, причём С4 следует установить как можно ближе к выводам питания микроконтроллера. Шкальный индикатор АЛС362В можно заменить отдельными светодиодами например АЛ307БМ, объединив их аноды и подключив катоды к резисторам R3—R6. Кнопки можно применить любые малогабаритные с самовозвратом, например DTST-6. Выключатель также может быть любым, в том числе и кнопочным, с переключением повторным нажатием. Сдвоенный индикатор DA56-11GWA заменим двумя одиночными с общим анодом, например АЛС321Б. В этом случае следует соединить все одноимённые выводы элементов, а выводы анодов подключить к коллекторам соответствующих транзисторов.
Большинство деталей устройства смонтированы на макетной печатной плате с применением проводного монтажа Кнопки SB1—SB7 монтируют на внешней стороне двери, при этом соединительные провода должны быть минимально возможной длины. На рис. 4 показан фрагмент платы с цифровыми индикаторами. Устройство находится в режиме "№ 3" (проверка записанного кода), включён третий элемент индикатора HL1, индикатор HG3 индицирует символ "3", а на табло — "секретный" код. Устройство налаживания не требует.
Файлы к статье Кодовый замок на микроконтроллере