Небольшой очерк о том, как быстро собрать тестер для получения информации о каналах р/у аппаратуры. Может пригодиться для выяснения "что дурит - приемник или серва?". Им можно проверить какие сигналы подаются с аппаратуры, приемника, мозгов коптера на сервы и регуляторы. Я делал себе данный прибор для отладки и тестирования собственных разработок перед подключением исполнительных устройств.
По сути это и прибором-то назвать нельзя. В качестве комплектующих используются "отладочные" платы и компоненты:

Идея устройства достаточно проста. В прошивку собраны s.Bus декодер, PPM декодер и декодер ШИМ на 8 каналов. Для удобного вывода результатов на экран сделано примитивное меню. Стоит обратить внимание, что на шилде распаяны только задействованные контакты Arduino. Остальные я распаял сам и вывел в стороны для удобства подключения периферии.

На фото 2 комплекта этого устройства - в собраном и исходном вариантах. Так же тут 2 приемника, на которых я еще раз проверил прошивку перед выкладкой.

S.Bus декодер задействует последовательный порт Serial1. Инвертор для порта можно сделать как аппаратный на макетке, так и включить программный. Для этого в меню предусмотрены соответствующие кнопки. В случае использования программного инвертора сигнал с приемника подается на контакт SCL микроконтроллера. Контакт SDA замыкается перемычкой на Serial1->RX. В целом программный инвертор работает на порядок хуже аппаратного - много ошибок. В конечном устройстве я бы такое использовать не стал. Но если задача состоит в получении оценочных значений, то такого варианта вполне может быть достаточно. На экран выводятся значения - минимальное, текущее и максимальное - для каждого из 16 каналов. Единицы измерения - "попугаи" Футабы. На самом деле это половины микросекунд. Диапазон значений от 0 до 2048.

Для декодирования PPM сигнал с приемника (или аппаратуры) подается на вход D10 Arduino. Прошивка разбирает сигнал и выводит на экран значения минимума, максимума и текущее для каждого канала. Единицы измерения - микросекунды. Так же подсчитывается общее число передаваемых каналов, длина паузы между каналами в микросекундах и общая длина фрейма в миллисекундах.

Декодирование канальных импульсов производится для восьми каналов, подключенных к контактам A8:A15 Arduino. Для них так же подсчитывается в микросекундах текущее, минимальное и максимальное значения.

Исходники для Arduino IDE можно скачать по ссылке(MegaTest.rar) . В тонкости прошивки вдаваться не буду. Там нет ничего особенного. Будут вопросы - отвечу.

Постоянное размещение статьи: http://rc-master.ucoz.ru/publ/19-1-0-96