Киллсвич для бензинки с питанием от LIPO
Уже делал простенький))) rcopen.com/forum/f78/topic66601/52 (там в теле форума мои сообщения)
Но тут я замутил двухметровый спитфайр и возникла проблема питания зажигания от LIPO с возможностью выключения зажигания от канала газа, ибо нехватало уже свободных каналов.
Поэтому родилась следующая схема. ее возможности:
Контроль напряжения батареи
Индикация ее состояния (частотой мигания светодиода)
отключение зажигания при падении напряжения меньше 6 В.
Управление отключением зажигания по радиоканалу
Возможность включения зажигания минуя радиоканал.
Пошивка еще отлаживается. Здесь есть небольшая загвоздка.
Опорное напряжение для измерения я беру с выходя LMки. При падении напряжения батареи до 6В напряжение питания падает до 4.7В, что приводит к уходу измеренных значений.
Поэтому я думаю включить в схему генератор опорного напряжения (например REF192) вместо выключателя режима прямого зажигания.
А функцию переключателя возложить на кнопку программирования длительности канального импульса при котором происходит выключение зажигания.
Но может и обойдется)))
Как отлажу функцию контроля питания, выложу прошивку.
Итак:
Х1,Х2 - выходы на внешний индикаторный диод
Х3,Х4 - вход питания
Х5,Х6 - вход с приемника
Х7,Х8 - Выход на зажигание
Х9,Х10 - выход на тумблер (Direct ignition) - позволяет включить зажигание без включения аппаратуры
Проц - PIC12F675
Т1 любой N канальный MOSFET с управлением логическим уровнем (У меня или IRF7201 (SO8) или IRL3303 (DPAK))
SA1 - кнопка запоминания длительности канальных импульсом выключения зажигания (при включенной аппаратуре нужно нажать на нее) Данная функция крайне необходима была мне, поскольку киллсвич я использую на одном канале с управлением газом. При нажатии на V-CUT происходит и закрытие заслонки и отключение зажигания.
Если у кого есть вопросыи ли рекомендации - прошу комментировать(мож я чегои забыл).
ЗЫ При отсутствии процессора зажигание ВЫКЛЮЧЕНО, я считаю, что именно в данном случае это так и должно быть.
Также в программе реализован контроль за “правильностью” принимаемых импульсов Импульсы короче 0,9 и больше 2,2 мс игнорируются. Киллсвич срабатывает при наборе 10 “правильных” запрограммированных импульсов
Итак, после проведения натурных испытаний выяснилось, что на максимальных оборотах зажигание потребляет максимум 400мА , что для используемого стабилизатора семечки - его температура не превышает 40 градусов без радиатора.
Также установлено, что просадки напряжения при таком токе не происходит (я проверял на нагрузке 1,5А), что радует.
Поэтому схему переделывать не стал за исключением того, что убрал тумблер прямого включения (Х9, Х10)- его функции легли на кнопку программирования.
Выкладываю прошивку.
Работает так.
При включении светодиод мигает 3 раза .
Если есть сигнал с приемника и он указывает на то, что нужно включить зажигание, зажигание включается и светодиод начинает мигать с частотой, чем меньше напряжение батареи тем чаще.
При достижении напряжения на батарее 6В зажигание отключается и светодиод гаснет.
Если сигнал с приемника отсутствует или он соответствует выключению зажигания, то зажигание выключается и светодиод гаснет.
Для прямого включения зажигания нужно кратковременно нажать на кнопку. При этом светодиод начнет часто мигать и зажигание включится независимо от наличия сигнала от приемника.
Для программирования момента выключения нужно подать сигнал от приемника, нажать и удерживать кнопку в течение 3х секунд. После этого светодиод мигнет 3 раза. Далее свич нужно выключить и включить. Новая установка вступит в силу.
Если есть предложения по улучшению работы свича или по изменению алгоритма его работы прошу высказываться, мож чего и забыл…
Обновленная прошивка - немного подправил индикацию и измерение напяжения
При достижении напряжения на батарее 6В зажигание отключается и светодиод гаснет.
------------------------------------------------------------------------------
или по изменению алгоритма его работы прошу высказываться, мож чего и забыл…
Честно сказать, странный у Вас алгоритм… Зачем выключать зажигание при падении напряжения до 6 вольт? Совсем не понятно… Я конечно понимаю, что Вы хотите сберечь липольку от переразряда, но, ее цена не сравнима с ценой модели - представьте себе, что будет если такое выключение случится при 3D пилотаже на малой высоте? Мне кажется, эту отсечку надо убрать из алгоритма, киллсвич должен глушить модель только по команде, и никак иначе…
Риск угробить аккумулятор несравненно мизерный по сравнению с риском разложить самолет…
Доброго дня,… или ночи!
Попробвали воссоздать Ваш киллсвч,ну схему проверили раз 20,там нет таких навворотов ,чтоб можнобыло промазать,единственное снял зашиту кода,к сожалению,программировать отдавал друзьям,но с порога мне ни кто не поморгал светиком, подключил сервотестер… протыкал все осцилом ,обидно… но,PIC … не реагирует на все,может у Вас есть уже опыт … ктот собирал Ваш девайс …,ну так вот и хочется и,не получается,подскажите пожалуста,какие могут быть “подводные камни”,я фотку нашей версии прилагаю…
заранее благодарен!
Прошу прощения за долгое молчание - не работает оповещение об ответах на форуме.
Защиту от переразряда снять можно. Наверное это правильно исходя из назначения киллсвича.
Если успею, сегодня сделаю.
По проблеме прошивки - проверьте значение бита MCLR. Он должен быть OFF.
Да, и еще. Если Вы используете PicProg, то для этого программатора существует баг - при загрузке программы биты вроде как устанавливаются, но реально не прошиваются. В этом случае проц не заведется. Решение - вручную переустановить биты конфигурации.
После включения светодиод должен либо мигать либо гореть постоянно в зависимости от входного напряжения. Если не горит - проблема с прошивкой. Попробуйте перепрошить не меняя значений битов конфигурации.
Проверьте, не находится ли кнопка постоянно в нажатом состоянии (я не могу разглядеть на плате но на кномке есть соединенные выводы) если да, то проц уходит в аут и ждет когда вы ее отпустите))) На 4 ноге должно быть +5В.
Да, и еще. Абсолютно необходимы конденсаторы обвязки стабилизатора. в противном случае в стабилизатор уходит вразнос, проц жутко греется и выходит из строя.
У меня почему-то не работает оповещение об ответах на форуме((( Если есть вопросы - пишите zms2003@inbox.ru
Выкладываю прошивку с отключенной функцией отсечки по напряжению
Итак, 3.05.09 проведены полевые испытания свича на борту 2х метрового спитфайера…
Схема доказала свою работоспособность, однако для улучшения характеристик прошивка будет доработана в плане:
1.Выявлен баг индикации - при полностью заряженной батарее (когда индикатор не мигает) при отключении зажигания по радиоканалу, светодиод не гаснет а продолжает гореть.
2. Не учтена возможность реверса канала.
3 . Для тонкой настройки АЦП пороговые константы индикации нужно вывести в EEPROM.
Сегодня постараюсь доделать.
Выкладываю новую прошивку. Проверялась в симуляторе. Если кто сможет, проверьте в реале (у меня контроллер запаян в плату и доработки на работу моего свича не влияют). Адреса EEPROM:
Адрес Описание
0 Значение канала отключения (задается при программировании отсечки кнопкой. Пределы 0х39 - 0х7f)
1 Верхний порог АЦП
2 Первый промежуточный порог АЦП
3 Второй промежуточный порог АЦП
4 Нижний порог АЦП
5 Признак реверса канала (0- ревеса нет. 1-реверс. Автоматически программируется при нажатии кнопки программирования. Если ручка управления в нижнем секторе - 0, в верхнем - 1. По умолчанию - 0)
При отсутствии реверса отсечка происходит при длине канального импульса МЕНЬШЕ заданной.
При реверсе отсечка происходит при длине канального импульса БОЛЬШЕ заданной.
На сегодняшний день киллсвич отработал сезон на бензиновом двигателе с аппаратурой на 40Мгц и 2.4ГГц.
Ни одного сбоя в работе не выявлено. Отсечка отрабатывает стабильно.
размеры платы можно ужать раза в 3 при использовании SMD компонентов… Единственное - последняя прошивка в поле не проверялась, поэтому если кто заинтересовался и проверил ее, большая просьба отписаться.
Ну а если нет, тогда зимой сам займусь)))
Повторил килсвитч на PIC12F629, в прямом заработал без проблем.
В процессе испытаний выявлен баг в режиме реверса нет отключения зажигания.При проверке EEROM выявлено что в 5 байт “1” прописывается.
Вот результаты испытаний
- Программирование по сигналу 1.0мс работа без замечаний
- Программирование по сигналу 2.0мс при включении с сигналом 2.0мс зажигание отключено, при уменьшении длительности до 1,5мс зажигание включается и не реагирует на изменение входного сигнала.
- Программирование по сигналу 2.0мс при включении с сигналом 1.8мс зажигание включается и реакции на изменение сигнала нет.
Два раза получилось при программировании по сигналу 1.8мс при этом включение зажигания было при сигнале >1.8мс при сигнале меньше 1.8мс зажигание выключалось.
Непонятно назначение порта GP1(выв 6)
Предлагаю расширить диапазон обрабатываемых импульсов до 0.7-0.8мс так как аппаратура выдаёт стандартный сигнал отключения зажигания 3 канала -10% (импульсом 0.9мс) уменшение настройки откл зажигания до (-5%) может вызвать непроизвольное выключение двигателя.
Спасибо за подробный пост…
GP1 в новой версии не используется.
Правильно ли я понял, что все перечисленные баги относятся к работе в реверсе?
Диапазон расширить только в сторону уменьшения?
В общем понятно… При программировании после считывания длины импулься я немного уменьшал его для надежности))) а в реверсе я его походу тож уменьшаю, а надо увеличивать…
Все баги только в режиме реверса. В прямом режиме работает хорошо.
Диапазон предлагаю расширить в сторону уменьшения длительности импульса.
Я наверное диапазон тоже в EEPROM закатаю… дабы можно было настраивать…
Кстати баги ИМХО как раз из-за зажатого диапазона… Но надо еще покурить…
И еще… Опторазвязка немного но ощутимо удлиняет канальные импульсы… Я это заметил когда увидел расхождение измеренных значений импульсов между измеренными без нее и с ней.
Можно, только нужно перенаправить порт на включение, вход импульсов, и добавить кнопку программирования
или чтобы прошивку не ломать, перекоммутировать на плате и желательно последовательно со светодиодом оптрона резюк поставить на 470ОМ (мож из-за этого и МК вылетел…)
Да, чтобы АЦП не сбивал с толку, GP4 надо через 1к на +питания подключить
Выкладываю обновленную прошивку.
Баг с реверсом вроде исправил (неправильно отрабатывали прерывания при записи значения канала)
Также вывел в епром все основные константы и добавил режим игнорирования АЦП.
Также расширил диапазон измерения импульсов (теперь его можно настраивать через епром)
/*
адрес EEPROM назначение
0 значение ручки газа (выставляется при программировании канала) должно быть между мин и мах ( 6 и 7 адрес епром)
1 верхнее значение АЦП
2 значение АЦП
3 значение АЦП
4 нижнее значение АЦП
5 Признак реверса канала 1-реверс 0-нет реверса(ставится автоматически)
6 минимальная длительность канального импульса
7 максимальная длительность канального импульса
8 середина хода стика
9 Признак задействования АЦП 1-есть 0-нет
*/
К сожалению не обнаружил у себя в запасниках ни одного чипа поэтому тестил на симе(((
Вдогонку… Выключение АЦП предусмотрел, потому что у меня новый мотор, который можно питать от 4 до 18В… Поэтому ЛИПО буду подключать напрямую а напряжение питания проца снижу до 3.3В… Вот только не знаю, транзистор откроется на таком напряжении или нет. Если нет, поставлю опторазвязку на затвор, а цифровую часть запитаю от приемника… А может и нет)))
Кстати, вариант применения опторазвязкми канального импульса доказал свою жизнеспособность. Питание схемы от зажигания также не привело к несанкционированным отключениям мотора.
В общем есть варианты использования этого свича…
Повторил на PIC12F629 SMD всё работает без проблем.😁 Светодиод светит прерывисто это так и должно быть или какой-то баг.
Сделал простенький расчёт перевода длительности импульса в миллисекундах в шестнадцатеричный формат для заполнения пределов обрабатываемых импульсов биты EEROM № 0,6,7,8. Прикидывал методом научного тыка в “Протеусе” поэтому на большую точность не претендую 😉
Прерывисто светит, когда АЦП отключен… Задается в епроме по адресу 2. Чтобы видеть что схема не висит)))
На прямом включении частота мигания выше…
Кстати, значение Таймера измерения длительности импульса можно расчитать по формуле
(ДлИ)/(1/(1000000/16))
где ДлИ - длина импульса в секундах
Так, для 1мс - 0,001/(1/(1000000/16))=0.001/0,000016=62,5=63=0x3f
для 2мс = 125=0x7d
По поводу мигания при отключенном АЦП - ошибся… Частота мигания фиксированная и не изменяется
А в каком диапазоне питания борта эта схема будет работать? В ней есть какой-нибудь стабилизатор напряжения?
Я использовал 2S ЛИПО… Можно и 3S но греться поболе будет.
Питается схема от стабилизатора LM1084. Можно использовать любой LDO стаб на ток не менее 1А для одногоршкового зажигания и 1,5А для оппозита.
Минимальное напряжение, когда еще будет АЦП адекватно реагировать - 6,3В
Если без АЦП - то и меньше потянет.
Пороги Измерения АЦП задаются в ЕПРОМе и делителем на GP4.
Делитель (R1 R2) расчитывается таким образом, чтобы при максимальном напряжении батареи на GP4 было не более 5В.
А для чего там ток не менее 1 А, если от него питается только микросхема. Зажигалка ведь питается от своего АКБ.
Повнимательнее смотрите - Это киллсвич со стабилизатором для питания ЗАЖИГАНИЯ.
А сигнал от приемника идет через опторазвязку… Но можно и по-другому смострячить - запитать цифру от приемника а через опторазвязку врубать мосфет на зажигание - на схеме выше примерно так показано. Но тогда контролировать можно будет только напряжение борта