Включение/выключене с 1 канала нескольких нагрузок. Возможно-ли?
Не совсем понятна логика работы, какая ширина импульса на входах должна быть когда оба тумблера в среднем положении а какая в верхнем и нижнем? Я как раз искал такое устройство для отключения питания серво-лебедок когда стик в среднем положении.
Верхние схемы будут работать и от стиков. Диапазон изменения сигнала (я принял 1 - 2ms) разбивается на 3-и зоны. Входной сигнал, попадая в соответствующую зону устанавливает выходы в соответствии с заданной логикой. Я для простоты откалибровал по своей аппаратуре, чтоб не заморачиваться с калибровками, для тумблеров точность особо не нужна. Верх сделал 1ms, низ - 2ms. (но можно сделать и наоборот, хотя в принципе, в нормальной аппаратуре есть реверс).
По посьбам трудящихся 😃 выкладываю прошивку для ATtiny 25, для управления лебёдками на 2-а входа. Схема (есть в архиве) как в верхнем посте (rcopen.com/forum/f87/topic297998/72). Входы аналогичны, выходы: Out1 - выход “потеря сигнала”, Out2 - выход 1 канала, Out3 - выход 2 канала.
Описание.
RC_2IN_ATtiny25_1
Контроллер на 2-а входных канала управления и 2-а выхода + выход “нет сигнала”
Выход “нет сигнала” загорается, когда на обоих входах отсутствует сигнал.
Калибровка стиков:
При подаче питания начнет мигать диод “нет сигнала”. Есть 3 секунды, чтобы перевести любой стик от центра в максимум для запуска режима калибровки. Если за это время ничего не двигать - контроллер перейдёт в режим работы. При первом использовании необходима калибровка.
Режим калибровки: ( диод начнёт мигать быстрее). Есть 4 секунды, чтобы перевести стики несколько раз в крайние положения.
Калибровка производится одновременно 2-я стиками.
При завершении калибровки диод погаснет. После этого будет вычислен математический центр диапазона изменения сигнала и вокруг этого центра определена “мёртвая зона” ±5%.
При установке стиков в центр - на выходах лог. “0”.
При отклонении стика/крутилки на 5% от центра, включается соответствующий выход (лог. “1” ).
Отлично! Как раз то что нужно, с реализацией калибровки к любой аппаратуре подойдет. Жаль только в ATtiny13 такое не запихнуть, памяти скорей всего не хватит. Просто ATtiny25 у меня нет в наличии.
Не, памяти хватит. Программа занимает 622 байта. Просто в 13 тиньке только один таймер. А я использую один для определения длины импульса и ещё один для калибровки (организация мигания светодиодом).
Может что-нибудь придумаю через бодягу с использованием пустых циклов. В предыдущем случае, когда я переделал на 13 тиньку, я выкинул калибровку и избавился от использования 1 таймера.
Вот, сделал прошивку для 25 тиньки. Попозже (из спортивного интереса) попробую адаптировать для 13 тиньки.
на схеме 1 канал - левый тумблер, 2-й - правый тумблер.
Единственный вопрос - что делать с выходами при отсутствии сигнала? Сейчас сделано так, что при пропадании сигнала на любом из входов - все выходы лог “0”. Можно сделать любую комбинацию или оставить последнее состояние.
В архиве проект для AVR Studio.
Файл прошивки RC_2IN_ATtiny25_3.hex
Фьюзы по дефолту (заводские), менять не надо. (либо сначала считать их перед программированием - если программа прошивальщик их программирует вместе с кодом или при прошивке запретить их программирование)
Спасибо большущее! Все работает как надо! Единственное что при отсутствии сигнала/ов на выходах должны быть лог.1 Если эту прошивку под 13 тиньку вогнать, то вообще будет здорово! И было бы неплохо ввести защиту типа: при первом включении пока оба тумблера одновременно не перещелкнуть (вверх-центр) два раза, схема не запустится, то есть на выходах всегда будут лог. 1. А так все работает в точности как я описывал. Спасибо еще раз!
И было бы неплохо ввести защиту типа: при первом включении пока оба тумблера одновременно не перещелкнуть (вверх-центр) два раза, схема не запустится, то есть на выходах всегда будут лог. 1.
В этом есть какой-то смысл? просто я не представляю, как реализовать это “одновременно” Может просто при первом запуске проверять установку тумблеров в центр и до этого не стартовать? Или я что-то не понимаю, в чём защита?
Всё остальное понял - сделаю. А для 13 тиньки уже есть прошивка, постом ниже (71 пост).
Присоединюсь к вопросу по своим делам. По большому счету мне нужно одно-канальное управление отключением питания рулевок в момент тахождения либо стика, либо тумблера в центральном положении. Действующая модель класса F2S уже есть, р/у АПЛ пр. 949А М:200. Имеются 2 балластные цистерны которые тянут 2 переделанные рулевки за зубчатые рейки. Так вот или из-за температуры (сервы аналоговые) или еще чего нибудь, они начинают “плавать”, то одна то другая. А вот если бы им отрубать питание то проблем бы не было.
Вот это то, что я выложил в 73 посте. Просто используйте 1 канал, второй не подключайте. Попозже постараюсь сделать для 13 тиньки.
Я Вам благодарен. если это можно воссоздать в тини13, реализовав ваш код в железе, готов предоставить фото-отчет, дабы труды не потрачены зря.
Может просто при первом запуске проверять установку тумблеров в центр и до этого не стартовать?
да можно и так. Смысл - защита от случайного срабатывания при включении передатчика/приемника
RC_2IN_ATtiny13_1 - 2-х входовый свитч для лебёдок на ATtiny13. Распиновка и работа, как на ATtiny25.
RC_2IN_ATtiny13_3 - 2-х входовый свитч для sashok17 (управление меню Шторма (автопилот) через RC передатчик) с учётом пожеланий.
У меня вопрос к Дмитрию. А можно организовать работу устройства так, чтобы при отклонении стика/крутилки на 5% от центра, в зависимости в какую сторону от нейтрали двигается стик влево или вправо появляется логическая единица на одном из двух выходов? Мне это нужно для зубыатой рейки, чтобы использовать конечные выключатели в крайних точках. Можно в принципе и наоборот ловить сигнал с двух концевиков и управлять одним выходом. Если конечно места в ATtiny13 еще хватит.
Сделал 1 вариант. (рис1) Из рисунка, думаю всё понятно.
Out1 - ещё используется, как индикатор калибровки - на него надо повесить светодиод.
Подача питания - он медленно мигает 2-е секунды. Если в это время любой канал перевести в максимум - запустится режим калибровки - его время секунд 5. За это время надо подвигать стиками до крайних положений.
При потере сигнала на всех выходах 0.
Вечером сделаю вариант2, - рис2. Но протестировать его не смогу, т.к. будет задействована ножка Reset, и я потом не смогу перепрограммировать чип. (нет параллельного программатора)
(прошивка на свой страх и риск ).
Может ещё старт калибровки поменяю (если будет пожелание), сделаю, как на регуляторах - при подаче питания, если стик отклонён - калибровка, нет - работа.
Не нравится, что при старте на выходе появляется сигнал.
Спасибо что откликнулись Дмитрий! Первого варианта схемы мне вполне хватит. Всетаки лишний раз трогать резет в тини опасно. В ближайшие дни обязательно протестирую вашу программу в железе и отпишусь о результатах.
Всё равно, может кому пригодится. Как и обещал прошивка для рис2. - RC_2IN_ATtiny13_2_2.hex - там логика работы с калибровкой та же, только отключены сигнальные “мигания” светодиодом - при калибровке на выходах нули.
При прошивке надо запрограммировать фьюз RSTDISBL - для использования ножки Reset в качестве порта.
Эту прошивку не проверял, советую протестировать её, если возможно, в Протеусе.
Ещё сделал вариант для 1 рисунка, также с отключенным миганием. - RC_2IN_ATtiny13_2_11
Вариант с миганием - RC_2IN_ATtiny13_2_1
Всё в одном архиве.
Дмитрий что б мы без вас делали)
единственное неудобство что каждый раз при подаче питания нужно заново калибровать.
Так быть не должно. У вас управление от стиков или от крутилок.
Режим калибровки запускается, если любой входной канал, перед подачей питания или в течении пары секунд после, перевести дальше середины (>1600 мкс).
Иначе контроллер переходит в режим работы по предыдущим откалиброванным значениям.
Просто стики сами стоят по центру, а если используется крутилка - надо смотреть в каком она положении перед подачей питания.
Решили сделать 4-е выходных канала, смотрю стоят 4-е светодиода. Reset задействовали?
Я проверял на стике, правда без пружины. Исходил из того что если начинает срабатывать ±5% отклонения от центра то в режим программирования не должна входить, а она все равно входит. Да сделал все 4 выхода используя reset, а также индикация в режиме программирования работает, мигает светодиод.
Я могу увеличить порог для перехода в режим калибровки, но уже после использования Reset, чип не перешить… или вы можете?
А вообще, сейчас поверил - там довольно далеко порог срабатывания (1700мкс) - проверял сервотестером с индикацией длины импульса, может стик в инверсном режиме?
У меня самопроизвольно не переходит в режим калибровки сколько не коммутировал.
Ещё момент, после включения надо секунды 3-и не трогать стики (которые подключены к устройству) - в это время идёт опрос входов для перехода в режим калибровки.
Во время включения я стики не трогал, вот только подключал всего лишь один канал. Может это влиять? Длину импульса я не мерил и проверял все передатчиком Futaba 8FG и китайским приемником Frskay (что было на данный момент под рукой). Из конструктивных особенностей приемника мне удалось подключить только 3 канал. У футаб по умолчанию 3 канал в инверсе, я этих особенностей вашего устройства не знал. Надо еще раз заново пробовать учитывая ваши рекомендации.