Перечитал весь форум, но не нашел ответ: Как начать выполнение кода по команде с ШИМ (например от сервотестера). Буду очень благодарен за помощь (в adruino абсолютный новичок).
Есть, например, сервотестер. При определеном его положении начинает выполняться программа. Я нашел только возможность отслеживания аналогова сигнала. Неужели нет возможности отловить цифровой? Или только с ЦАП?
Опять же, что значит "отловить цифровой сигнал" ? В каком виде должен быть сигнал? Обычно серво приводы сделаны без обратной связи. То есть, подать команду на поворот можем, а вот отследить повернулась или нет - нужны дополнительные компоненты.
Распишу подробнее: Есть квадрокоптер. На пульте есть 7й канал управления коптером. Это рычажок для изменения угла наклона камеры. Т.е. при подключении обычной сервы она отклоняется вслед за рычажком от 0 до 180 градусов. Как этот сигнал использовать для команды на ардуино? Например: в положении рычажка больше 50% (угол поворота сервы больше 90') выполнять код.
Выполнять код для ардуины нужно на коптере или на пульте? Задача не примитивная, а все телепаты в отпуске. Думаю, нужно более расширенное описание ситуации, если, конечно, это не секретно.
Задача примитивная, но я, видимо, плохо объясняю. Я с пультом на земле. Коптер с ардуино в воздухе. В определенный момент надо выполнить код. Единственный способ передать команду на выполнение кода - использование канала управления сервоприводом. Вопрос: как по каналу управления сервоприводом дать команду ардуино?
Бредовый вариант: поставьте серву и концевик, концевик на цифровой пин. Серва при заданном угле (определяется установкой концевика) "нажимает кнопку". Другой бредовый вариант: вместо сервы RC-цепочку и на аналоговый пин. Показания АЦП R и C подобрать опытным путем, имея в виду что постоянная времени RC-цепочки должна быть больше периода сигнала ШИМ.
Наверное, можно попробовать ШИМ сгладить до аналогового сигнала и считывать его аналоговым входом (АЦП). При пересечении порога выполнять код. И гистерезис потолще.
Проще аккуратно вскрыть серву и подпаять к контакту бегунка резистора провод для аналогового сигнала.. Но для абсолютного новичка это тоже не вариант. Замкнутый круг.
Ну, блин, я не знаю. Зачем все так сложно. Неужели все "писатели"? Посылки: 1. на коптере - ардуино 2. выполнить код [насколько я понимаю, на ардуино, который управляет сервой на коптере]. Отсюда вытекает, что у автора есть исходник программы для ардуино коптера. Серва управляется командой analogWrite(ServoPin, angle); Что мешает сделать if (angle < 90) bla-bla-code();
Если серва будет использоваться только в качестве конвертера сигнала, то такой вариант не айс. Проще таскать кондер с резистором, чем целую сервы, результат все равно тот же будет.