Уважаемый Кот, с юбилеем тебя!
Иметь велик удобно спортивно и вообще здорово и поэтому возникает желание защитить его от угона. Понятно что тросик никто не отменял, но и сигнализация лишней не будет.
В этой статье я расскажу как модернизировать велосигнализацию, впрочем никто не мешает собрать это устройство с нуля.
Купив однажды вот такую велосигнализацию я в был доволен... но
Через 10 дней аккумулятор питавший устройство полностью разрядился. Оказалось микроконтроллер установленный там потребляет в режиме ожидания 0,8мА и за 10 дней разряжает аккумулятор крона на 0,8*24*10=192мА*ч то есть полностью. Кому-то это покажется глупым (разве сложно подзаряжать аккумулятор раз в 10 дней ) но конструкция устройства специально спроектирована так чтобы нельзя было вынуть элемент питания не снимая устройство с велосипеда. (если бы это было не так предполагаемый вор просто вынимал бы батарейку чтобы выключить сигнализацию) Разобрав устройство и убедившись что там нет никаких бракованных конденсаторов или грязных дорожек через которые мог разряжаться аккумулятор я решил заменить контроллер на tiny13 написав программу выполняющую функционал оригинала но с меньшим потреблением.
Транзисторы можно поставить КТ3102. Где транзистор Q1 не спрашивайте - не знаю )) я нумеровал как на печатной плате. U2 линейный стабилизатор на 3В. С 7805 тоже будет работать.
Я специально выбрал tiny13 так как он по габаритам аналогичен установленному контроллеру, правда не совпадают ножки питания но это исправить проще чем ставить МК в совершенно другом корпусе. При попытке собрать это устройство с нуля возникает 3 проблемы - корпус, трансформатор (для повышения напряжения подаваемого на пьезоизлучатель) и датчик вибрации.
Датчик вибрации представляет собой небольшой пьезо элемент с закрепленной коробочкой сбоку. В коробочке находиться металлический шарик который там свободно болтается. При изменении ориентации в пространстве (вибрации) шарик ударяется о пьезоэлемент и тот формирует импульс. Коробочка напоминает пивную крышку, это для того чтобы перекатываясь по окружности шарик стучал по пьезоэлементу. Трансформатор намотан на ферите в виде гирьки. Индуктивность первичной обмотки 1,8мГн, вторичной 64мГн. Исходя из этого коэффициент трансформации 35.
Описание работы устройства:
1. Предустановленный заводской :>) код CCСC
2. Изменение кода - нажмите кнопку А на 2 сек., прозвучит одиночный сигнал, введите старый код, прозвучит длинный одиночный сигнал в случае, если код введен неправильно, и, тройной сигнал, если правильно. Затем введите Ваш новый код, прозвучит тройной сигнал, означающий, что новый код установлен*
* или одиночный длинный сигнал означающий что батарейка села настолько что не удается произвести запись в EEPROM, однако код будет изменен, но после перезапуска питания будет восстановлен старый код хранящийся в EEPROM. (во избежание проблем старайтесь не менять код когда чувствуете что батарейка села)
3. Сигнализация блокируется на 1,5 минуты в случае ввода неправильного кода 3 раза подряд. (при этом она орет)
4. Постановка на сигнализацию: нажмите кнопку В на 2 сек., прозвучит длинный одиночный сигнал о срабатывании, и, через 3 сек. сигнализация будет установлена.
5. Чтобы снять сигнализацию, введите Ваш 4-х значный код, прозвучит тройной сигнал, оповещающий об остановке сигнализации. Или длинный одиночный означающий что код не верен.
6. При срабатывании сигнализации, прозвучит 3-кратный сигнал, затем, при повторном срабатывании в течение 25 секунд, сигнал будет звучать непрерывно в течении 2х минут.
7. Можно изменять уровень чувствительности сигнализации. Есть 3 уровня; для перехода с одного на другой надо нажать С и удерживать 2-3 сек. Сначала прозвучит текущий уровень далее через каждые 2 секунды будет производиться переключение (1-2-3-1...)
1 "пик" - низкий уровень чувствительности
2 "пика" - средний,
3 "пика" -. высокий
Чем моя программа лучше заводской
1. Потребляет 0,4мА в режиме охраны и 40мкА а режиме ожидания (0,8мА исходное потребление)
2. Код запоминается в энергонезависимой памяти и не сбрасывается при смене батарейки
3. Добавлен универсальный код BCBA отключения сигнализации (который вы можете поменять или отключить в исходнике) Но им нельзя поменять код.
4. Добавлен универсальный код ААACBA отключения режима блокировки (который вы можете поменять или отключить в исходнике) Дело в том что заводская версия при троекратном ошибочном вводе кода, в режиме охраны, блокируется, орет и не реагирует на нажатия кнопок. Для меня, как хозяина, это очень неприятно. Набор кода в этом режиме никак себя не выдает сигнализация просто орет и кажется что не реагирует на нажатия клавиш. Код нужно вводить быстро, не более 2 сек между нажатиями кнопок, поскольку после 2х секунд прошедших с последней нажатой кнопки набранный код обнуляется (чтобы можно было набирать заново)
5. Уровень чувствительности настраивается на самом деле. В заводской прошивке меняется время блокировки 3, 15, 30 мин. и число попыток ввода перед блокировкой 4, 3, 2
Как поменять универсальные коды в прошивке
1. Установите AVR studio (в адресе установки и адресе открываемого проекта не должно быть русских букв) Откройте проект. Придумайте 4х и 6ти значные коды
2. Замените А=01, В=10, С=11 (например ААACBA= 010101111001, BCBA=10111001)
3. К 6ти значному коду допишите 4 нуля слева (например ААACBA= 0000010101111001)
4. Найдите в исходнике на первой странице строчки
.equ unikey1=0b10111001
.equ unikey2L=0b01111001
.equ unikey2H=0b00000101
После 0b в первой строчке подставьте цифры получившиеся от 4х значного кода
Во второй строчке после 0b подставьте правые 8 цифр получившиеся от 6ти значного кода
В третей строчке после 0b подставьте левые 8 цифр получившиеся от 6ти значного кода (после точек с запятой можно ничего не менять это просто комментарии)
Для отключения 4х кода после 0b в первой строчке подставьте 11000000
Для отключения 6х кода во второй строчке после 0b подставьте 11000000
Нажмите F7 в AVR студио и проект будет скомпилирован. AVR studio в нижнем окне напишет Assembly complete, 0 errors. 32 warnings. Файл watchdog.hex в папке с проектом обновиться.
Файлы:
Прошивка МК с исходником.
Вопросы, как всегда в Форум.