Кодовый замок на микроконтроллере AVR ATTINY2313. Кодовый замок на PIC12F675 Схема собрана на двухсторонней печатной плате

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

Как это работает

Нажмите 4 кнопки в определенной последовательности, и реле замкнет цепь замка примерно на 5 секунд. Но снаала нужно запрограммировать код следующим образом: нажать и держать кнопку CODE, пока не загорится светодиод. Когда светодиод загорится, введите свой код. После введения четвертой цифры код запишется в eeprom, и включить реле будет возможно только используя этот код. Если при вводе кода ошибиться 10 раз, то включится второе реле, отвечающее за сигнал тревоги.


Распознавание кнопок с помощью АЦП

Как видно из схемы, клавиатура собрана из набора кнопок и резисторов. Клавиатура подключена только тремя проводами:, +5V, земля и сигнальный провод, подключенный к выводу 7 контроллера. Резисторы подключены последовательно, и в каждой точке соединения существует свое напряжение. Когда мы нажимаем кнопку, мы подаем определенное напряжение на вывод 7 микроконтроллера. Вывод 7 сконфигурирован как вход и подключен к модулю АЦП контроллера. PIC12F675 имеет 10-битный АЦП и диапазон значений варьируется от 0 до 1023. Так, если мы имеем 12 кнопок, диапазон между ними составляет 85 единиц. Кнопка “0” лежит в диапазоне 0-85, Кнопка “1” 86-170, Кнопка “2” 171-256 … и т.д.

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

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

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

Режимы работы кодового замка на PIC16F628

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

Состояние ввода кода

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

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

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

Меню программирования кодового замка состоит из трех пунктов:

  1. Запись нового секретного кода в память микроконтроллера PIC16F628. При переводе SA2 в режим программирования и включении питания, светодиод будет светить одинарными вспышками. Это свидетельствует, что вы находитесь в первом пункте меню. Для записи нового кода необходимо поочередно ввести каждую цифру, так же как и при обычном вводе. После ввода последней цифры устройство подтвердит успешное завершения серией быстрых вспышек светодиода. Теперь питание можно выключить и перевести SА2 в обычный режим, либо можно перейти ко второму пункту меню программирования кодового замка. Для этого необходимо нажать кнопку SA1 и удерживать ее не менее 3 секунд. После отпускания кнопки, светодиод будет мигать двойными вспышками.
  2. Изменения продолжительности включения реле. Каждое нажатие прибавляет одну секунду. Допусти если нужно чтобы реле было активно в течении 5 секунд, то необходимо нажать кнопку SA1 пять раз с частотой нажатий в одну секунду. После этого устройство подтвердит запись значения серией частых вспышек. Для перехода в 3 пункт меню также нажимаем кнопку на 3 и более секунды и отпускаем. Теперь светодиод будет мигать тройными вспышками.
  3. Режим работы реле кодового замка. При одном нажатии реле будет активироваться на период, установленный во втором пункте меню. При двойном нажатии – реле будет включаться при вводе секретного кода, и выключаться только при повторном вводе секретного кода.

Для программирования микроконтроллера PIC16F628 модно воспользоваться несложным программатором, который описан

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

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

Данный микроконтроллер снабжен 10 битным АЦП с диапазоном преобразования от 0 до 1023. Суть метода в том, что клавиатура представляет из себя, по сути, делитель напряжения на резисторах R1-R12 и при нажатии определенной кнопки клавиатуры на вход 7 микроконтроллера поступает напряжение, величина которого характерна только для данной кнопки.

Работа кодового замка на PIC12F675

Для записи 4 цифр секретного кода сперва необходимо нажать кнопку “CODE” и удерживать ее до того момента когда загорится светодиод LED. Затем поочередно нужно набрать 4 цифры секретного кода. По завершению ввода, данный код будет записан в энергонезависимую память микроконтроллера.

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

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

Ток потребления схемы является низким, потому что микроконтроллер спит большую часть времени, и просыпается только для обработки нажатий клавиш. Контроллер 16F628A уже работает от внутреннего RC генератора, так что никаких внешних кристаллов не требуется. Каждое нажатие на клавишу дублируется звуковым сигналом зуммера BM1. Зуммер используется с внутренним генератором. Состояние прибора высвечивается на LCD индикаторе типа 16x02 с контроллером HD44780. В замке используется стандартная матричная клавиатура с количеством столбцов 3 и количеством строк 4. Схема замка на рисунке ниже.

Для того чтобы открыть замок введите правильный код и используйте "#" в качестве клавиши "ввод". Первоначальный код 623342. Код может быть изменен в любое время после ввода действующего кода. Клавиша "*" используется для изменения кода. Введите фактический код, и нажмите "*". Если код введен правильно, индикатор изменения кода HL1 загорится, после этого введите новый код дважды подтверждая ввод клавишей "#". Так же можно изменить длину кода.

Устройство предназначено для защиты помещений, шкафов и сейфов от несанкционированного вскрытия.

Все установки и код хранятся в энергонезависимой памяти микроконтроллера.

Эта несложная схема вполне по силам многим радиолюбителям.

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

Основой устройства служит микроконтроллер PIC16F628A (DD1 на схеме рис. 1).

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

Кнопка SB1 "Открыть" установлена внутри помещения около двери. Нажатием на нее можно открывать дверь изнутри, не набирая кода. SB2 - кнопка перезапуска программы; кнопки SB2 и SB И включены параллельно. Кнопкам матрицы присвоены обозначения: SB3 - "1", SB4 - "4", SB5 - "7", SB6 -"Открыть". SB7 - "2", SB8 - "5", SB9 -"8 " , SB10 - "О", SB11 - "3", SB12 - "6". SB13 - "9". Тумблером SAI выбирают режим закрывания замка. Код вводят поочередным кратковременным нажатием на цифровые кнопки. В подтверждение нажатия прозвучит короткий тональный сигнал пьезоизлучателя НА1. управляемого транзистором VT2.

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

Если пауза между соседними нажатиями превысит 3 с, то прозвучит сигнал с уменьшающейся частотой. Это означает, что программа начала выполняться заново и код надо вводить сначала. Диод VD1 предназначен для защиты транзистора VT1 от всплеска напряжения самоиндукции обмотки электромагнита Y1. Перед срабатыванием электромагнита прозвучит сиг нал такой же частоты, как и при нажатии цифровых клавиш, но большей длительности, что сигнализирует об открывании двери.

Когда контакты выключателя SA1 разомкнуты, электромагнит закроет замок через определенное время (по умолчанию - 12 с). Это время устанавливают при программировании микроконтроллера. В программе, которую нужно будет загрузить в контроллер, в поле работы с EEPROM, в ячейку с адресом 0x06 (седьмая по счету) необходимо вставить число от 0x01 до OxFF, из расчета 1 единица = 2,5 с. Минимально возможная пауза равна 2,5 с, максимальная - 10 мин.

В случае, если контакты выключателя SA1 замкнуты, т. е. на входе RA4 микроконтроллера DD1 установлен низкий уровень, то закрывание замка происходит после нажатия на кнопку SB 14 либо на SB2. После того как закроется транзистор VT1, электромагнит обесточится и пружина замка вытолкнет ригель обратно - дверь снова окажется запертой.

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

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

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

Одновременно включится светодиод HL1, установленный на панели клавиатуры, который покажет, что опрос клавиатуры (кроме тумблера SA1 и кнопок SB1, SB2, SB14) отключен. Затем следует десятиминутная пауза, во время которой работает тревожное устройство и включен светодиод HL1. В течение этого времени открыть замок можно только изнутри. Если нажать на кнопки SB 14 и SB2 (кнопки перезапуска программы микроконтроллера), то десятиминутный отсчет начнется заново. После паузы контроллер предоставит только одну возможность ввести код, и если он будет неверным, десятиминутная пауза с включением тревожного устройства повторится снова. И так будет продолжаться до введения правильного кода. Каждый раз после верного введения кода счетчик ошибок обнуляется.

Питает устройство источник постоянного тока напряжением 10...15 В. При отключении электроэнергии в сети 220 В замок продолжает работать от аккуму­ляторной батареи. Схема простейшего варианта такого блока питания показана на рис. 2.

Трансформатор Т1 понижает сетевое напряжение 220 В до 15...20 В. Максимальный ток вторичной обмотки трансформатора не должен быть менее 1,5 A. DA1 - регулируемый стабилизатор напряжения. Изменяя сопротивление построечного резистора R2, устанавливают на выходе стабилизатора DA1 такое напряжение, при котором ток зарядки заряженной аккумуляторной батареи GB1 не превышает 100...200 мкА. При этом во время большого потребления тока, когда сработал электромагнит Y1, основную часть тока дает аккумуляторная батарея, что позволяет не перегружать стабилизатор DA1. Диод VD5 предназначен для защиты стабилизатора DA1 в случае отсутствия на его входе напряжения.

Аккумуляторная батарея должна обеспечивать ток 300...600мА (емкость - 7 А-ч). Стабилизатор DA1 следует установить на теплоотвод площадью 30...40 см2.

Клавиатуру можно изготовить из отдельных кнопок. Подойдут, к примеру, DIPTRONICS DTSMW-66N. Но можно применить и готовую клавиатуру от кнопочного телефонного аппарата или калькулятора. Как правило, можно легко подключить такую клавиатуру к устройству, собрав кнопки в подходящую матрицу. Также необходимо вынести на панель клавиатуры светодиод HL1.

Пьезоизлучатель подойдет любой из серии ЗП. Электромагнит Y1 применен от лентопротяжного механизма магнитофона, но подойдет любой другой, подходящий по габаритам и с максимальным током обмотки не более 1,3 А. Если ток, потребляемый электромагнитом, будет больше 1 А, то транзистор VT1 следует установить на теплоотвод площадью 30... 40 см2.

Архив с микропрограммой

Читайте также: