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

Источник: http://cxema21.ru/publ/mikrokontrollery/okhrana_i_kontrol_dostupa/kodovyj_zamok_s_zhk_displeem_na_mikrokontrollere_atmega8/20-1-0-201

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

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

Работа замка на микроконтроллере основана на поочередном вводе трех чисел. Размер каждого числа может быть в диапазоне от 0 до 255. Это в свою очередь повышает уровень секретности кодового замка по сравнению с другими замками, у которых каждое секретное число имеет размер от 0 до 9.

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

1),   на 15 секунд  загорится светодиод HL4 сигнализируя о правильности ввода и сработает реле К1 управляющее исполнительным механизмом замка. По истечении 15 секунд на выводе 4 микроконтроллера появится лог.

0 и замок перейдет в первоначальное состояние ожидания.

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

Этапы управления кодовым замком

  • Внесение в энергонезависимую память микроконтроллера три кодовых числа.

Рассмотрим это на конкретном примере. Допустим, нам нужно задать следующий секретный код: первая цифра 8, вторая цифра 12, третья цифра 9.

  Для этого подаем  питание на устройство, затем нажимаем и удерживаем обе кнопки (SB1 и SB2). После этого отпускаем кнопку SB1, и как только начал мигать светодиод HL1 отпускаем и кнопку SB2. После этих манипуляций светодиод HL1 будет гореть постоянно, а светодиоды HL2 и HL3 не будут гореть.

Это состояние светодиодов говорит о том, что устройство перешло в режим программирования.

Теперь чтобы записать первое число нам нужно нажать и удерживать кнопку SB2, при этом все три светодиода начнут мигать. Нужно отсчитать необходимое количество вспышек (в нашем случае это 8) и отпустить кнопку.

После этого, в подтверждении правильности введенного числа, светодиоды промигают такое же количество раз (8 раз). Все, первое число записано.

Далее загорается светодиод HL2 – напоминая нам, что необходимо записать второе число.

Поступаем точно так же как и с записью первого числа: нажимаем и удерживаем кнопку SB2 и отсчитываем необходимое число вспышек светодиодов (в нашем примере это 12), отпускаем кнопку и проверяем правильность ввода по повторным вспышкам. Затем загорается светодиод HL3 для третьего числа, и повторяем туже процедуру и для третьего числа (число 9).

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

Рассмотрим так же это на примере. До этого мы записали секретный код 8-12-9. Для ввода вначале нажимаем кнопку SB1 и отпускаем ее сразу, после того как загорится светодиод HL1, тем самым переводим наш замок в режим ввода кода.

Свечение светодиода HL1 свидетельствует, что нужно ввести первую цифру. Процедура ввод цифр  аналогична тому, как вводились цифры при программировании.

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

В том случае если все три цифры секретного кода введены верно, сработает реле и на 15 секунд включится светодиод HL4, светодиоды HL1,HL2,HL3 будут светиться в режиме бегущих огней.

Для ввода секретного кода предоставляется три попытки. Если в третий раз код введен неверно, возможность ввода блокируется на 2,5 минуты. По прошествии этого времени замок снова будет готов к вводу кода.

 При программировании микроконтроллера следует выставить следующие фьюзы:

  • CKDIV8 = 0
  • BODLEVEL0 = 0
  • SPMEN = 0

Скачать прошивку (1,3 Mb, скачано: 1 328)

Источник: http://www.joyta.ru/3511-kodovyj-zamok-na-mikrokontrollere/

Инструкция по программированию

Устройство предназначено для установки на дверь. Замок открывается только теми ключами (картами), которые прописаны в памяти микроконтроллера. Записать можно до 126 RFID-ключей (карт)  формата EMmarin 125кГц.

Устройство питается от источника питания с напряжением 12В, в режиме ожидания потребляет около 35мА. Кнопка “OPEN” может быть удалена от устройства на расстояние до 10м. В качестве запирающего устройства может быть подключен электромеханический замок или электромагнит.

Время открытия можно выставить от 1 до 32 секунд.

Принципиальная схема замка

На сдвоенном операционном усилителе LM358 собран компаратор и усилитель ограничитель, формирующий прямоугольный сигнал.

Микроконтроллер ATMEGA8 вырабатывает сигнал частотой 125кГц и подаёт через эмиттерный повторитель на катушку.

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

Все детали запаяны на плату

В качестве динамика применён спикер от компьютера (без встроенного генератора). Катушка состоит из 50 витков на оправке диаметром 50мм, намотанная проводом диаметром 0,1мм.

Фото готового устройства:

Установка Fuse-битов в PonyProg:

Рабочий режим – при подачи 12В на контроллер светодиод мигает 1Гц. Режим программирования – светодиод мигает 2Гц.

При нажатии на кнопку “OPEN” серия коротких звуковых сигналов во временя открытия замка.

Звуковые сигналы

1 короткий сигнал – карта или брелок записан в память контроллера. 2 коротких сигнала – карта или брелок уже записан в памяти контроллера. 5 коротких сигнала – выход из режима программирования. 1 длинный сигнал – память карт-ключей стерта из контроллера.

Непрерывные  короткие сигналы – память карт/ключей заполнена, максимально 10шт. ( требуется отключение питания контроллера).

Запись МАСТЕР-КАРТЫ и времени открывания замка

1 – Выключить питание контроллера. 2 – Нажать кнопку “OPEN” 3 – Удерживая кнопку подключить питание к контроллеру, через 5 сек. контроллер “ПИСКНЕТ”, светодиод будет мигать с частотой 2 Гц. 4 – Отпустить кнопку.

5 – Поднести в зону считывания карту или брелок, раздастся одиночный звуковой сигнал, Мастер-карта или брелок ЗАПИСАН,  при этом запишется время открытия замка 1 сек.

6 – Удерживая карту или брелок в зоне считывания – считаем звуковые сигналы. Кол-во определяет требуемое время отрывания замка, приращение 1 сек., но не более 32 сек. 7 – Отключаем питание контроллера или выдерживаем паузу 30 сек.

Стирание всей памяти карт-брелков

1 – Рабочий режим. 2 – Нажимаем кнопку “OPEN” и удерживая подносим  к считывателю МАСТЕР-карту или брелок и держим, через 5 сек раздастся продолжительный звуковой сигнал – память карт/брелков стёрта.

3 – Отпускаем кнопку отнимаем карту или брелок.

Добавление карт или брелков

1 – Подносим МАСТЕР-карту или брелок к считывателю и удерживаем 5 сек, раздадутся 2 коротких звуковых сигнала, светодиод будет мигать с частотой 2 Гц.

2 – Подносим поочерёдно к считывателю карту/брелок – раздастся короткий звуковой сигнал, карта/брелок ЗАПИСАН, если раздастся 2 коротких звуковых сигналов – код карты/брелка уже записан в памяти микроконтроллера.

3 – Записываем требуемое кол-во карт или брелков, максимально 10.

4 – Отключаем питание контроллера или выдерживаем паузу 30 сек

Видео работы

Исходники, прошивка и плата в формате lay6На сайте автора можно найти плату под SMD компоненты.

Источник: http://vip-cxema.org/index.php/home/mikrokontrollery/176-zamok-s-rfid-emmarin-125kgts-klyuchami

Как сделать электронный кодовый замок

Источник: http://radioskot.ru/publ/signalizacii/kak_sdelat_ehlektronnyj_kodovyj_zamok/17-1-0-676

Как выбрать и установить кодовый замок

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

Электронный кодовый замок пришел на смену классическим механическим. Кодовые замки широко применяются как для защиты дома или квартиры, так и сейфов или кейсов.

Функционирование осуществляется с помощью специальной комбинации цифр.

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

Классификация

По типу монтажа

Согласно данной классификации кодовые замки, впрочем, как и другие, подразделяют на:

  • навесные,
  • врезные,
  • накладные.

Навесной кодовый замок

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

По принципу управления

В данном отношении можно выделить следующие виды кодовых замков:

  • механические,
  • электронные.

Механический кодовый замок в разобранном виде

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

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

Электронный кодовый замок на дверь имеет более совершенную конструкцию, о нем следует рассказать отдельно.

Особенности электронных замков

Электронный кодовый замок на дверь иначе называют замком-невидимкой.

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

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

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

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

Основные узлы электронного замка

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

Общая принципиальная схема электрического замка

Рассмотрим составляющие элементы кодового замка на примере электромагнитного. В него входит следующее:

  1. непосредственно замок (запирающий механизм);
  2. блок управления;
  3. пульт управления,
  4. источник питания.

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

Считыватель магнитного кода (пульт управления) является механизмом, принимающим сигнал с блока управления, который по сути является «мозгом» замка. Именно он принимает решение об открытии или закрытии замка.

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

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

На что обратить внимание при покупке

Критерии выбора

Надежность и бесперебойное функционирование кодового замка зависит от многих факторов, поэтому при его выборе следует обратить внимание на следующее:

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

Интересное дизайнерское решение кодового замка

  1. Поддержка скрытого набора кода.
  2. Наличие многопользовательского режима.
  3. Сертификат качества.

Фирма-изготовитель

В нашей стране наиболее востребованы такие производители, как Samsung, IronLogic, Evernet, Unitouch Hilever, Milre, Бронезавр, Irevo, которые дают гарантию на бесперебойную работу устройств в течение 12 месяцев.

Электронные замки от Samsung подходят для установки на различные типы дверей, в том числе огнеупорные, могут обладать рядом дополнительных функций, например, обнаружения пожара. Стоимость таких устройств – от 11 тыс. рублей.

Замки IronLogic, как правило, обладают многопользовательским режимом, поэтому часто устанавливаются не только в квартирах, но и офисных зданиях, гостиницах, помещениях с большой проходимостью. Цена на IronLogic несколько ниже – от 6 тыс. рублей.

Компания «Evernet» неоднократно являлась призером международных выставок. Замки также оснащаются дополнительными возможностями и стоят от 10 тыс. рублей.

Популярные модели от известных производителей

Unitouch Hilever, Milre – известные производители замков-невидимок, обладающих повышенным уровнем секретности. Такие устройства практически невозможно взломать, благодаря тому, что неизвестно их местоположение. Цены – от 12 тыс.

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

Инструкция по установке

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

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

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

Проверка функционирования замка

Этапы монтажа

Поэтапно процесс выглядит так:

  1. Демонтаж старого замка при его наличии посредством отвинчивания шурупов и извлечения гнезда.
  2. Если замок не помещается в старое отверстие, то с помощью подручного инструмента оно расширяется, при этом надо учитывать объем занимаемый приводом электронного замка.
  3. Размещается привод, параллельно осуществляется разметка на полотне двери мест для крепежей.
  4. Высверливаются отверстия по меткам.
  5. К приводу замка присоединяется двужильный провод для обеспечения питания.
  6. Свободный конец провода выводится с противоположной стороны к дверным петлям.
  7. Недалеко от розетки на стене закрепляется электронный блок управления с помощью прилагаемых в комплекте крепежей.
  8. Соединяется вывод с блока управления с запорным устройством посредством ранее выведенного к петлям двужильного провода.
  9. Устанавливается на внешней стороне двери электронная панель замка.
  10. К электросети подключается электронный блок, при необходимости заряжаются ключи.
  11. Осуществляется проверка работы замка.

Наглядно ознакомиться с установкой кодового замка можно, посмотрев следующее видео.

Коды электронных замков при необходимости могут меняться.

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

Источник: http://furni-info.ru/elektronnyj-kodovyj-zamok.html

Kодовый замок без кнопок

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

Код представлял собой не что иное, как двоичная последовательность, то есть одна кнопка это “0”, другая “1”.

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

У меня возник вопрос, а какие еще варианты кодового замка можно придумать? И тут мне вспомнились сейфы с лимбовым замком, то есть с вращающейся круглой ручкой “крутилкой”, почему бы не сделать электронный вариант такого замка? В качестве устройства ввода можно поставить переменный резистор с цифровой шкалой и считывать с него напряжение, вот так появился еще один вариант кодового замка, по крайней мере, я не встречал подобных конструкций в сети.

В качестве микроконтроллера был выбран PIC12F675-I/P, который содержит в себе встроенный модуль 10-битного аналого-цифрового преобразователя (АЦП). Переменный резистор используем как делитель напряжения, средний вывод цепляем на вход АЦП, и при помощи несложного алгоритма производим считывание цифрового кода.

В устройстве используются два пятизначных кода, первый код (КОД1) – для открытия замка, и второй (КОД2) – необходим для смены первого кода. Эти два кода необходимо обязательно записать при программировании микроконтроллера. В EEPROM память, в ячейки с адресами от 0x00 до 0x04 записывают первый код, а в ячейки с адресами 0x05 – 0x09 записывают второй код.

Цифровая шкала состоит из восьми цифр от 0 до 7. Цифра 0 используется для запуска подпрограммы ввода кода, а также для сброса и возврата замка в исходное состояние, в случае неправильного ввода кода. КОД1 и КОД2 могут состоять только из цифр от 1 до 7.

В исходном состоянии, после подачи питания горит светодиод HL2, красного цвета свечения, индицирующий закрытое состояние замка. Светодиод HL1, зеленого цвета свечения не горит.

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

Такая светозвуковая индикация сигнализирует о запуске подпрограммы ввода кода. Далее следует установить первую цифру кода, через определенный промежуток времени прозвучит короткий звуковой сигнал высокого тона, сопровождающийся вспышкой светодиода HL1, который означает, что цифра введена.

Затем устанавливаем вторую цифру кода, после очередного короткого светозвукового сигнала, подтверждающего ввод цифры, устанавливаем третью цифру кода, и так вводим все 5 цифр кода, таким образом подпрограмма ввода кода автоматически, через равные интервалы времени, производит измерение напряжения на линии 0 порта GPIO. После каждого измерения подается светозвуковая индикация.

Длительность паузы между измерениями, то есть паузу между вводом соседних цифр, можно задать при программировании микроконтроллера. Для этого в EEPROM память, в ячейку с адресом 0x0A (десятая ячейка) необходимо записать число от 1 до 5, которое соответствует длительности паузы в секундах, по умолчанию пауза составляет 2с.

Если введенный код правильный, включится звуковой сигнал высокого тона, зажжется светодиод HL1, погаснет светодиод HL2, на линии 0 порта GPIO появится высокий логический уровень, что приведет к открытию транзистора VT2 и срабатыванию электромагнита Y1.

Через определенный промежуток времени, замок возвращается в исходное состояние, электромагнит Y1 обесточивается, звуковой сигнал прекращается, гаснет светодиод HL1 и зажигается светодиод HL2.

Если введенный код неправильный, прозвучит звуковой сигнал низкого тона длительностью в одну секунду, во время звучания сигнала светодиод HL2 гаснет, после чего устройство возвращается в исходное состояние.

Длительность открытого состояния замка задается при программировании микроконтроллера. В EEPROM память, в ячейку с адресом 0x0B (одиннадцатая ячейка) нужно записать число от 1 до 9, что соответствует длительности паузы в секундах, по умолчанию пауза составляет 3с.

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

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

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

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

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

Для этого устанавливаем цифру 0, после чего прозвучит короткий звуковой сигнал низкого тона, сигнализирующий о сбросе, после чего устройство возвращается в исходное состояние.

Чтобы начать новый набор кода, необходимо установить любую другую цифру, а затем снова установить цифру 0.

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

Вокруг ручки наносим окружность, на которой отмечаем крайние положения ручки. В устройстве используется восемь цифр, следовательно, полное сопротивление переменного резистора делим на восемь, тогда для резистора сопротивлением 2,2 кОм получим 275 Ом. С помощью мультиметра измеряем сопротивление переменного резистора между средним выводом и выводом, подключенным к общему проводу.

Крайнему левому положению ручки (устанавливается вращением ручки против часовой стрелки до упора) должно соответствовать нулевое сопротивление, начиная с этого положения, вращая ручку по часовой стрелке, через каждые 275 Ом на окружности делаем небольшие отметки. Первая отметка (не считая крайнюю) через 280 Ом, вторая через 560 Ом и т.д.

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

В устройстве применены резисторы МЛТ, вместо динамической головки 0,5ГДШ-2 можно использовать другие малогабаритные динамические головки с сопротивлением 8 Ом.

Взамен транзистора КТ829А можно использовать КТ827А, его необходимо установить на теплоотвод. Переменный резистор СП3-4аМ, также подойдет СП-1, но обязательно с линейной характеристикой изменения сопротивления от угла поворота, иначе у нас получится неравномерная шкала. Его сопротивление может быть не менее 1 кОм и не более 10 кОм.

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

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

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

Источник: http://radiolaba.ru/microcotrollers/kodovyiy-zamok-bez-knopok.html

Электронный журнал “Радиоежегодник” – Выпуск 16

Вышел новый выпуск “Радиоежегодник”. Этот сборник я увидел впервые. Понравился. Случаются интересные статьи. Рекомендую.

В сборник вошли 70 полнотекстовых статей по теме “Микроконтроллеры”.

Скачать полную версию журнала “Радиоежегодник” – Выпуск 16. Микроконтроллеры. Обзор за 2004-2012 г.г. (29 Мб)

Содержание:

  1. Модуль приемника спутниковых систем навигации  (ML8088s)
  2. Микроконтроллеры и карты памяти Compact Flash  (PIC18F452)
  3. Микроконтроллеры и CAN-интерфейс  (MCP2510)
  4. Микроконтроллеры и радиосвязь  (RT4-XXX, RR4-XXX)
  5. Реализация интерфейса RS-485 в микроконтроллерах  (PIC18F452)
  6. Микроконтроллеры и сети Ethernet  (ENC28J60)
  7. Современная среда разработки mikroC для программирования микроконтроллеров на языке высокого уровня Си (части 1…3)
  8. Современные микроконтроллеры и речь  (LPC2148)
  9. Сопряжение микроконтроллера AVR с клавиатурой IBM PC/AT  (ATmega8515)
  10. Современные интегральные микросхемы 16-разрядного расширителя ввода-вывода с последовательным интерфейсом  (MCP23017, MCP23S17)
  11. Автономный пульт контроля и управления на основе микроконтроллера AVR  (ATmega8515)
  12. Однокристальный мост SPI–I2C и расширитель портов ввода-вывода  (CP2120)
  13. Микроконтроллерная система безопасности с использованием GSM-канала  (I87C51)
  14. Микроконтроллер концентратора USB и его практическое применение  (AU9254A21)
  15. Микроконтроллер файлового диспетчера передачи USB и его практическое применение  (GL620USB)
  16. Адаптеры SPI на основе микроконтроллера серии AVR  (ATtiny2313)
  17. Адаптер USB – RS-485  (CP2103)
  18. Связь компьютеров через USB  (CP2101)
  19. Управляемый двухканальный стабилизатор тока  (AT90S2313)
  20. Кодовый замок и электронный термометр на микроконтроллерах ATmega8535
  21. Устройства на микроконтроллерах АTiny2313: кодовый замок и таймер
  22. Реле времени на микроконтроллере  (АTiny2313)
  23. Устройство для создания световых эффектов на микроконтроллере  (ATmega8535)
  24. Охранное устройство на микроконтроллере ATmega  (ATmega8535)
  25. Блок управления тепловой пушкой  (МЕТАКОН-523)
  26. Система обогрева на базе измерителя-регулятора ТРМ202 и микроконтроллера Atmel  (АT89C4051)
  27. АЦП на микроконтроллере ATmega8535 с системой бесперебойного питания
  28. Способ защиты программного обеспечения микроконтроллеров  (ATmega8535)
  29. Контроллер для светофора  (АT89C4051)
  30. Блок управления для приводов с шаговыми двигателями на базе микроконтроллера Atmel  (АT89C4051)
  31. Кодовый замок на базе микроконтроллера AT90S2313
  32. Ультразвуковой ингалятор  (AT90S2313)
  33. Электроника для гаража  (ATmega8535)
  34. Магнитотерапевтическая установка на базе микроконтроллера AVR  (АTiny2313)
  35. ШИМ на базе микроконтроллера AT902313-10PI
  36. Блок управления для силовой части FM STEPDRIVE фирмы Siemens на базе микроконтроллера AT89C4051-24PI
  37. Медицинский ультразвуковой детектор воздуха  (AT902313)
  38. Зарядное устройство для автомобильной аккумуляторной батареи  (АT89C4051)
  39. Усовершенствованный протокол обмена по интерфейсу RS-232
  40. Преобразователь интерфейсов USB-SPI с гальванической развязкой (часть 1) (C8051F321, C8051F067)
  41. Преобразователь интерфейсов USB-SPI с гальванической развязкой (часть 2)  (SI8663BC, ADUM7441C, ISO7220C)
  42. Применение ИС цифровых изоляторов ADUM7441 и ADUM3473 для гальванической развязки интерфейса RS-232
  43. Реализация изолированного интерфейса шины I2C с использованием цифровых изоляторов  (ISO7231M)
  44. Программаторы для микроконтроллеров Microchip
  45. USB для начинающих  (PIC18F14K50)
  46. Реализация интерфейса USB в микроконтроллерных устройствах
  47. Антиотладочные приемы для 8-битных микроконтроллеров AVR  (ATmega168)
  48. Цифровые технологии в энергосбережении  (PIC16C84A)
  49. Экономичный температурный мониторинг удаленных объектов  (PIC16C622A)
  50. Многоканальный цифровой регулятор температуры  (PIC16C622A, PIC16F648A, PIC16F628A)
  51. Цифровой регулятор температуры с дистанционным управлением по GSM-каналу  (PIC16C622A)
  52. Охранно-коммуникационный контроллер с использованием GSM-модема  (MSP430F149)
  53. Микропроцессорный беспроводной измеритель расхода электроэнергии  (PIC16F676, PIC12F629)
  54. Микроконтроллеры AVR в устройстве защиты аппаратуры от аномального напряжения сети 220 В  (АТmega8)
  55. Простой цифровой термометр с точностью 0,4°С  (PIC16F872)
  56. Система сбора информации  (PIC16F84A)
  57. Многоканальный счетчик-регистратор  (ATmega8535)
  58. Микропроцессорный коммутатор аудиосигналов  (PIC16F84)
  59. Микропроцессорное зарядное устройство  (PIC16F84)
  60. Применение MMC-карт в микроконтроллерных системах  (PIC16F877)
  61. Прибор для проверки параметров аккумуляторов  (PIC16F675)
  62. «Первый шаг» шагового двигателя  (PIC16F84)
  63. Программа-симулятор PIC Simulator IDE
  64. Комплекс телемеханического управления и сбора данных  (PIC16F84)
  65. Контроллер управления насосами  (PIC16F874)
  66. Терморегулятор с гистерезисом  (PIC16F673)
  67. Таймер на семь выходов  (PIC16F628)
  68. Устройство защиты трехфазных двигателей  (PIC16F676)
  69. Охрана подворья на 8 объектов  (PIC16F84)

Скачать полную версию журнала “Радиоежегодник” – Выпуск 16. Микроконтроллеры. Обзор за 2004-2012 г.г. (29 Мб)

Brushless Motors
ESP8266
STM32
Raspberry Pi

Источник: http://www.avislab.com/blog/ejegodnik16/

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

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

Основа замка микроконтроллер PIC16F628А, после подачи питания программа микроконтроллера настраивает порты а так же отключает  источник образцового напряжения,  модуль ШИ захвата сравнения, таймеры, компараторы и аппаратный USART – эти модули не нужны для работы замка. Затем начинается опрос клавиатуры, которая состоит из двух частей. Первая SB3-SB14 – находятся снаружи помещения, SB1 SB2 и выключатель SA1 – расположены внутри помещения. Кнопки SB3-SB13 первой части клавиатуры объединены в матрицу.

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

Кнопка SB1 – ОТКРЫТЬ установлена внутри помещения около двери. Нажатием на нее можно открыть дверь изнутри, не набирая кода. SB2 – кнопка перезапуска программы, SB2 и SB14 включены параллельно.

Кнопкам матрицы присвоены обозначения SB3 – 1, SB4 -4, SB5-7, SB6 – ОТКРЫТЬ, SB7- 2, SB8 – 5 , SB9 – 8 , SB10- 0 , SB11 – 3, SB12 – 6, SB13 – 9. Тумблером SA1 выбирают режим закрывания замка. Код вводят поочередным нажатием на цифровые кнопки.

В подтверждение нажатия звучит звуковой сигнал (HA1 управляемый VT2).

Перед открытием двери вводят четырехзначный код с паузами не более 3 с, и после до 3с нажать SB6, через 2 с на выходе RA0 DD1 установится высокий уровень, откроется VT1-  сработает электромагнит Y1, который приводит в движение ригель замка.

Когда контакты SA1 разомкнуты электромагнит закроет замок через определенное время( по умолчанию 12с). Это время устанавливается при программировании микроконтроллера.

( ячейка памяти  с адресом 0*06 – (седьмая по счету) изменяем от 0*01 до 0*FF – из расчета 1 ед= 2,5с , при этом максимальное значение FF=10мин.

В случае если контакты SA1 замкнуты то закрывание происходит после нажатия на SB14 или SB2.

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

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

Устройство снабжено системой блокировки. Каждый раз при введении неверной комбинации, замок воспроизведет 2 сигнала с частотой 1000Гц и один с частотой звука 500Гц. После трех ошибок подряд микроконтроллер установит на выходе RA2 высокий уровень, при этом закроется VT3, который включит тревожное устройство.  (этим устройством может быть сирена или узел дозвона по телефону)

Одновременно включится светодиод HL1 установленный на панели клавиатуры, который покажет что опрос клавиатуры(кроме SA1 SB1 SB2 SB14) отключен.

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

Питается устройство от источника постоянного тока напряжением 10…15В, при отключении от сети устройство продолжает работать от аккумулятора.

Т1 рассчитан на напряжение вторичной обмотки 15…20В и ток 1,5А.

Схема источника питания показана на рис 2.

Аккумулятор – 300…600мА ( можно больше) – 7А.Ч.

Электромагнит Y1 применен от лентопротяжного механизма магнитофона, но подойдет и любой другой с максимальным током обмотки не более 1,3А. Если ток потребления будет больше то необходимо VT1  установить на теплоотвод 30…50см².

Программируют микроконтроллер с помощью программы PONYPROG.

Коды программы микроконтроллера размещены по адресу –ftp://ftp.radio.ru/pub/2007/11/zamcod.zip

Литература – Радио 11-2007

Источник: http://rcl-radio.ru/?p=4167

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}
");let k=document.querySelector(".flat_pm_modal[data-id-modal=\""+a.ID+"\"]");if(-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(k,d):jQuery(k).html(b+d),"px"==a.how.popup.px_s)e.bind(h,()=>{e.scrollTop()>a.how.popup.after&&(e.unbind(h),f.unbind(i),j())}),void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{e.unbind(h),f.unbind(i),j()});else{let b=setTimeout(()=>{f.unbind(i),j()},1e3*a.how.popup.after);void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{clearTimeout(b),f.unbind(i),j()})}f.on("click",".flat_pm_modal .flat_pm_crs",()=>{jQuery.arcticmodal("close")})}if(void 0!==a.how.outgoing){let b,c="0"==a.how.outgoing.indent?"":" style=\"bottom:"+a.how.outgoing.indent+"px\"",e="true"==a.how.outgoing.cross?"":"",f=jQuery(window),g="scroll.out"+a.ID,h=void 0===flatPM_getCookie("flat_out_"+a.ID+"_mb")||"false"!=flatPM_getCookie("flat_out_"+a.ID+"_mb"),i=document.createElement("div"),j=jQuery("body"),k=()=>{void 0!==a.how.outgoing.cookie&&"false"==a.how.outgoing.cookie&&h&&(jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show"),j.on("click",".flat_pm_out[data-id-out=\""+a.ID+"\"] .flat_pm_crs",function(){flatPM_setCookie("flat_out_"+a.ID+"_mb",!1)})),(void 0===a.how.outgoing.cookie||"false"!=a.how.outgoing.cookie)&&jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show")};switch(a.how.outgoing.whence){case"1":b="top";break;case"2":b="bottom";break;case"3":b="left";break;case"4":b="right";}jQuery("body > *").eq(0).before("
"+e+"
");let m=document.querySelector(".flat_pm_out[data-id-out=\""+a.ID+"\"]");-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(m,d):jQuery(m).html(e+d),"px"==a.how.outgoing.px_s?f.bind(g,()=>{f.scrollTop()>a.how.outgoing.after&&(f.unbind(g),k())}):setTimeout(()=>{k()},1e3*a.how.outgoing.after),j.on("click",".flat_pm_out .flat_pm_crs",function(){jQuery(this).parent().removeClass("show").addClass("closed")})}countMode&&(flat_count["block_"+a.ID]={},flat_count["block_"+a.ID].count=1,flat_count["block_"+a.ID].click=0,flat_count["block_"+a.ID].id=a.ID)}catch(a){console.warn(a)}}function flatPM_start(){let a=flat_pm_arr.length;if(0==a)return flat_pm_arr=[],void jQuery(".flat_pm_start, .flat_pm_end").remove();flat_body=flat_body||jQuery("body"),!flat_counter&&countMode&&(flat_counter=!0,flat_body.on("click","[data-flat-id]",function(){let a=jQuery(this),b=a.attr("data-flat-id");flat_count["block_"+b].click++}),flat_body.on("mouseenter","[data-flat-id] iframe",function(){let a=jQuery(this),b=a.closest("[data-flat-id]").attr("data-flat-id");flat_iframe=b}).on("mouseleave","[data-flat-id] iframe",function(){flat_iframe=-1}),jQuery(window).on("beforeunload",()=>{jQuery.isEmptyObject(flat_count)||jQuery.ajax({async:!1,type:"POST",url:ajaxUrlFlatPM,dataType:"json",data:{action:"flat_pm_ajax",data_me:{method:"flat_pm_block_counter",arr:flat_count}}})}).on("blur",()=>{-1!=flat_iframe&&flat_count["block_"+flat_iframe].click++})),flat_userVars.init();for(let b=0;bflat_userVars.textlen||void 0!==a.chapter_sub&&a.chapter_subflat_userVars.titlelen||void 0!==a.title_sub&&a.title_subc&&cc&&c>d&&(b=flatPM_addDays(b,-1)),b>e||cd||c-1!=flat_userVars.referer.indexOf(a))||void 0!==a.referer.referer_disabled&&-1!=a.referer.referer_disabled.findIndex(a=>-1!=flat_userVars.referer.indexOf(a)))&&(c=!0),c||void 0===a.browser||(void 0===a.browser.browser_enabled||-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser))&&(void 0===a.browser.browser_disabled||-1==a.browser.browser_disabled.indexOf(flat_userVars.browser)))){if(c&&void 0!==a.browser&&void 0!==a.browser.browser_enabled&&-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser)&&(c=!1),!c&&(void 0!==a.geo||void 0!==a.role)&&(""==flat_userVars.ccode||""==flat_userVars.country||""==flat_userVars.city||""==flat_userVars.role)){flat_pm_then.push(a),flatPM_setWrap(a),flat_body.hasClass("flat_pm_block_geo_role")||(flat_body.addClass("flat_pm_block_geo_role"),flatPM_ajax("flat_pm_block_geo_role")),c=!0}c||(flatPM_setWrap(a),flatPM_next(a))}}}let b=jQuery(".flatPM_sticky");b.each(function(){let a=jQuery(this),b=a.data("height")||350,c=a.data("top");a.wrap("
");let d=a.parent()[0];flatPM_sticky(this,d,c)}),debugMode||countMode||jQuery("[data-flat-id]:not([data-id-out]):not([data-id-modal])").contents().unwrap(),flat_pm_arr=[],jQuery(".flat_pm_start, .flat_pm_end").remove()}

Данное устройство способно управлять различным стационарным оборудованием при помощи кода, который можно изменять напрямую с клавиатуры. В последствии он записывается в энергонезависимую 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 соответствует установленная “галочка”, т.е. данный бит программируется

прошивки (разные варианты).

проект в протеусе.

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

Попытки вытащить “огрызок” ключа, не увенчались успехом. Решил не покупать новый замок, а переделать старый. К тому же пользуются помещением три соседа. В поисках по интернету простого кодового замка, то и дело, наталкивался на схемы основанные на микроконтроллерах или на нескольких микросхемах. Мне надо было решить проблему просто и быстро.

Решил испытать схему на основе счетчика Джонсона. То, что находил в сети, не было пригодно для повторения. Схемы были “сырыми”, нерабочими и не имели временной задержки на удержание привода замка.   Эта схема существует в разных вариациях, и на разных счетчиках (К561ИЕ8, К561ИЕ9, К176ИЕ8, CD4022 и тому подобные).

Я доработал схему на основе CD4017 (десятичном счетчике делителе с 10 дешифрированными выходами QO…Q9). Аналогом микросхемы CD4017 (счетчик Джонсона) является К561ИЕ8, К176ИЕ8. У себя нашел микросхему с обозначением EL4017AE, которую и применил в данном устройстве.

При повторении девайса, не поленитесь, определите маркировку – они отличаются по характеристикам (рабочее напряжение). Все необходимые файлы проекта – скачайте тут.

   Итак, работа схемы электронного кодового замка очень проста. При вводе правильного четырёхзначного последовательного кода на выходе микросхемы (Q4) появляется логическая единица, которая приводит к открыванию замка.

При наборе неверной цифры (кнопки S5-S10), не являющаяся частью кода, схема переходит в исходное состояние, то есть обнуляется через 15 вывод микросхемы (RESET).

При нажатии S1 единичное состояние на третьем выводе Q0 микросхемы поступает на вход полевого транзистора VT1 открываясь он поддает напряжение на вывод 14 (CLOCK) который переключает единичное состояние на второй вывод Q1, потом при последовательном нажатии кнопок S2, S3, S4, сигнал переходит на Q2, Q3, и в конечном итоге при вводе правильного кода с выхода Q4 сигнал открывает транзистор VT2 на короткое время, определяемое емкостью конденсатора С1, включая реле К1 который своими контактами подает напряжение на исполнительное устройство (электрозамок, защелка, или автомобильный “активатор” (актуатор)).

   Есть одно но, код не может состоять из одной и той же цифры. Например: 2244, значения должны быть разными, как: 0294 и т. д. Так или иначе, возможных вариантов кода очень много, примерно один десяток тысяч, что вполне хватит для применения данного кодового замка в быту.

О деталях кодового замка

   Все радиодетали дешевы и могут быть заменены на другие аналоги. Например: VT2 можно заменить на такой же npn транзистор: 2N2222, BD679, КТ815, КТ603. Для шунтирования реле лучше применить диод Шоттки.

VD7 можно и не ставить, хотя лучше чтобы он был во избежание переполюсовки (падение напряжения на нем не критична, так как схема работает и при 9В).

Реле любое, с меньшим током срабатывания, на 12В, с контактами рассчитанные на ток привода замка.

Теперь о конструкции замка

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

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

Все зависит от того, какой замок применяется для переделки. Можно ставить готовую электрозащелку фирмы FASS LOCK Itemno:2369 (8-12V,12W).

В таком случае меняется емкость конденсатора С1, так чтобы получить временную задержку таймера в 0,5-1с.

   В своем случае, закрепил металлическую полоску на пластмассовую ручку замка, прикрепив ее напрямую саморезами. От нее к приводу, одевается спица (идет в комплекте с активатором), и далее сам электропривод крепится также саморезами к основанию двери. Плата с реле устанавливается на дверь и подводится проводка от кнопочной панели и питания. В качестве корпуса, я применил пластиковую крышку из под кофе, просверлив два отверстия для крепления.

   Кнопочная панель для набора кода изготовлена из остатка алюминиевого профиля П-образной формы, для мебельных фасадов, покупается в любом магазине мебельной фурнитуры. Режется профиль исходя из количества кнопок (10шт.). После этого, нужно просверлить отверстия для кнопок, по диаметру немного больше чем диаметр кнопки, так чтобы кнопка с одетым на ней кембриком (трубкой) проходила в отверстие. Таким образом она будет центрирована, и как следствие свободно двигаться при нажатии, без заеданий. Это делается для того, чтобы при заливке кнопок клеем не было смешения, но об этом чуть по позже. 

Заливка кнопок

   Настало время закрепить кнопки на свое место в заранее просверленных отверстиях. Вставляем кембрик в кнопки и ставим их на свое место, как это видно на фото. После, нужно скрепить их каплями клея или термоклея.

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

Эпоксидка, очень текучая, и она просочилась в кнопки и склеила их. Вот так. Пришлось делать все по новому и на этот раз, заливал панель термоклеем.

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

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

   Теперь сверлим два отверстия под шурупы для крепления панели. Также, одно или два отверстия под светодиоды (d=3mm). Один из них (зеленого свечения) справа для индикации открытия замка. Другой не задействовал, его можно подключить к питанию на постоянное свечение или через дополнительную кнопку в целях подсветки клавиатуры при ее нажатии.

Соответственно светодиод должен быть белого свечения (ультра яркий), закрепив его так чтобы световой поток был направлен на кнопки. Можно разрезать еще один кусочек профиля, и закрепить его на кнопочную панель сверху, или вообще применить готовую клавиатуру от калькулятора или от других устройств.

А если изготовить лицевую панель из плексигласа, тогда будет вам решение для подсветки всей клавиатуры!

   И последние, цифры можно нанести готовые, или нарисовать их самому при помощи фломастера, а после покрыть алюминиевый профиль простым скотчем. Это делается сразу же после сверления отверстий под кнопки. Проводов конечно много, относительно устройств на микроконтроллерах, но не все же имеют возможность изготовить подобные девайсы. Суть этого замка в том, что его может собрать даже человек не имеющий особых навыков в радиоэлектронике. Купил детали, собрал на выходных, навесил и подключил. Все. В никаких наладках, это схема не нуждается. И еще, код можно менять в любой момент. Все провода от клавиатуры, подключаются внутри корпуса кодового замка. Не забываем каждый провод промаркировать. Я использовал самоклейки для ценников.

   Хочу заметить, что за прошедшее время, на кнопках нет явных следов истирания! Скорее всего, за счет пластмассы черного цвета. Используются они ежедневно. Но, протирать и менять код, время от время, не мешает.

Блок питания устройства

   Питание устройства осуществляется, за счет бесперебойного блока, фирмы Dantom. Он имеет встроенный гелиевый аккумулятор на 12В/7А.

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

Или изготовьте блок по меньше, если у вас всего одна дверь с кодовым замком. Скажем на: L7812CV, LM317, КР142ЕН8Б. Так же, систему можно запитать от импульсных блоков питания.

Схема принципиальная БП РИП

Печатная плата БП РИП

   В предложенной схеме резервного источника питания (РИП), применен влагозащитный трансформатор, но можно использовать и любой другой на 20-40 Ватт, с выходным напряжением в 15-18 Вольт. Если под нагрузкой один лишь автомобильный актуатор, то трансформатор подойдет и менее мощный. Для нескольких электрозамков, электролитический конденсатор С1 должен быть с большей емкостью, чем та что указана на схеме – для большего запаса энергии при срабатывании и соответственно, меньшего падения напряжения на нагрузке. Конденсатор С2 – 0,1-0,33mF, С3 – 0,1-0,15mF. Радиатор для IC1 – побольше, примерно на 100-150см2, так как в корпусе с аккумулятором, лишний нагрев не нужен! Выходной ток нагрузки для L7815CV составляет 1,5А. Тем более если используется пластмассовый бокс в качестве корпуса, незабываем про вентиляционные отверстия. Диод D8 и предохранитель FS2, служат защитой от короткого замыкания. 

   В охранных РИП-ах стоит кнопка (tamper) против несанкционированного взлома прибора – нам она не понадобится. На плате, для подключения проводов лучше воспользоваться пайкой вместо клемм, как наиболее надежном способом крепления. Также, уместно подстраховаться и вывести запасную проводку питания вне помещения, на непредвиденный случай (в жизни разное бывает).

Видео работы самодельного замка