Включение/выключене с 1 канала нескольких нагрузок. Возможно-ли?

Dimac

Я делал по просьбе одного человека прошивку для 25 тиньки на 2-а входа и 2-а выхода (для управления лебёдками сделанных из серв - чтоб питание им отключать, когда стик в среднем положении).
Постараюсь переделать на три выхода по описанной логике, должно быть несложно.

Dimac

Вот, сделал прошивку для 25 тиньки. Попозже (из спортивного интереса) попробую адаптировать для 13 тиньки.
на схеме 1 канал - левый тумблер, 2-й - правый тумблер.
Единственный вопрос - что делать с выходами при отсутствии сигнала? Сейчас сделано так, что при пропадании сигнала на любом из входов - все выходы лог “0”. Можно сделать любую комбинацию или оставить последнее состояние.

В архиве проект для AVR Studio.
Файл прошивки RC_2IN_ATtiny25_3.hex
Фьюзы по дефолту (заводские), менять не надо. (либо сначала считать их перед программированием - если программа прошивальщик их программирует вместе с кодом или при прошивке запретить их программирование)

RC_2IN_ATtiny25_3.rar

dimaris

Не совсем понятна логика работы, какая ширина импульса на входах должна быть когда оба тумблера в среднем положении а какая в верхнем и нижнем? Я как раз искал такое устройство для отключения питания серво-лебедок когда стик в среднем положении.

Dimac

Верхние схемы будут работать и от стиков. Диапазон изменения сигнала (я принял 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” ).

RC_2IN_ATtiny25_1.rar

dimaris

Отлично! Как раз то что нужно, с реализацией калибровки к любой аппаратуре подойдет. Жаль только в ATtiny13 такое не запихнуть, памяти скорей всего не хватит. Просто ATtiny25 у меня нет в наличии.

Dimac

Не, памяти хватит. Программа занимает 622 байта. Просто в 13 тиньке только один таймер. А я использую один для определения длины импульса и ещё один для калибровки (организация мигания светодиодом).
Может что-нибудь придумаю через бодягу с использованием пустых циклов. В предыдущем случае, когда я переделал на 13 тиньку, я выкинул калибровку и избавился от использования 1 таймера.

sashok17
Dimac:

Вот, сделал прошивку для 25 тиньки. Попозже (из спортивного интереса) попробую адаптировать для 13 тиньки.
на схеме 1 канал - левый тумблер, 2-й - правый тумблер.
Единственный вопрос - что делать с выходами при отсутствии сигнала? Сейчас сделано так, что при пропадании сигнала на любом из входов - все выходы лог “0”. Можно сделать любую комбинацию или оставить последнее состояние.

В архиве проект для AVR Studio.
Файл прошивки RC_2IN_ATtiny25_3.hex
Фьюзы по дефолту (заводские), менять не надо. (либо сначала считать их перед программированием - если программа прошивальщик их программирует вместе с кодом или при прошивке запретить их программирование)

Спасибо большущее! Все работает как надо! Единственное что при отсутствии сигнала/ов на выходах должны быть лог.1 Если эту прошивку под 13 тиньку вогнать, то вообще будет здорово! И было бы неплохо ввести защиту типа: при первом включении пока оба тумблера одновременно не перещелкнуть (вверх-центр) два раза, схема не запустится, то есть на выходах всегда будут лог. 1. А так все работает в точности как я описывал. Спасибо еще раз!

Dimac

И было бы неплохо ввести защиту типа: при первом включении пока оба тумблера одновременно не перещелкнуть (вверх-центр) два раза, схема не запустится, то есть на выходах всегда будут лог. 1.

В этом есть какой-то смысл? просто я не представляю, как реализовать это “одновременно” Может просто при первом запуске проверять установку тумблеров в центр и до этого не стартовать? Или я что-то не понимаю, в чём защита?
Всё остальное понял - сделаю. А для 13 тиньки уже есть прошивка, постом ниже (71 пост).

dimaris

Присоединюсь к вопросу по своим делам. По большому счету мне нужно одно-канальное управление отключением питания рулевок в момент тахождения либо стика, либо тумблера в центральном положении. Действующая модель класса F2S уже есть, р/у АПЛ пр. 949А М:200. Имеются 2 балластные цистерны которые тянут 2 переделанные рулевки за зубчатые рейки. Так вот или из-за температуры (сервы аналоговые) или еще чего нибудь, они начинают “плавать”, то одна то другая. А вот если бы им отрубать питание то проблем бы не было.

Dimac

Вот это то, что я выложил в 73 посте. Просто используйте 1 канал, второй не подключайте. Попозже постараюсь сделать для 13 тиньки.

dimaris

Я Вам благодарен. если это можно воссоздать в тини13, реализовав ваш код в железе, готов предоставить фото-отчет, дабы труды не потрачены зря.

sashok17
Dimac:

Может просто при первом запуске проверять установку тумблеров в центр и до этого не стартовать?

да можно и так. Смысл - защита от случайного срабатывания при включении передатчика/приемника

Dimac

RC_2IN_ATtiny13_1 - 2-х входовый свитч для лебёдок на ATtiny13. Распиновка и работа, как на ATtiny25.

RC_2IN_ATtiny13_3 - 2-х входовый свитч для sashok17 (управление меню Шторма (автопилот) через RC передатчик) с учётом пожеланий.

RC_2IN_ATtiny13_1.rarRC_2IN_ATtiny13_3.rar

2 months later
dimaris

У меня вопрос к Дмитрию. А можно организовать работу устройства так, чтобы при отклонении стика/крутилки на 5% от центра, в зависимости в какую сторону от нейтрали двигается стик влево или вправо появляется логическая единица на одном из двух выходов? Мне это нужно для зубыатой рейки, чтобы использовать конечные выключатели в крайних точках. Можно в принципе и наоборот ловить сигнал с двух концевиков и управлять одним выходом. Если конечно места в ATtiny13 еще хватит.

Dimac

Сделал 1 вариант. (рис1) Из рисунка, думаю всё понятно.
Out1 - ещё используется, как индикатор калибровки - на него надо повесить светодиод.
Подача питания - он медленно мигает 2-е секунды. Если в это время любой канал перевести в максимум - запустится режим калибровки - его время секунд 5. За это время надо подвигать стиками до крайних положений.
При потере сигнала на всех выходах 0.

Вечером сделаю вариант2, - рис2. Но протестировать его не смогу, т.к. будет задействована ножка Reset, и я потом не смогу перепрограммировать чип. (нет параллельного программатора)
(прошивка на свой страх и риск ).

Может ещё старт калибровки поменяю (если будет пожелание), сделаю, как на регуляторах - при подаче питания, если стик отклонён - калибровка, нет - работа.
Не нравится, что при старте на выходе появляется сигнал.

RC_2IN_ATtiny13_2_1.rar

dimaris

Спасибо что откликнулись Дмитрий! Первого варианта схемы мне вполне хватит. Всетаки лишний раз трогать резет в тини опасно. В ближайшие дни обязательно протестирую вашу программу в железе и отпишусь о результатах.

Dimac

Всё равно, может кому пригодится. Как и обещал прошивка для рис2. - RC_2IN_ATtiny13_2_2.hex - там логика работы с калибровкой та же, только отключены сигнальные “мигания” светодиодом - при калибровке на выходах нули.
При прошивке надо запрограммировать фьюз RSTDISBL - для использования ножки Reset в качестве порта.
Эту прошивку не проверял, советую протестировать её, если возможно, в Протеусе.

Ещё сделал вариант для 1 рисунка, также с отключенным миганием. - RC_2IN_ATtiny13_2_11

Вариант с миганием - RC_2IN_ATtiny13_2_1

Всё в одном архиве.

RC_2IN_ATtiny13_2.rar

dimaris

Вот что у меня получилось:
Все прекрасно работает и калибруется, единственное неудобство что каждый раз при подаче питания нужно заново калибровать.

Dimac

единственное неудобство что каждый раз при подаче питания нужно заново калибровать.

Так быть не должно. У вас управление от стиков или от крутилок.
Режим калибровки запускается, если любой входной канал, перед подачей питания или в течении пары секунд после, перевести дальше середины (>1600 мкс).
Иначе контроллер переходит в режим работы по предыдущим откалиброванным значениям.

Просто стики сами стоят по центру, а если используется крутилка - надо смотреть в каком она положении перед подачей питания.

Решили сделать 4-е выходных канала, смотрю стоят 4-е светодиода. Reset задействовали?