Кодовый замок на микроконтроллере avr atmega8. Электронный кодовый замок на микроконтроллере ATmega8: схема, описание и программирование

Как работает электронный кодовый замок на ATmega8. Какие компоненты нужны для его сборки. Как запрограммировать микроконтроллер и настроить биты защиты. Как использовать и модифицировать устройство.

Принцип работы электронного кодового замка на ATmega8

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

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

Ключевые особенности данной схемы:

  • Использование недорогого и распространенного микроконтроллера ATmega8
  • Матричная клавиатура 4×4 для ввода кода
  • ЖК-дисплей для отображения информации
  • Звуковая и световая индикация
  • Возможность смены кода пользователем
  • Защита от подбора кода

Необходимые компоненты для сборки кодового замка

Для сборки электронного кодового замка на ATmega8 потребуются следующие основные компоненты:


  • Микроконтроллер ATmega8
  • Матричная клавиатура 4×4
  • ЖК-дисплей 16×2 символов
  • Реле для управления замком
  • Пьезоизлучатель для звуковой индикации
  • Светодиоды для визуальной индикации
  • Стабилизатор напряжения 7805
  • Резисторы, конденсаторы, диоды
  • Печатная плата

Полный перечень компонентов с номиналами приведен в документации к проекту. Большинство деталей широко доступны и недороги.

Схема подключения компонентов кодового замка

Основные соединения в схеме электронного замка:

  • Клавиатура подключается к портам микроконтроллера через матрицу
  • ЖК-дисплей соединяется по 4-битному интерфейсу
  • Реле управляется через транзистор
  • Пьезоизлучатель и светодиоды подключены к портам через резисторы
  • Питание 5В подается от стабилизатора напряжения

Подробная принципиальная схема приведена в документации к проекту. При сборке необходимо внимательно проверить все соединения во избежание ошибок.

Программирование микроконтроллера ATmega8

Для программирования микроконтроллера ATmega8 выполните следующие шаги:


  1. Подключите программатор (например, USBasp) к компьютеру
  2. Соедините программатор с микроконтроллером
  3. Запустите программу AVRDUDESS
  4. Выберите тип микроконтроллера ATmega8
  5. Укажите hex-файл с прошивкой
  6. Нажмите кнопку «Program»

После успешной записи прошивки необходимо настроить биты конфигурации (фьюзы) микроконтроллера для корректной работы. Рекомендуемые настройки фьюзов:

  • CKSEL = 0100 (внешний кварцевый резонатор)
  • SUT = 10 (медленный старт)
  • BODEN = 1 (отключен детектор падения питания)
  • BODLEVEL = 1 (включено при 2.7В)

Настройка битов защиты микроконтроллера

Для защиты прошивки от несанкционированного считывания рекомендуется установить биты защиты (локбиты) микроконтроллера ATmega8:

  • LB1 = 0, LB2 = 0 — запрет чтения и записи flash-памяти
  • BLB01 = 0, BLB02 = 0 — запрет чтения области загрузчика

Установка битов защиты выполняется с помощью программатора после записи основной прошивки. Будьте внимательны — неправильная установка локбитов может заблокировать дальнейшее программирование микроконтроллера.


Использование и модификация электронного замка

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

  • Ввод кода с клавиатуры для открытия замка
  • Отображение статуса на ЖК-дисплее
  • Звуковая и световая индикация
  • Смена мастер-кода пользователем
  • Временная блокировка при неверных попытках

Возможные модификации схемы:

  • Добавление резервного питания
  • Интеграция с системой «умный дом»
  • Использование RFID-считывателя вместо клавиатуры
  • Подключение GSM-модуля для удаленного управления

При внесении изменений в схему или прошивку необходимо тщательно протестировать устройство на надежность и безопасность.

Преимущества и недостатки электронного кодового замка

Основные преимущества данной конструкции электронного замка:

  • Низкая стоимость компонентов
  • Простота сборки и программирования
  • Возможность модификации под конкретные задачи
  • Высокая надежность при правильной сборке
  • Защита от подбора кода

Недостатки, которые следует учитывать:

  • Необходимость внешнего питания
  • Уязвимость к электромагнитным помехам
  • Ограниченная защита от взлома корпуса
  • Зависимость от исправности электроники

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



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

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

admin

Categories Безопасность

Данный кодовый замок на микроконтроллере собран на достаточно простом микроконтроллере 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 минуты. По прошествии этого времени замок снова будет готов к вводу кода.

Инвертор 12 В/ 220 В

Инвертор с чистой синусоидой, может обеспечивать питание переменно…

Подробнее

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

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

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

Тестер транзисторов / ESR-метр / генератор

Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…

Подробнее




Categories Безопасность Tags Attiny13, Замок

Отправить сообщение об ошибке.

Электронный кодовый замок на ATmega8 « схемопедия


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

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

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

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

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

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

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

02   4. 7 кОм резистор R2, R4, R6

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

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

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

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

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

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

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

10   PCB реле RL1

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

12   DC гнездо X1

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

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

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

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

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

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

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

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

CodeLock AVR

CodeLock AVR Электронный кодовый замок реализован на микроконтроллере AVR AT89C2051 или AT90S2313 или ATtiny2313 или ATtiny45. Программа в шестнадцатеричном коде имеет длину 2 КБ. Один код пользователя (версия 1) состоит из 1–8 цифр. Один код пользователя (версия 2.1, 2.2, 2.3) состоит из 1–4 цифр. Если вы покупаете чип (версия 2.1, 2.2, 2.3), то вы можете ввести 1 или 8 кодов пользователей, состоящих из 1–9 цифр.
Если код введен в правильной последовательности, то через 1 секунду реле и электрозащелка (в двери) включаются на 1 секунду и снова выключаются. Код пользователя можно изменить с помощью матричной клавиатуры 3×4. Клавиатуру для CodeLock можно купить в местном магазине электроники.
HEX-файлы, оканчивающиеся на -D, являются демонстрационными файлами. В демонстрационном файле разрешено активировать реле до 50 раз.
Начальный код пользователя (1234) устанавливается перемычкой. Перемычка должна быть установлена ​​перед подключением напряжения (12 В). Перемычку необходимо снять после 2 звуковых сигналов (через 5-15 секунд).
Для изображений ЖК-дисплея (1 версия пользовательского кода) щелкните здесь.
Для просмотра изображений ЖК-дисплея (версия с 8 кодами пользователя) щелкните здесь. ЖК-дисплей
– опция! CodeLock AVR DIY, Электронный кодовый замок CodeLock AVR, DIY

 


Сигнализация: Каждая нажатая клавиша немедленно подтверждается одним коротким звуковым сигналом. После ввода правильного кода пользователя следуют два коротких звуковых сигнала. При вводе неправильного кода пользователя раздается один длинный звуковой сигнал. Клавиатура блокируется на 20 секунд за каждое неправильное действие. Код пользователя сохраняется даже в случае сбоя питания.
Вместо бипера можно использовать светодиод. Посмотрите на электрическую схему кодового замка.
Третий ряд клавиатуры (цифры 7, 8 и 9)) можно отключить. Таким образом, вы получаете матричную клавиатуру 3×3.
Если также отключить дополнительный ряд (второй) клавиатуры, то получится матричная клавиатура 3×2.
Таким образом, вы можете использовать только: 1, 2, 3, *, 0 и # клавиши.
Это версия CodeLock AVR LT. (1 код пользователя — от 1 до 8 цифр — ЖК-дисплей является опцией)

 

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

Вер. 1:
Для загрузки проекта электронного замка CodeLock AVR LT (версия 1) нажмите здесь.
Запрограммировано ATtiny2313 (1 код пользователя — от 1 до 12 цифр — ЖК-дисплей включен) = 6 евро.
PCB
Программа (1 код-8 цифр) codelcdtinyLT.hex для ATtiny2313 => здесь.
Программа (1 код-8 цифр) codelcdLT.hex для AT90S2313 => здесь.

Вер. 2.1: (CodeLockAVR — LCD)
Для загрузки проекта электронного замка CodeLock AVR (версия 2.1, 2.2, 2.3) нажмите здесь .
Запрограммированный ATtiny2313 (1 код пользователя — от 1 до 12 цифр — ЖК-дисплей включен) = 12 евро.
PCB
PCB2  PCB2Top  PCB3  PCB3Top
Программа (1 код-8 цифр) codelcdtiny-D.hex для ATtiny2313 =>
здесь .
Программа (1 код-4 цифры) codelcdtiny.hex для ATtiny2313 => здесь .
Программа (1 код-8 цифр) codelcd-D.hex для AT90S2313 => здесь .
Программа (1 код-4 цифры) codelcd.hex для AT90S2313 => здесь .

Вер. 2.2: (CodeLockAVR — LCD — R)
PCB

Программа (1 код-8 цифр) codelcdtinyR-D. hex для ATtiny2313 => здесь .
Программа (1 код-4 цифры) codelcdtinyR.hex для ATtiny2313  => здесь .
Программа (1 код-8 цифр) codelcdR-D.hex для AT90S2313 => здесь .
Программа (1 код-4 цифры) codelcdR.hex для AT90S2313 => здесь .

Вер. 2.3: (CodeLockAVR — R)
PCB
Программа (8 кодов-8 цифр) codetiny45R8-D.hex для ATtiny45 => здесь .

Программа (1 код-4 цифры) codetiny45R.hex для ATtiny45  => здесь .
После записи шестнадцатеричного кода установите биты FUSE.

Вер. 2.4: (CodeLockAVR — LCD — M)

PCB
Программа (1 код-8 цифр) codelcdtinyM-D. hex для ATtiny2313 => здесь.

Вер. 3: (CodeLockAVR — LCD — ADC)
Для CodeLock AVR (версия 3) загрузка проекта электронного замка нажмите здесь .
PCB PCBTop
Код программы cdadc.hex для ATtiny26 =>
здесь .
Код программы cdadc-D.hex для ATtiny26 => здесь .
Код программы cdadc1.hex для ATtiny261 => здесь .
Код программы cdadc1-D.hex для ATtiny261 => здесь .



Прайс-лист для CodeLock AVR (Все версии):  
Программируемые ATtiny2313, ATtiny26 (1 код пользователя — от 1 до 9 цифр — ЖК-дисплей включен) = 12 евро.
Запрограммировано ATtiny2313 (8 кодов пользователей — от 1 до 9 цифр — ЖК-дисплей включен) = 22 евро.
Запрограммировано ATtiny2313, ATtiny45 (8 кодов пользователей — цифры от 1 до 9 — ЖК-дисплей выключен) = 12 евро.
Запрограммировано ATtiny2313, ATtiny45 (30 кодов пользователей — от 1 до 9 цифр – ЖК-дисплей выключен) = 20 евро.

Запрограммировано ATtiny2313 (10 пользовательских карт — LCD выключен) = 12 евро.
Запрограммированный ATmega8 или ATmega88 (8, 16, 24 или 32 пользовательских карты — LCD включен) = 15 евро. для

 

Для версии DIY (KIT) нажмите на CodeLock 10b.


Почта (заказным письмом) и пакет: 4–6 евро (SI), 4–10 евро (ЕС), 4–10 евро (ДРУГОЕ).

Есть вопросы о CodeLock AVR? Просто отправьте электронное письмо.

электронная почта

Биты блокировки atmega8 с помощью AvrDude

  • 1
  • Атмега8,
  • 27 января

Много раз нам нужно программировать нашу atmega с помощью внешнего программатора. Это может быть даже для программирования загрузчика или для загрузки шестнадцатеричного файла в производство. Сегодня мы собираемся объяснить, как запрограммировать atmega8 с помощью внешнего программатора. Мы собираемся использовать AVR Dude, который также является частью среды разработки Arduino. Но мы собираемся использовать для этого стороннее приложение с графическим интерфейсом, которое также имеет открытый исходный код. Вы можете скачать AVRDUDESS здесь. Вы можете использовать версию командной строки, если вам удобно, но я рекомендую использовать этот графический интерфейс.

Понимание битов блокировки

Биты фьюза всегда кажутся запутанными. Биты блокировки более запутаны, когда дело доходит до программирования atmaga8 с помощью внешнего программатора. Биты блокировки очень важны, когда нам нужна защита кода. В любом микроконтроллере самая важная часть — как защитить нашу интеллектуальную собственность? Что, очевидно, является нашим письменным кодом или данными, помещенными в EEPROM. Для успеха любого микроконтроллера защита кода является важнейшей функцией. В основном все микроконтроллеры предоставляют эту функцию, но процесс становился все более и более сложным в соответствии с архитектурой микроконтроллера. Atmega8 предоставляет два типа битов блокировки для защиты области кода. Один тип битов предназначен для защиты кода и данных eeprom. Другая часть предназначена для защиты данных, связанных с загрузчиком.

Защита флэш-памяти и EEPROM

Согласно техническому описанию, имеется два бита блокировки для защиты кода и EEPROM. LB1 и LB2 , несмотря на то, что они являются двухбитными, возможных комбинаций только три. Комбинация запрограммированного LB2 и незапрограммированного LB1 не поддерживается. Пожалуйста, обратите внимание, что установка бита HIGH(1) означает отсутствие программирования. Если мы делаем бит нулевым (0), это означает, что мы запрограммировали этот бит.

Итак, в первом режиме, когда мы делаем оба бита 1. Мы оставили их не запрограммированными. Это означает, что функция блокировки не включена и защита не установлена. Если мы просто запрограммируем LB1 во втором режиме, сделав его нулем. Это означает, что мы просто отключили дальнейшее программирование FLASH и EEPROM. Если мы обнулим оба этих бита, это означает, что мы также отключили дальнейшее программирование, а также проверку кода с помощью внешнего программатора. Здесь следует помнить один момент: мы все еще можем полностью стереть микроконтроллер и использовать его так же, как и раньше.

Режимы битов блокировки

Защита области загрузчика

Вторая предусмотренная группа битов защиты или битов блокировки предназначена для защиты области загрузчика. Это заставляет SPM и LPM держаться подальше от раздела загрузчика. Он поддерживает 4 режима, и вот таблица из таблицы, объясняющая поведение этих битов.

Биты блокировки области загрузчика

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *