Кодовый замок без кнопок » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Какие микроконтроллеры вы используете?


Atmel
MicroChip
STM
Motorola
Texas Instruments
Другие


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Кодовый замок без кнопок
    Автор публикации: alex Просмотров: 6990 Добавлен: 18-07-2012, 19:33 Комментарии: 0

         Отличительными особенностями предлагаемого кодового замка, который можно установить на входную дверь помещения, являются простота и отсутствие традиционных для таких устройств кнопок для набора кода. Взамен кнопок применен переменный резистор со шкалой, а набор производится вращением его ручки, снабженной указателем.
         Основа устройства (см. схему на рис. 1) — микроконтроллер DD1, в состав которого входит десяти разрядный аналого-цифровой преобразователь (АЦП). Код, применяемый в предлагаемом устройстве, — это набор значений напряжения, которые последовательно устанавливают переменным резистором R1. Распознавание такого кода выполняет микроконтроллер с помощью программы, записанной в его память. Напряжение с движка переменного резистора R1 поступает на линию порта GP0 (вывод 7 микроконтроллера DD1), сконфигурированную как вход АЦП.
         В EEPROM микроконтроллера хранятся два пятизначных кода, первый (КОД 1) — для открывания замка, второй (К0Д2) — для изменения первого кода. На шкале переменного резистора R1 предусмотрены восемь точек, соответствующих цифрам от 0 до 7. Цифру О используют для запуска подпрограммы введения кода, а также для обнуления и возврата замка в исходное состояние в случае ошибочного ввода. Каждый код содержит пять любых цифр от 1 до 7.
         После подачи питающего напряжения включается светодиод HL2 красного цвета свечения, индицирующий закрытое состояние замка. Светодиод HL1 зеленого цвета свечения погашен. Для набора кода указатель ручки переменного резистора устанавливают на цифру 0. Если же он изначально был установлен на этой цифре, то — на любую другую, а затем снова возвращают на цифру 0. После этого в течение 1 с звучит сигнал высокого тона, который сопровождается свечением светодиода HL1. Они сигнализируют о запуске подпрограммы введения кода, которая автоматически, через равные интервалы времени, измеряет напряжение на линии порта GP0 микроконтроллера. По окончании этого сигнала устанавливают первую цифру кода. Когда она будет введена в микроконтроллер, об этом сообщит короткий звуковой сигнал высокого тона, сопровождающийся вспышкой светодиода HL1. Затем устанавливают вторую цифру кода, а после сигнала — третью и т. д. Так последовательно вводят все пять цифр.

         Если код введен правильно, зазвучит звуковой сигнал высокого тона, включится светодиод HL1, a HL2 погаснет. На линии порта GP5 микроконтроллера (вывод 2) появится высокий уровень, что приведет к открыванию транзистора VT2. Питающее напряжение поступит на электромагнит, который откроет замок, установленный на двери. Через определенный промежуток времени электромагнит будет обесточен и замок вернется в исходное состояние. При этом звуковой сигнал прекратится, светодиод HL1 погаснет, a HL2 включится.
         Если введенный код неверен, зазвучит сигнал низкого тона длительностью 1 с, во время которого светодиод HL2 погаснет и устройство вернется в исходное состояние. Диод VD1 защищает транзистор VT2 от ЭДС, возникающей на обмотке электромагнита при его отключении.
         Для смены основного кода (КОД1) сначала вводят КОД2, как описано выше. После этого прозвучат три коротких сигнала высокого тона, в такт с которыми будет вспыхивать светодиод HL1. Это свидетельствует о запуске подпрограммы записи нового варианта основного кода. Вращением ручки переменного резистора аналогичным образом вводят новый код. По окончании введения последней, пятой, цифры инициализируется процесс записи в EEPROM микроконтроллера. Если прозвучат два сигнала высокого тона, каждый длительностью в одну секунду, в такт с которыми вспыхнет светодиод HL1, запись нового кода прошла успешно.
         Если по каким-либо причинам во время записи кода произойдет ошибка, прозвучат два сигнала низкого тона, каждый длительностью в одну секунду, в такт с которыми гаснет светодиод HL2.

         Если во время набора кода (в том числе и при записи нового кода) была допущена ошибка, есть возможность обнулить текущий набор. Для этого устанавливают цифру 0, после чего звучит короткий звуковой сигнал низкого тона, сигнализирующий об обнулении и возвращении устройства в исходное состояние. Прежде чем начать набирать новый код, следует установить любую другую цифру, а затем снова 0.
         Переменный резистор необходимо снабдить шкалой из цифр от 0 до 7, как показано, например, на рис. 2. Сопротивление резистора — любое в пределах от 1 до 10 кОм. Сначала подбирают подходящую цилиндрическую ручку с хорошо видимым указателем в виде стрелки, черты или точки. Указательнеобходим для определения положения движка переменного резистора относительно шкалы. Переменный резистор устанавливают на место крепления и надевают ручку. Вокруг ручки наносят окружность, на которой отмечают крайние положения указателя.
         Измеряют сопротивление переменного резистора и делят получившееся значение на восемь, поскольку при наборе используются восемь цифр. В авторском варианте — это 280 Ом. Омметром измеряют сопротивление между средним выводом резистора и его выводом, подключенным к общему проводу. Крайнему левому положению ручки (устанавливают вращением против часовой стрелки до упора) должно соответствовать нулевое сопротивление. Начиная с этого положения, вращая ручку по часовой стрелке, через каждые 280 Ом на окружности делают девять отметок. В итоге вся дуга между крайними положениями указателя будет разделена на восемь частей. В середине каждой из них делают отметку и рядом ставят соответствующую цифру.
         В устройстве применены постоянные резисторы — МЯТ, переменный — СПЗ-4аМ, также подойдет СП-1, но обязательно с линейной характеристикой изменения сопротивления от угла поворота. Соединение вывода движка переменного резистора с микроконтроллером, для исключения наводок, желательно выполнить экранированным проводом (экран соединить с общим проводом).
         Оксидные конденсаторы — К50-35 или импортные, С2 — К10-17. Транзистор КТ829А необходимо установить на теплоотвод с площадью поверхности 10...15 см2. Взамен него можно применить транзистор КТ827А. Стабилизатор напряжения 7805 заменим на К142ЕН5А; светодиоды — на импортные с диаметром корпуса 5 мм и различного цвета свечения, HL1 — зеленого, HL2 — красного. Взамен динамической головки 0.5ГДШ-2 можно применить другую малогабаритную с сопротивлением катушки 8 Ом и мощностью от 0,5 до 2 Вт. При желании громкость сигнала изменяют подбором резистора R6, но если его сопротивление не уменьшать, транзистор КТ817А можно заменить любым из серии КТ315.
         Электромагнит должен быть на рабочее напряжение 12 В и создавать усилие, достаточное для приведения в движение ригеля механического замка, сжимая его пружину. Питают устройство напряжением 12 В от нестабилизи-рованного сетевого блока питания, который обеспечивает требуемый для работы электромагнита ток. Чтобы обеспечить работу устройства при отсутствии сетевого напряжения, необходимо применить резервную аккумуляторную батарею напряжением 12 В и емкостью несколько ампер-часов, подключив ее соответствующим образом через развязывающий диод (желательно, диод Шотки с допустимым прямым током, превышающим ток электромагнита) к конденсатору С1 (катодом к плюсу конденсатора, анодом — к плюсовому выводу батареи). Поскольку устройство содержит немного деталей, печатная плата не разрабатывалась. Большинство элементов смонтированы на макетной плате.
         В микроконтроллере включен сторожевой таймер WDT, который выполнит его обнуление в случае "зависания". Программа написана на ассемблере в среде MPLAB. Программирование микроконтроллера проводилось с помощью программы IC-Prog 1.05D и JDM-пpoграмматора, описанного в журнале "Радио" за 2004 г., № 2 на с. 51 (А. Долгий. "Программаторы и программирование микроконтроллеров"). КОД1 и КОД2 следует обязательно записать в ЕЕРROM микроконтроллера при программировании — в ячейки с адресами с 0x00 по 0x04 записывают первый, а в ячейки с адресами с 0x05 по 0x09 — второй. Продолжительность паузы между шагами кода по умолчанию установлена 2 с, но ее можно изменить при программировании. В ячейку EEPROM с адресом 0х0А записывают число от 1 до 5, которое соответствует длительности паузы в секундах. Продолжительность подачи питающего напряжения на электромагнит также можно установить при программировании. Для этого в ячейку с адресом 0x0В записывают число от 1 до 9, что соответствует продолжительности в секундах. По умолчанию установлено 3 с.
    Материал взят из: Журнала Радио 2011 №7

    В архиве исходник на ассемблере и прошивка

    zamok.rar [4,51 Kb] (cкачиваний: 378)

    Комментарии