Для создания конструкции послужило желание усовершенствовать мою разработку годичной давности, простую охранную сигнализации описанную в статье «Простая охранная сигнализация«, но сделать её на более современной элементной базе, на микроконтроллере AVR. Применение, которого позволяет при минимуме внешних компонентов значительно улучшить в качественном отношении прежнюю конструкцию, плюс к тому, изменением программы, можно менять параметры устройства в широких пределах, позволяя добавлять новые функции. За основу взят был недорогой микроконтроллер с 8 ногами, AVR ATtiny 13.
Принципиальная схема охранной сигнализации на AVR:
На схеме SW — это охранный датчик с нормально замкнутыми контактами. Постановка или снятие с охраны производится кнопкой вкл./выкл. питания.
(Писал программу, будучи новичком, поэтому строго прошу не судить). В принципе переделать исходник можно практически под любой микроконтроллер, имеющийся у вас в наличии. Различия будут лишь в способе формировании временных интервалов в подпрограммах отвечающих за эти куски программы, а они напрямую зависят от тактовой частоты, иными словами изменив модули подпрограмм (delay = 1,125 сек.) (delay2 =0,2 сек), (delay4 = 15 сек). При сохранении заданных временных интервалов, как и в моей программе, но реализованных другими приёмами, устройство должно работать точно так же.
Устройство на макетной плате работает так как и задумано (пока в реальных «полевых» условиях, для охраны какого либо объекта, не испытывал, поэтому не исключаю возможные «подводные камни» которые могут всплыть в процессе длительной эксплуатации в виде «глюков». Но это обычная практика на стали отладки, что корректируется в рабочем порядке заменой прошивки с более надёжной программой. А пока, что вот, для наглядности работы устройства прилагаю модели в Протеусе и AVR Studio , где можно симулировать работу устройства 1:1 по исполнению и временным интервалам, даже не беря в руки паяльник.
Симуляция в AVR Studio:
Симуляция в Proteus:
Общая идея такая. Допустим, Вы решили применить это устройство для охраны гаража в гаражном обществе. В качестве датчика используется пассивный инфракрасный датчик промышленного изготовления, расположенный внутри охраняемого пространства. Включаете устройство тумблером питания (это и есть постановка) и выходите наружу, закрыв дверь, в момент включения загорается один из светодиодов, расположенный на корпусе устройства (другой выведен наружу), чтобы можно было со стороны улицы контролировать режимы сигнализации, одновременно включается выведенный наружу и расположенный под крышей светодиодный фонарь, направленный своим лучом на замок двери (в темное время суток неудобно запирать замок и держать фонарь и связку ключей ,освещая замочную скважину). По истечении 45 секунд, гаснет фонарь подсветки, а индикатор режима начинает мигать прерывистыми импульсами 0,2 секунды с частотой раз в секунду и скважностью = 5 — это означает, что система вышла из режима ожидания и перешла в режим охраны.
При нарушении охранного пространства злоумышленниками, включается сирена (мной применена 12 вольтовая заводского изготовления от автосигнализаций) сирена звучит 45 сек, если за этот период контакты охранного датчика встали в прежнее состояние (Н.З.) ,сирена отработав свой интервал, переходит снова в режим ожидания, Но после этого происходит изменение в свечении индикатора, светодиод начинает мигать иначе (чаще), импульсами длительностью 0,2 сек и скважностью=2. (это надо для того, чтобы по приходу к объекту было видно, срабатывала сигнализация или нет).
Снимается система с охраны следующим способом, Отпираете дверь и заходите внутрь охраняемого помещения у вас 4,5 секунды (задержка на вход) чтобы отключить систему, выключив тумблер питания (он же тумблер на постановку). Злоумышленник может не знать расположение этого места, (поэтому желательно об этих вещах не трепаться на каждом углу, это в ваших же интересах) как только Вы вошли, датчик засёк ваше проникновение и однозначно включит сирену через 4,5 секунды, это то время, которого у злоумышленника нет, чтобы обнаружить в тёмном помещении местоположение сирены (светодиодные индикаторы на период работы сирены гаснут, что предотвращает визуально локализовать место расположения вашего устройства). В общем, быстро заходите, … быстро, отключаете, и всё )). В некоторых простых охранных сигнализациях промышленного изготовления, реализован такой же алгоритм работы. Ничего нового я не придумал, скорее эта статья послужит для помощи начинающим, понять лучше работу микроконтроллеров на реальном полезном простом устройстве.
Для тактовой частоты был выбран внутренний генератор с минимально возможной для данного микроконтроллера частотой, это 128 кГц / 8 = 16 кГц. Это надо учесть при прошивке микроконтроллера на программаторе, выставив правильно фьюзы, как показано на рисунке:
Я использовал программатор USB prog BM9010. Используя программу ChipBlaster и программируя по шине SPI, но некоторые экземпляры микросхем почему-то не программировались этим программатором, и тогда приходилось использовать STK-500 в режиме высоковольтного параллельного программирования (некоторые экземпляры микросхем, почему-то только так программировались).
Печатная плата и 3D-модель собранного устройства:
Скачать файлы проекта (исходник, прошивка, схема, печатная плата, скриншот fuse-битов)
Модернизация устройства:
Подключение охранной сигнализации к мобильнику
Изменения, внесённые в схему: задействован вывод микроконтроллера PB.2, 7-я ножка микроконтроллера на выход в момент срабатывания датчика спустя пару секунд, в качестве нагрузки подключен светодиод (для наглядности) последовательно (со светодиодом внутри оптопары), которая изменяет сопротивление полупроводникового элемента на выходе и «замыкает свои контакты» образно выражаясь, на 2,25 сек которые могут идти на управление на любые внешние устройства. Это может быть, как кнопка «звонить» мобильного телефона, с заранее выбранным вашим номером в меню, так и управление на включение радиопередающего устройства, типа.. автомобильного радиопейджера с целью, дистанционно оповестить вас о срабатывании сигнализации… Время длительности этого сигнала можно программно изменять при желании в ту или иную сторону. В остальном больше никаких изменений не было внесено в программу.
Схема доработанного устройства:
Ложные срабатывания
Одной из причин ложных срабатываний может быть неисправный датчик,(или иные факторы). Из жизненной практики приведу случаи, с которыми доводилось сталкиваться. На одном из объектов (в магазине) за ночь случалось по нескольку ложных срабатываний, проверяли и перепроверяли оборудование… Впоследствии причина была выяснена — в корпусе инфракрасного пассивного охранного датчика, поселились тараканы, перекрывавшие выделяемой слизью дорожки на печатной плате датчика, что приводило к срабатыванию сигнализации. С одной стороны забавно, но с другой, постоянно среди ночи орала сирена, что мешало проживающим рядом жителям спокойно заснуть.
Или ещё пример: на платной автостоянке самопроизвольно срабатывала ночью автосигнализация. Закончилось дело тем, что одна дама, проживавшая рядом с автостоянкой подошла к охраннику и попросила вызвать хозяина автомобиля чтобы тот отключил автосигнализацию, телефона хозяина этой машины не нашли и тогда, чтобы привлечь внимание хозяина авто к проблеме окружающих, эта дама не придумала ничего лучшего как при помощи кирпича разбить лобовое стекло автомобиля, мешавшего ей спать… Суд взыскал с неё стоимость ущерба, но и хозяин поменял неисправную автосигнализащию.
Как избежать подобного? И сигнализацию не отключать, и соседям не докучать. Я решил эту задачу программным способом, доработав программу счётчиком, лимитирующим количество срабатываний сирены. Ну, например, я задаю количество срабатываний 9 раз и после 9-го цикласирена замолкает. При этом НЕ отключается сигнал на PB.2, управляющий внешним устройством, например, мобильником или передатчиком автомобильного радиопейджера. И каждый раз, срабатывая при размыкании контактов охранного датчика после 9-го цикла, звуковая сирена больше не включается. Но телефон или радиопередатчик будет доносить информацию до хозяина столько раз, сколько будет срабатываний охранной системы. А на утро, владелец спокойно может прийти и разобраться в причине ложных срабатываний, не создавая проблем окружающим…
После снятия с охраны и новой постановки на охрану, система снова начнёт отсчитывать 9 циклов. После такой доработки, схема осталась без изменений, изменилась лишь прошивка. Если не устраивает число циклов равное 9, которое я заложил в программу, вы можете изменить текст исходника, достаточно вписать желаемое число срабатываний N. В строке:
.equ N = 10 ; число циклов срабатывания =(N-1)
Вместо числа 10 впишите любое другое от 2 до 255 и откомпилируйте программу, получив новый файл .HEX после чего прошиваете его в микроконтроллер.
Программу так же можете проэмулировать в Proteus или в AVR Studio. Наблюдая за регистром R17 , содержимое которого будет уменьшаться на единицу после каждого цикла срабатывания системы, пока не дойдёт до УСТАНОВКИ в 1 флага Z в регистре процессора SREG. После чего система перейдёт на беззвучный режим охраны.
Fuse-биты микроконтроллера ATtiny13 выставлены таким же образом как и в предыдущем случае.