Расширение числа каналов аппарратуры Р/У

Алексей Козин (alexeykozin)

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

Как это работает.
Никаких чудес и нарушения законов природы, все честно используя один аналоговый канал – подключаем к пульту плату – кодер формирующую команду а вернее аналоговый уровень. в зависимости от номера нажатой кнопки формируется уровень напряжения на выходе.
Пульт в зависимости от этого уровня передает канал на приемник который формирует PWM импульс. примерно в диапазоне 1000-2000мс. Тоесть мы имеем в зависимости от нажатой кнопки на приемнике импульсы различной длительности.
к задействованному каналу приемника подключается платка -декодер. она анализирует импульс и реализует различную логику на множестве выходов. В результате из одного быстрого и точного аналогового канала непрерывного действия получаем несколько дискретных команд с возможностью активации собственноручно запрограммированой логики

Какие виды логики.
можно реализовать все что душе угодно, в качестве примера реализованы следующие
“кнопка” – пока держите кнопку 1 на пульте на выходе ардуино D4 будет высокий уровень
“переключатель” – нажатие на кнопку 2 приводит к тому что выход D5 с каждым нажатием перебрасывается на противоположное значение.
“серво-кнопка” – пока нажата кнопка 3 сервопривод подключенный к D7 переводится в максимальное состояние, после отпускания кнопки привод переводится в исходное положение.
“серво-переключатель” – каждое нажатие на кнопку переводит серву подключенную к D8 в противоположное направление
осталось пока незадействованым еще пара команд по кнопкам 5 и 6 , даже не знаю чего еще туда прицепить, может “сдвиговый регистр” с тем чтобы несколько выходов активировались по очереди с каждым нажатием, например для поджига феирверков или управления режимами подсветки

какое требуется железо
-аппаратура с ппм выходом на приемнике и свободным аналоговым каналом на передатчике, желательно 5 вольтовая, но и 3.3 будет работать.
-плата кодера. это может быть мой 6 режимный переключатель на основе ардуино либо контроллер ардуино с кнопками и светодиодами подключенными по его схеме.
-плата декодера- обычная мини-ардуино
-в случае подулючения мощной нагрузки может понадобиться плата силовых ключей, реле и блок питания

как подключить

– в принципе понятно из кода, в начале файла идут дефайны задействованных пинов, но если будут вопросы – пишите – постараюсь ответить.

структура кода.
внутри архива два скетча под arduino ide 1.0 (возможно будет работать с версиями старше)
скетч modesw_sh_expander.ino прошивается в плату кодера (с кнопками) подключемого к пульту по трем проводам два питание и аналоговый выход.

скетч receiver.ino заливается в ардуино платку. к ее входу D3 нужно подключить канал приемника
из настроек изначально нужно прописать расходы вашего канала управления соответствующие не нажатому состоянию кнопок (минимум) и нажатой кнопке 6 (максмум)
измеренные в милисекундах расходы нужно вбить в эти константы
#define calibrationMin 1063 //1000 //minimum and maximum in milliseconds of command chanel
#define calibrationMax 1954 //2000

ссылки

программный код кодера и декодера https://www.dropbox.com/s/il0gojiscx…ander.rar?dl=0
переключатель режимов который может быть использован в качестве кодера

Код проверил -работает.
если материал вызовет интерес- расширю функционал, нарисую схемки как подключать итд итп.
а если эта фиговина никому ненужна будет то пусть лежит как есть.