выполнение кода по команде с ШИМ

Тема в разделе "Закажу проект", создана пользователем Норайр Берберян, 13 май 2015.

  1. Перечитал весь форум, но не нашел ответ:
    Как начать выполнение кода по команде с ШИМ (например от сервотестера).
    Буду очень благодарен за помощь (в adruino абсолютный новичок).
     
  2. Vad33

    Vad33 Капитан-оригинал

    Что означает "по команде с ШИМ" ?
     
  3. Есть, например, сервотестер. При определеном его положении начинает выполняться программа.
    Я нашел только возможность отслеживания аналогова сигнала.
    Неужели нет возможности отловить цифровой? Или только с ЦАП?
     
  4. Vad33

    Vad33 Капитан-оригинал

    Опять же, что значит "отловить цифровой сигнал" ?
    В каком виде должен быть сигнал?

    Обычно серво приводы сделаны без обратной связи.
    То есть, подать команду на поворот можем, а вот отследить
    повернулась или нет - нужны дополнительные компоненты.
     
  5. Распишу подробнее:
    Есть квадрокоптер. На пульте есть 7й канал управления коптером. Это рычажок для изменения угла наклона камеры. Т.е. при подключении обычной сервы она отклоняется вслед за рычажком от 0 до 180 градусов.
    Как этот сигнал использовать для команды на ардуино? Например: в положении рычажка больше 50% (угол поворота сервы больше 90') выполнять код.
     
  6. Vad33

    Vad33 Капитан-оригинал

    Выполнять код для ардуины нужно на коптере или на пульте?

    Задача не примитивная, а все телепаты в отпуске.
    Думаю, нужно более расширенное описание ситуации,
    если, конечно, это не секретно. ;)
     
  7. Задача примитивная, но я, видимо, плохо объясняю.

    Я с пультом на земле. Коптер с ардуино в воздухе. В определенный момент надо выполнить код. Единственный способ передать команду на выполнение кода - использование канала управления сервоприводом.
    Вопрос: как по каналу управления сервоприводом дать команду ардуино?
     
  8. iglooshtosser

    iglooshtosser Гик

    Бредовый вариант: поставьте серву и концевик, концевик на цифровой пин. Серва при заданном угле (определяется установкой концевика) "нажимает кнопку".
    Другой бредовый вариант: вместо сервы RC-цепочку и на аналоговый пин. Показания АЦП R и C подобрать опытным путем, имея в виду что постоянная времени RC-цепочки должна быть больше периода сигнала ШИМ.
     
    volodixx нравится это.
  9. Megakoteyka

    Megakoteyka Оракул Модератор

    Наверное, можно попробовать ШИМ сгладить до аналогового сигнала и считывать его аналоговым входом (АЦП). При пересечении порога выполнять код. И гистерезис потолще.
     
  10. Vad33

    Vad33 Капитан-оригинал

    Проще аккуратно вскрыть серву и подпаять к контакту бегунка резистора провод
    для аналогового сигнала..
    Но для абсолютного новичка это тоже не вариант.
    Замкнутый круг.
     
  11. iglooshtosser

    iglooshtosser Гик

    Лучший вариант, имхо.
     
  12. X-Dron

    X-Dron Гик

    Ну, блин, я не знаю. Зачем все так сложно. Неужели все "писатели"?
    Посылки:
    1. на коптере - ардуино
    2. выполнить код [насколько я понимаю, на ардуино, который управляет сервой на коптере].
    Отсюда вытекает, что у автора есть исходник программы для ардуино коптера.
    Серва управляется командой analogWrite(ServoPin, angle);
    Что мешает сделать if (angle < 90) bla-bla-code();
     
    volodixx нравится это.
  13. Megakoteyka

    Megakoteyka Оракул Модератор

    Если серва будет использоваться только в качестве конвертера сигнала, то такой вариант не айс. Проще таскать кондер с резистором, чем целую сервы, результат все равно тот же будет.
     
    Последнее редактирование: 14 май 2015