Микроконтроллеры и Технологии — Цифровой кодовый замок на Attiny2313
Дата публикации: .
Предлагаемый кодовый замок предназначен для установки на входной двери помещения, куда доступ имеет ограниченный круг людей. Его основной отличительной особенностью является возможность быстрой записи нового кода с помощью клавиатуры (в ранее опубликованных устройствах код, как правило, устанавливают перемычками, размещенными на плате). Этот код может состоять минимум из одной цифры, а максимум — из ста двадцати семи.
Схема кодового замка показана на рис. 1. Основным элементом устройства является микроконтроллер ATtiny2313 (DD1), у которого использованы встроенный RC-генератор и внутренние резисторы. Чтобы открыть замок, необходимо знать код. Для его ввода используется клавиатура, расположенная на внешней стороне двери и состоящая из кнопок SB1— SB 12. Кнопки SB 13 и SB 14 расположены на внутренней стороне двери, первая из них предназначена для ее открывания, а вторая — для закрывания. При использовании электромеханического привода замка двери кнопка SB 14 не нужна. Двухцветный светодиод HL1 индицирует состояние замка: если горит светодиод красного цвета свечения — дверь закрыта, зеленый — открыта. Резистор R3 служит для ограничения тока через светодиод.
Рисунок 1
Для управления исполнительным механизмом — соленоидом YA1 (или электромеханическим приводом) — используется мощный полевой переключательный транзистор VT1. Если код набран правильно, с линии PD2 (вывод 6) микроконтроллера DD1 на затвор полевого транзистора поступит открывающее напряжение, на соленоид YA1 — напряжение питания, и он откроет замок.
Питание устройства осуществляется от сетевого стабилизированного блока питания напряжением 12 В с выходным током, достаточным для срабатывания исполнительного механизма. Напряжение питания микроконтроллера стабилизировано интегральным стабилизатором DA1. Аккумуляторная батарея GB1 используется как резервный источник при отсутствии сетевого напряжения Диоды VD1, VD2 обеспечивают развязку блока питания и аккумуляторной батареи
Чтобы открыть замок, необходимо ввести цифры кода в заданной последовательности. Для индикации нажатия на кнопку (при закрытом замке) светодиод красного цвета свечения гаснет примерно на 0,3 с, при этом светодиод зеленого цвета свечения не горит, пос¬ле чего опять загорается красный светодиод. После ввода последней цифры открывается транзистор VT1 и загорается светодиод зеленого цвета свечения, индицируя, что замок открыт
Чтобы закрыть замок, необходимо нажать на кнопку SB4 «*» или кнопку SB 14 «Закрыть».
Для изменения кода при открытом замке нажимают на кнопку SB12 «#», вводят новый код (минимум одна цифра, максимум — сто двадцать семь), после чего опять нажимают на кнопку SB 12 «#». Если при вводе кода была допущена ошибка, нажимают на кнопку SB4 «*», вводят правильный код и только затем нажимают на кнопку SB12 «#». При записи нового кода индикация нажатия на кнопки осуществляется так. Светодиод зеленого цвета свечения гаснет на 0,5 с, при этом загорается светодиод красного цвета свечения, а затем снова постоянно светит светодиод зеленого цвета.
Рисунок 2
Коды программы, которые находятся в архиве, микроконтроллера для замка с соленоидом приведены в табл. 1, для замка с электромеханическим приводом — в табл. 2. Во время программирования в EEPROM микроконтроллера заносится начальный код, состоящий из цифр 1, 2, 3. Необходимо также записать файл данных —
Отличие работы замка с электромеханическим приводом от замка с соленоидом заключается только во входе в режим записи нового кода и закрытия замка. Замок в этом случае закрывается автоматически через 3 с после открытия, этого времени должно хватить для того, чтобы открыть дверь. Сделано это для того, чтобы не перегревался электродвигатель электромеханического привода. Для записи нового кода при открытом замке необходимо сначала нажать на кнопку SB13 «Открыть» и удерживать ее.
После того как замок закроется и загорится светодиод красного цвета свечения, надо дополнительно нажать на кнопку SB13 «Открыть» и удерживать ее еще примерно 15 с, затем нажать на кнопку SB 12 «#» и при загорании светодиода зеленого цвета свечения ввести новый код, после чего снова нажать на кнопку SB 12 «#» для его записи. Если при вводе была допущена ошибка, то нажимают на копку SB4 «*», вводят правильный код и только тогда нажимают на кнопку SB 12 «#». Будьте внимательны при вводе нового кода!
Фото готового устройства. Автор: Павел Данильченко
Источник: Радио №5, 2008 г. автор Е. Переверзев, г. Кропоткин Краснодарского края.
Архив для статьи «Цифровой кодовый замок» |
|
Описание: | |
Размер файла: 1.29 KB Количество загрузок: 2 905 | Скачать |
Кодовый замок и система охраны с цифровым индикатором (ATtiny2313)
В статье представлено устройство, которое реализует функции электронного кодовогозамка и охранного устройства. Поясняется алгоритм работы устройства в целом, подробно рассматриваются функциональные узлы и программное обеспечение.
В периодической печати, литературе, интернете имеется множество конструкций кодовых замков и охранных устройств самого различного назначения. Представленное устройство совмещает функции кодового замка и охранного устройства. Конструкция устройства состоит из трех функциональных узлов:
- плата кодового замка (далее ПКЗ),
- трех плат охранного устройства (далее ПОУ №1, ПОУ №2, ПОУ №3),
- модуля управления соленоида (далее МУС).
Платы ПОУ №1, №2, №3 — совершенно одинаковые по алгоритму работу, схемотехники, конструкции.
То есть пользователь с одного пульта (в данном случае с платы кодового замка) может управлять кодовым замком и охранным устройством. Закрывая за собой дверь, можно охраняемое помещение сразу поставить под охрану (включить сигнализацию).
Особенностью ПКЗ является то, что к нему можно подключить ПОУ. Принципиальная схема ПКЗ представлена на рис. 1. Принципиальная схема ПОУ представлена на рис. 2. Принципиальная схема МУС представлена на рис. 3. На рисунке 4 представлена схема подключения составных частей к ПКЗ.
Схема кодового замка
Рассмотрим основные, функциональные узлы ПКЗ. Рабочая частота микроконтроллера DD2, задается генератором с внешним резонатором ZQ1 на 10.000 МГц. Порт PD микроконтроллера DD2 управляет динамической индикацией.
Динамическая индикация собрана на транзисторах VT1…VT5, цифровых, семисегментных индикаторах HG1…HG5. Резисторы R3…R10 — токоограничительные для сегментов индикаторов HG1… HG5. Коды для включения вышеуказанных индикаторов при функционировании динамической индикации поступают в порт РВ микроконтроллера DD2.
Для функционирования клавиатуры задействован вывод 8 (PD4) микроконтроллера. Сразу после подачи питания на выводе 1 микроконтроллера DD1 через RC-цепь (резистор R2, конденсатор С3) формируется сигнал системного аппаратного сброса для микроконтроллера DD2. На дисплее ПКЗ индицируется число 00001. Питающее напряжение +5В поступает на устройство с соединителя Х3.
Конденсатор С6 фильтрует пульсации в цепи питания +5 В. Блокировочный конденсаторы С4, С5 стоят по цепи питания регистра DD1 микроконтроллера DD2 соответственно. Регистр DD1 задействован для увеличения количества выводных линий. В ПКЗ имеются 7 независимых каналов: канал №1… №7.
Как уже упоминалось выше для канала №1 нужно ввести эталонный код №1, для канала №2 нужно ввести эталонный код №2 и т. д. Выходной сигнал канала №1 поступает на контакт 1, соединителя. Выходные каналы сигналов сразу после подачи питания имеют уровень лог.1. Интерфейс устройства включает в себя: индикацию (дисплей) из цифровых семисегментных индикаторах HG1…HG5, и клавиатуру -кнопки S1…S8. Кнопки клавиатуры устройства имеют следующее назначение:
- S1…S6 — кнопки для ввода кода доступа. Данные кнопки обозначены цифрами от «1» до «6». Вводимый код индицируется на дисплее устройства;
- S7 ( К) — кнопка выбора каналов №1…№7. Если выбран канал №1 на индикаторе HG5 индицируется цифра «1», если выбран канал №2 на индикаторе HG5 индицируется цифра «2» и т. д.
- S8( 3/Р ) — кнопка выбора режима работы: «запись» или «рабочий режим» для каналов №1…№7. В режиме «запись» на дисплее в четвертом разряде (индикатор HG4) будет индицироваться точка h.
На 5 разрядном дисплее отображается вводимый код и число (разряд HG5), которое определяет активированный канал. Всего в алгоритме работы ПКЗ можно выделить 14 режимов работы. Приведем их.
- Режим №1 — режим ввода рабочего кода №1. В случае совпадении рабочего( вводимого) и эталонного кодов сигнал КАНАЛ №1 (контакт 1, соединитель X1) на 5 с устанавливается уровень лог.0.
- Режим №2…№7- данные режимы поалгоритму работы аналогичны режиму №1. Режим №2 для сигнала КАНАЛ №2, режим №3 для сигнала КАНАЛ №3 и т. д.
- Режим №8 — режим ввода (записи) эталонного кода №1. В данном режиме канала №1 эталонный код записывается в EEPROM микроконтроллера.
- Режим №9 …№14 — данные режимы по алгоритму работы аналогичны режиму №8. Режим №9 для канал №2, режим №10 для канал №3 т. д.
Рис. 1. Принципиальная схема кодового замка на микроконтроллере ATtiny2313.
Алгоритм работы ПКЗ следующий. В рабочем режиме, сразу после подачи питания, на дисплее индицируется число 00001. Микроконтроллер DD1 ждет ввода четырехразрядного кода. Вначале необходимо записать эталонный код для каждого канала.
Кнопкой S8( 3/Р ) выбираем режим «запись».
Вводимый с клавиатуры код для канала №1, микроконтроллер индицирует на дисплее и записывает в ОЗУ. После ввода четырехразрядного кода, необходимо нажать любую кнопку из S1…S6. Код индицируемый на дисплее запишется в EEPROM-память микроконтроллера и будет эталонным для канала №1. После записи на дисплее снова в разрядах HG1…HG4 индицируются нули.
Кнопкой S7 (К) выбираем канал и проделываем аналогичные операции как для канала №2 и т. д.. Для выхода из режима записи нужно нажать кнопку S8, точка h в четвертом разряде (индикатор HG4) — погаснет. Устройство готово к работе. В таблице 1 приведено функциональное назначение каждого канала ПКЗ в устройстве.
Микроконтроллер ждет ввода четырехразрядного кода. Пусть выбран канал №1. Вводимый с клавиатуры четырехразрядный код, микроконтроллер индицирует на дисплее и записывает в ОЗУ.
После ввода пятого разряда (после ввода четвертого разряда нужно нажать любую кнопку из S1… S6), микроконтроллер побайтно сравнивает его с четырехразрядным кодом, записанным в EEPROM- памяти микроконтроллера (будем называть этот код — эталонным). Если в рабочем режиме вводимый код совпал с эталонным кодом, то микроконтроллер на пять секунд подает сигнал на включение канала (устанавливает лог.
О в выходном сигнале канала) и обнуляет дисплей. Через пять секунд микроконтроллер выключает механизм открывания замка (устанавливает лог.
1 на выводе 11 микроконтроллера) и обнуляет на дисплее разряды вводимого кода. Если вводимый код не совпал с эталонным кодом, то микроконтроллер сразу обнуляет дисплей (на дисплее индицируется число 00001) и не изменяет состояние выходного сигнала канала. Совершенно аналогично работают другие каналы для управления ПОУ №1, ПОУ №2, ПОУ №3.
Таблица 1.
№ канала | Сигнал | Функциональное назначение |
Канал №1 | Упр. КЗ | Управление кодовым замком |
Канал №2 | Охрана 1 | Поставить под охрану ПОУ №1 |
Канал №3 | Снять охр 1 | Снять с охраны ПОУ №1 |
Канал №4 | Охрана 2 | Поставить под охрану ПОУ №2 |
Канал №5 | Снять охр 2 | Снять с охраны ПОУ №2 |
Канал №6 | Охрана 3 | Поставить под охрану ПОУ №3 |
Канал №7 | Снять охр 3 | Снять с охраны ПОУ №3 |
Целесообразно, чтобы доступ к кнопке S8 был ограничен.
В программе используются два прерывания: Reset и прерывание таймера ТО, обработчик которого начинается с метки ТІМ0. При переходе на метку Reset инициализируются стек, таймер, порты, а так же флаги и переменные используемые в программе.
В обработчике прерывания таймера ТО осуществляется: процедура опроса кнопок S1…S8, функционирование динамической индикации, перекодировка двоичного числа в код для отображения информации на семисегментнных индикаторах устройства, а так же временной интервал длительностью пять секунд, необходимый для изменения выходных сигналов каналов (установка сигнала уровня логического 0 на выводах соединителя XI) и процедуры записи и чтения набранного кода в EEPROM-память микроконтроллера.
В ОЗУ микроконтроллера с адреса по адрес организован буфер отображения для динамической индикации. По адресу находится число, определяющее номер канала. С адреса по адрес -вводимый код. Эталонный код из EEPROM микроконтроллера переписывается в ОЗУ микроконтроллера по адресам с по адрес .
Флаги, задействованные в программе, находятся в регистрах R19 (flo) и R25 (flo1). На рис. 5 приведен фрагмент программы записи эталонного кода для канала №7.
Схема охранного устройства
Алгоритм работы ПОУ № 1 (принципиальная схема рисунок 2) следующий. Внешними (выносными) элементами по отношению к ПОУ являются семь концевых выключателей (S1…S7), которые позволяют контролировать состояние семи дверей с помощью индикаторов HL2…HL8. Один концевой выключатель контролирует состояние одной двери.
Если дверь закрыта — концевой выключатель разомкнут. Соответствующий индикатор — не горит (погашен).
Рис.2. Принципиальная схема охранного устройства.
Рис. 3. Схема электронного ключа для задвижки (на ток до 15А).
Если дверь открыта — концевой выключатель замкнут. Соответствующий индикатор — периодически мигает. В интерфейс контроля и управления ПОУ входят: тумблер SA1, индикаторы HL1… HL9. Конструктивно, все вышеуказанные элементы целесообразно разместить на отдельной панели управления устройства.
Элементы интерфейса управления ПОУ имеют следующее назначение:
- SA1 — тумблер включения сигнализации. При установке данного тумблера в положение «ВКЛ» — устройство ставится под охрану. Устройство ставится под охрану, через ~ 10 сек. с момента установки тумблера SA1 в положение «ВКЛ» из положения «ВЫКЛ». После установки устройства под охрану, сигнализация срабатывает через ~ 10 сек с момента замыкания любого концевого выключателя S1…S8;
- HL1 — индикатор активации режима охраны. Если устройство находится в режиме «охрана», данный индикатор — горит, если в режиме » контроль состояния дверей» данный индикатор — погашен;
- HL9 — функциональный индикатор микроконтроллера DD1. Данный индикатор периодически мигает, сразу после подачи питания на устройство. Мигающий индикатор HL9 указывает на то, что микроконтроллер DD1 «не завис», а функционирует по заданному алгоритму.
ПОУ построена на микроконтроллере DD1, рабочая частота которого задается генератором с внешним резонатором ZQ1 на 10 МГц. К порту РЗ микроконтроллера DD1 подключены тумблер SA1, пьезоэлектрический излучатель ВА1, индикатор HL1, ключи на транзисторах VT1…VT4. К порту Р1 микроконтроллера DD1 подключены концевые выключатели S1…S7 и индикаторы HL2…HL9.
Питание на данные индикаторы поступает через ключ на транзисторе VT5, который управляется с вывода 19 микроконтроллера DD1. Резисторы R13…R20 — токоограничительные для, индикаторов HL2…HL25. Резистор R10 — токоограничительный для индикатора HL1.
Реле К1, К2 управляются соответственно с выводов 2, 3 DD1.
Спустя 10 сек с момента подачи лог. 0 на вывод 3 микроконтроллера DD1- ПОУ ставится под охрану. Для этого необходимо установить тумблер SA1 в положение «ВКЛ» или установить прямой выход D-триггера DD2( вы вод 5 DD2) в лог. 0. Рассмотрим работу устройства в данном режиме.
Если включится любой из концевых выключателей S1…S7 ( будет открыта любая дверь) то на соответствующем выводе порта Р1 микроконтроллера DD1 будет присутствовать сигнал уровня логического 0. Через ~ 10 сек. с момента замыкания концевого выключателя включится звуковая сигнализация (пьезоэлектрический излучатель ВА1).
При этом на выводе 3 микроконтроллер DD1 установит уровень логического 0 (Включится реле К2). Реле К1 будет периодически включаться и выключаться с периодом ~ 1 сек ( на выводе 2 микроконтроллера DD1 выходной сигнал будет иметь форму меандра).
Сигнализация включится и в том случае если любой из концевых выключателей S1…S7 включится на короткое время (например, открыть и тут же закрыть дверь форточку). Сигнализация выключается установкой тумблера SA1 в положение «ВЫКЛ» или установкой прямого выхода D-триггера DD2 в лог. 1. Доступ к тумблеру SA1 целесообразно ограничить.
Пусть тумблер SA1 установлен в в положение «ВЫКЛ. Тогда при открывании дверей будут только периодически мигать соответствующие индикаторы. При этом, при открывании одной двери, в течении 2 сек. будет работать звуковая сигнализация (пьезоэлектрический излучатель ВА1).
К контактам реле К1, К2 можно подключить различные исполнительные механизмы или их цепи управления (механизм блокировки дверей, ревун и т. д.). Разработанная программа на ассемблере занимает всего-то порядка 0,4 КБайт памяти программ микроконтроллера.
Связка модулей
Рассмотрим теперь алгоритм работы ПКЗ с ПОУ №1 (далее ПОУ). ПОУ подключена к ПКЗ в соответствии с схемой подключения (рисунок 4). Тумблер SA1 ПОУ установлен в положение «ВЫКЛ». Сразу после подачи питания сигнал с RC-цепочки (R9, С1) устанавливает прямой выход D-триггера (выв. 5 DD2) в лог. 1. Сигналы на контактах соединителя XI «охрана 1» и «снять охр. 1» имеют уровень лог. 1. На дисплее ПКЗ индицируется число 0001.
Для постановки ПОУ под охрану необходимо набрать код постановки под охрану ПОУ на клавиатуре ПКЗ. И если код набран верно (совпал с эталонным) на 5 сек сигнал «охрана 1» устанавливается в лог. 0. Этот сигнал устанавливает прямой выход D-триггера DD1 в лог. 0. С этого момента через ~10 сек. ПОУ переходит в режим охраны. При этом на выводе 3 регистра DD2 в режиме охраны постоянно присутствует сигнал уровня лог. 1.
Рис. 4. Схема подключения модулей кодового замка и охранного устройства в систему.
Для снятия с охраны, необходимо на клавиатуре ПКЗ набрать код снятия с охраны ПОУ. И если код набран верно, (совпал с эталонным) на 5 сек сигнал «снять охр. 1» устанавливается в логический 0. Этот сигнал устанавливает прямой выход D-триггера DD2 (выв. 5 DD2) в лог. 1. Микроконтроллер DD1 ПОУ сразу отключает звуковую сигнализацию (если она была включена) и исполнительное устройство подключенное к реле К1. Совершенно аналогично ставится и снимается с охраны ПОУ №2, ПОУ №3.
Разработанная программа на ассемблере для ПКЗ занимает всего порядка 0,7 Кб памяти программ микроконтроллера. Применены резисторы типа С2-ЗЗН подойдут любые другие с такой же мощностью рассеивания и погрешностью 5 %. Конденсаторы С1…С6, типа-К10-17а, С7 -К50-35. Соединитель X1 вилка типа WF-2. Соединитель X1 типа WF-10 (ответная часть — розетка HU-10).
Конденсатор С4 устанавливается между цепью +5V и общим проводником регистра DD1, соответственно С5 устанавливается между цепью +5V и общим проводником микроконтроллера DD1. Индикаторы FIG1…FIG4 типа HDSP-F501 зеленого цвета. Если нет необходимости в визуальном контроле на дисплее набираемого кода, то индикаторы HG1…HG4, транзисторы VT1…VT4 и резисторы R3…R20 вообще можно исключить. На работу устройства это не как не повлияет.
Рис. 5. Фрагмент программы записи эталонного кода для канала №7
Схема МУС для втягивания ригеля (задвижки) замка приведена на рисунке З. Схема построена на базе транзистора 2Т825А2 (максимальный ток коллектора до 15 А, корпус ТО-220) и транзисторной оптопары ЗОТ110Б. ЕІапряжение питания 24В. Конденсатор С1, типа К50-35.
В общем случае, схемное решение, для управления ригеля (задвижки) замка может быть другим и определяется параметрами исполнительных устройств подключенных к МУС.
Представленное устройство и его составные части, не требует никакой настройки и наладки. При правильном монтаже все начинает работать сразу, после подачи на него напряжения питания.
Прошивка и ПО для микроконтроллера: Скачать (6КБ).
Шишкин С. В. РК-2016-04.
Литература:
- С. В. Шишкин. Кодовый замок на базе микроконтроллера ATMEGA8535. Р2010-10.
- С. В. Шишкин. Защита программного обеспечения устройств разработанных на базе микроконтроллеров с EEPROM-памятью. РЛЦ2013-1.
Собери свою радиосхему!
Основной отличительной способностью является возможность быстро и на месте убрать старый код и записать новый, с помощью встроенной клавиатуры. Этот код может состоять минимум из 1 цифры, максимум – из 127. Схема кодового замка представлена ниже:Рисунок печатной платы:
Расположение элементов на ней:
Основным элементов схемы явзяется микроконтроллер ATtiny2313. Для ввода цифр используется клавиатура из кнопок SB1 – SB12, Кнопки SB13 и SB14 расположены на внутренней стороне двери, первая открывает, вторая закрывает дверь. При использовании электромеханического привода кнопка SB14 не нужна. Для записи нового кода сначала нужно ввести старый код и открыть дверь, потом нужно удерживать кнопку SB13 – загорится красный светодиод, потто снова нажимаем SB13 и удерживаем примерно 15 секкунд, затем нужно нажать SB12. rf ктолько загорится зеленый светодиод, можно ввести новый код, подтверждать и сохранять нужно кнопкой SB12.
Полевой транзистор можно заменить на IRF840, устанавливается он на радиаторе. Электромеханический привод можно взять автомобильный, предназначенный для закрывания дверей и багажников.
В архиве приведен код программы для электромеханического замка (Таблица 2), и замка с соленоидом (Таблица 1).
Фьюзы нужно выставлять следующие:
Радио №5 2008
код программы, схему и файл печатной платы. 0.2мб
Свои вопросы можете задавайте ниже.
Простой кодовый замок с одной кнопкой на Attiny13A
Бывает нужно ограничить доступ к чему то и самый простое решение это кодовый замок , так как просто замок требует таскать ключ который можно потерять или как я постоянно вспоминаю куда засунул ключ от оружейного сейфа так как на охоту ездишь не каждый день и как правило собираешься в спешке и вспоминая всех святых ищешь куда засунул ключ от сейфа в прошлый раз! Ставить десять кнопок не сильно хочется да и со временем кнопки затираются и легко можно определить какими кнопками часто пользуются и легко можно подобрать код (если конечно Вам не лень менять код через день) В такой ситуации самый лучший вариант это кодовый замок с одной кнопкой. Правда есть у этого кодового замка и недостатки, это больше требуется времени для ввода кода и нужна внимательность при вводе кода. Во всём остальном только преимущества. Схема устройства довольно простая и доступная для повторения. Единственно что нужно это поставить транзистор на электро замок соответствующий Вашему электро замку. Мой электрозамок потребляет ток в пределах 1 ампера и так как он работает всего 5 секунд то транзистора кт815 вполне хватит без радиатора.
СХЕМА
ФЬЮЗЫ
Фьюзы устанавливаются как на картинке. К заводским установкам нужно лишь снять галочку с CKDIV8 или наоборот поставить ,если Вы используете программу которая показывает фьюзы инверсно. Для проги «Sina Prog» фьюзы выставляются LOW=7A , HIGH=FF
ОПИСАНИЕ РАБОТЫ КОДОВОГО ЗАМКА
Для начала нужно записать код в память (eeprom) . Для этого нажимаем и удерживаем кнопку и включаем питание схемы. Зуммер пикнет 3 раза и сразу начнёт моргать красный светодиод, отсчитывая значения кода. Считая вспышки светодиода отсчитываем нужную Вам цифру и отпускаем кнопку после выбранного Вами количества вспышек. Количество вспышек равно цифре кода.Например мы решили что первая цифра кода будет два. Отсчитываем 2 вспышки светодиода и отпускаем кнопку. Зуммер пикнет один раз показав, что цифра записана в eeprom.Точно так же записываем в eeprom вторую, третью и четвёртую цифру, отсчитывая вспышки красного светодиода. После ввода четвёртой цифры зуммер пикнет три раза показав, что код из четырёх цифр записан в eeprom. После красный светодиод моргнёт один раз показав тем самым, что устройство перешло в режим работы. Можно ввести выбранный Вами код для проверки его. Если Вы допустили ошибку при записи кода в eeprom, то не беда, выключите питание схемы и повторите всё сначала.
ОСНОВНАЯ РАБОТА СХЕМЫ КОДОВОГО ЗАМКА
Нажимаем кнопку ввода кода и удерживаем. Красный светодиод начнёт моргать (довольно быстро). Отсчитываем количество вспышек равное первой цифре кода и отпускаем после последней вспышки кнопку. Должен моргнуть зелёный светодиод один раз (очень быстро) показав что первая цифра принята. Нажимаем снова кнопку и отсчитываем вторую цифру кода по вспышкам красного светодиода. После нужного количества вспышек отпускаем кнопку . зелёный светодиод моргнёт 2 раза показав, что принята вторая цифра кода. Точно также вводим третью и четвёртую цифру кода. После третей введённой цифры кода зелёный светодиод моргнёт три раза, а после четвёртой моргнёт один раз длинно.
- Если код введён верный то откроется электро замок при этом зелёный светодиод будет моргать а зуммер будет пикать. Через 5 секунд замок закроется.
- Если код введён не тот что записан в памяти (eeprom), то красный светодиод моргнёт а зуммер пикнет один раз длительностью около 1 секунды и обнулив все введённые цифры устройство перейдёт в режим ожидания ввода кода.
Код состоит из четырёх цифр каждая может быть равна от 1 до 255. При выборе кода каждой цифры больше 9 сильно увеличивается время на ввод кода. Поэтому если замок стоит у Вас на двери калитки то нет смысла делать длинный код. Но если он стоит на сейфе то для исключения открытия методом подбора стоит поставить код каждой цифры больше 9. Такой код открыть подбором можно будет только если сидеть у этого сейфа месяц! Без перерыва на обед и сон!Потому что если введена хотя бы одна цифра не вписанная в память введённый код обнуляется. Поэтому больше цифра в коде тем трудней его подобрать перебором ,но тем больше Вам потребуется времени для его ввода. Подробнее на видео.
В архиве находится прошивка ,схема, и проект для Протеуса , а также печатная плата для Dip деталей ( плата прямая для фоторезиста , если используете метод ЛУТ то нужно её перевернуть). СКАЧАТЬ АРХИВ
Кодовый замок с энкодером на Attiny2313 — Охрана и контроль доступа — Микроконтроллеры — Каталог статей
Устройство собрано на микроконтроллере Attiny2313 фирмы Atmel, который тактируется от внутреннего генератора частотой 128кГц, система слежения за питанием отключена. Количество шагов отображается на двухразрядном семисегментном индикаторе с общим анодом. В режиме ожидания индикатор не светится, а загорается как только будет повернут энкодер. Энкодер используется любой без кнопки.
При выключении питания запоминается состояние управляющего выхода микроконтроллера, если замок открыть и выключить питание, то при включении питания замок останется в открытом состоянии.
Печатная плата:
Программирование нового кода
Код состоит из трех частей по два разряда, формата ХХ-ХХ-ХХ. Чтобы запрограммировать код, который будет хранится в энергонезависимой памяти, нужно:
1. Повернуть ручку энкодера по часовой стрелке и выставить первую комбинацию кода, нажать на кнопку SB1, индикатор мигнет 1 раз;
2. Повернуть ручку энкодера против часовой стрелки и выставить вторую комбинацию кода, нажать на кнопку SB1, индикатор мигнет 2 раза;
3. Повернуть ручку энкодера по часовой стрелке и выставить третью комбинацию кода, нажать на кнопку SB1, индикатор мигнет 3 раза;
4. Устройство готово к работе с новым кодом.
Фьюзы нужно установить следующие:
SUT1-SUT0 — 01
CKSEL3-CKSEL — 0110
файл прошивки.
печатную плату.
Источник:
Собери свою радиосхему!
Решил поиграться с давно заказанной с китая мембранной клавиатурой 3×4. Есть много видов и разновидностей данной клавиатуры, есть в пластмассовых корпусах, а есть пленочные. У моего вариант 3×4 7 контактов, распиновка клавиатуры 4×4 показана на схеме ниже, схема один к одному. Схема почти идентична с клавиатурой 3×4 за исключением того что отсутствует правый ряд клавиш «A,B,С,D».
Схема подключения клавиатуры 3×4 :
Клавиатура 4×4 подключается аналогично, четвертый ряд «A,B,С,D» подключается к порту PD7 микроконтроллера.
Исходный код программы:
$regfile = «m8def.dat»
$crystal = 1000000‘конфигурация дисплея
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 20 * 4
Cursor Off
Cls‘конфигурация клавиатуры
Config Kbd = Portd , Debounce = 40 , Delay = 100
‘переменные
Dim Key_char As Byte ‘номер нажатой клавиши
Dim Key_str As String * 1 ‘символ нажатой клавиши на клаивиатуре
Dim Result As String * 20 ‘результат нажатий на клавиатуру
Deflcdchar 1 , 32 , 14 , 10 , 31 , 27 , 27 , 14 , 32 ‘Locate 1 , 4
Lcd Chr(1)Result = «»
‘Главный цикл программы
DoKey_char = Getkbd() ‘когда клавиша не нажата функция возвращает переменной значение 16
If Key_char <> 16 Then ‘если переменная не равна 16, значит была нажата кнопка
Key_str = Lookupstr(key_char , Keyboard_data) ‘вытаскиваем из массива символ нажатой клавиши
Result = Result + Key_str
End IfLocate 2 , 3
Lcd Result ‘выводим на дисплей результат нажатийWaitms 100
If Result = «123» Then
Locate 2 , 2
Lcd «UNLOCK»
Wait 1
Goto Pizdec
Else
End If
If Key_str = «5» Then
Locate 2 , 2
Lcd «RETURN»
Wait 1
Goto Pizdec
Else
End IfLoop
End
Keyboard_data:
Data «1» , «4» , «7» , «*» , «2» , «5» , «8» , «0»
Data «3» , «6» , «9» , «#» , «A» , «B» , «C» , «D»Pizdec:
Return
При удержании клавиши символы начинают повторяться, программу можно слегка доработать если добавить в конец первого в примере строки:
Key_char = Getkbd()
If Key_char <> 16 Then
Goto 1
End If
то мы избегаем повторения символов при удержании клавиши. Можем хоть минуту давить на кнопку, а символ будет один.
При включении прибора на верхней строке высвечивается иконка «замок», на нижней строке отображаются вводимые символы.
По умолчанию в исходнике код «123», как только мы введем этот код (как только нажмем третью правильную кнопку) на нижней строке выйдет надпись «UNLOCK».
Если при вводе мы ошиблись цифрой, т.е. ввели не ту цифру — нажимаете кнопку 5 чтобы стереть все и начать ввод кода заного, при нажатии на кнопку 5 программа перезапускается. Статья дана лишь в ознакомительных целях и естественно клавишу 5 (клавишу которая стирает цифры) в идеале нужно перенести например на знак «решетка». Из за нехватки времени не стал переделывать, перепроверил все в железе и решил поделиться с вами.
Думаю принцип работы программы вам понятен, остается программу чуть дописать, указать порты на срабатывание при вводе правильного кода.
Видео работы кодового замка:
файлы проекта с исходным кодом (~15кб.)
Готовая версия кодового замка:
Ниже представлена готовая рабочая схема кодового замка с настроенными портами для подключения электропривода и светодиодов. Электропривод можно подключить автомобильный, так называемый привод замка дверей.
При верном вводе PIN кода привод сработает на 1 секунду, этого времени достаточно для работы механизма замка (открывания двери)? привод подключается через транзистор к порту PORTB.4. Если же при попытке ввести PIN код ошиблись цифрой, нажимаете кнопку «решетка» и можно начать ввод кода заново…
При правильном вводе PIN кода открывается замок, а на дисплее выводится надпись «UNLOCK».
Проект в Proteus и прошивка лежат ниже в архиве, PIN код замка указан в архиве в названии файла прошивки.
…по материалам сайта avrproject.ru
проект Proteus и файл прошивки (~16кб.)
Кодовый замок с энкодером на Attiny — Конкурс на лучшую конструкцию на микроконтроллерах — + Конкурс +
Кодовый замок с энкодером на Attiny2313
Для открытия этого замка нужно повернуть ручку энкодера на определенное количество шагов по часовой стрелке, потом на определенное количество шагов против часовой стрелки и еще раз повернуть по часовой стрелке, реле включится и будет во включенном состоянии пока не будет повернут энкодер по часовой или против часовой стрелки. Устройство собрано на микроконтроллере Attiny2313 фирмы Atmel, который тактируется от внутреннего генератора частотой 128кГц, система слежения за питанием отключена. Количество шагов отображается на двухразрядном семисегментном индикаторе с общим анодом. В режиме ожидания индикатор не светится, а загорается как только будет повернут энкодер. Энкодер используется любой без кнопки.
При выключении питания запоминается состояние управляющего выхода микроконтроллера, если замок открыть и выключить питание, то при включении питания замок останется в открытом состоянии.
Программирование нового кода
Код состоит из трех частей по два разряда, формата ХХ-ХХ-ХХ. Чтобы запрограммировать код, который будет хранится в энергонезависимой памяти, нужно:
1. Повернуть ручку энкодера по часовой стрелке и выставить первую комбинацию кода, нажать на кнопку SB1, индикатор мигнет 1 раз;
2. Повернуть ручку энкодера против часовой стрелки и выставить вторую комбинацию кода, нажать на кнопку SB1, индикатор мигнет 2 раза;
3. Повернуть ручку энкодера по часовой стрелке и выставить третью комбинацию кода, нажать на кнопку SB1, индикатор мигнет 3 раза;
4. Устройство готово к работе с новым кодом.
В связи с простотой схемы печатная плата не разробатывалась, усторойство было собрано и проверено на монтажке.
КОД ПО УМОЛЧАНИЮ; 20 15 25
Удачи!!!
Что бы Скачать файл прошивки жми на эту ссылку