Explorer
Arduino и подсветка лучей коптера с сигнализацией активации фейлсейва

Решил написать статейку, возможно кому то пригодится.

Летал все время со статичной подсветкой, читаемость положения коптера в разы улучшается, но! иногда сильно засвечивает камеру и потребовалась возможность управлять подсветкой с пульта. Решено было использовать arduino nano, так как имеет небольшие габариты и порт USB для быстрой отладки и настройки. Началось все с гугления темы про “чтение PWM сигнала с RC приемника” (и прочие запросы в таком духе) конечно же ничего годного не нашел, предлагали всякие бредовые решения пока не наткнулся на использование функции attachInterrupt() и дело сразу же сдвинулось с мертвой точки. Почитав про данную функци, выясняем, что на плате arduino nano можно использовать всего два порта для данной функции: это D2 и D4 (в самой функции указывается как 0 и 1 соответственно).
И сразу же скажу, при непрерывном чтении порта, ой как не желательно использовать в коде программы функции delay(), так как каждая из них будет тормозить чтение сигнала PWM, по этому так же было решено обойти эту функцию используя подсчет времени работы контроллера ардуины (micros() и millis()).
Еще сразу же подумал сделать интересную, как мне кажется опцию - сигнал о отработке фелйсейва при потере сигнала (используется опция приемника)

Замена "крутилок" в аппаратуре на 3-х позиционные тумблеры (чисто для себя, чтоб не забыть)