Чтение длины импульсов с серво тестера
- Войдите на сайт для отправки комментариев
Пт, 07/12/2012 - 22:38
подскажите пожалуйста как можно считать длительность импульсов в мс с http://www.ebay.com/itm/multi-Servo-tester-3CH-ECS-speed-controler-tester-Power-CHANNELS-CCPM-meter-/280929965473?pt=US_Character_Radio_Control_Toys&hash=item4168bb15a1
или может кто подскажет как запустить бесколлекторный мотор при помощи ардуино? схема: мотор -> драйвер -> ардуино
мотор такой: http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=18233
на драйвер надо подавать pwm сигнал, вот только если просто подавать, он не хочет крутиться...
Используй библиотеку servo. регуль оборотов принимает точно такой же сигнал, как и серва.
если регуль фирмы хоббикинг, то при инициализации надо подать на него servo.write(0);
регуль хк, если не сложно напиши в чем проблема
только вот мотор дергает(сделает пару оборотов остановиться и по кругу) просто, а не крутит нормально.
если кому-то интересно, то решение нашел http://blog.mobileapes.com/2010/04/control-all-four-motors-from-arduino.html
Доброго времени суток !
Судя по Вашему исходному коду все правильно происходит.
Дело в том что сервой управляет ШИМ сигнал, его же Вы подаете на контроллер безколекторного двигателя. В этом случае он означает не угол а скорость. Теперь посмотрите не Ваш код:
функция loop() выполняется постоянно, в ней у Вас цикл от 0 до 90. Получается, что сигнал ШИМ у Вас меняется от 0 до 90, и повторяется с начала от 0 до 90. Таким образом двигатель должен раскручиваться до скорости 90 после чего останавливаться 0 и так далее.
Поробуйте убрать свой цикл (for) напишите myservo.write(90);delay(1000);
двигатель должен крутится
Очень вероятно что засада подкралась с другой стороны. Многи ESC контроллеры используются в авио/лодочном моделировании. И включать его обыкновенной подачей питания - опасно. Может руки порубить (на движке-то пропеллер сидит). А пульт управления может где-то валятся и в каком положении у него газ, в момент подключения аккума к модели, - не ведомо...
Поэтому большинство из них имеет защиту: при подаче пропаже/питания они входят в режим "заблокирован" и не реагируют на управляющий сигнал. Что-бы выйти из этого режима - нужно после включения, дать ему "полный газ" на секунду, две. И убрать его "чектко в ноль" (точно на какое время - лучше смотреть в даташите драйвера). Тогда он "очнется" (некоторые еще и пищат при этом, или наоборот "пищат" в заблокированном и перестают когда "инициализирвоали их").
Вообщем посмотрите как моделисты свои девайсы запускают: включают питание на вертолете, а потом делают рывок ручкой газа от НУЛЯ туда-обратно. И только после этого он начинает реагировать на газ. Сразу, после щелчка выключателем ON, крутить винты будут только самые дешовые одноразоывые модельки.
Контроллеры хоббикинга инициируются при подаче шим любой частоты. если включить его с максимально поднятой ручкой газа, то он перейдет в режим программирования.
если при включении ESC ручка газа будет где-то посередине или включить пульт (подать сигнал от ардуины) после включения ESC, то он будет считать минимальным значением вращения мотора положение стика равное 90 градусов (он будет крутиться только если ручку на пульте передвинуть выше половины).
при запуске любых моделек необходимо включать пульт до подачи питания на саму модель. думаю, что с ардуиной надо делать так же.
Чуток гугланул, есть ESC-шки которые "выводятся из спячки" не "полный газ на 2 сек", а наоборот "держим четко ноль 3 секунды".
Вообщем точный ответ желательно в доке на ваш драйвер двигателя искать.
Ну либо "методом научного тыка".
Попробуйте в setup(), после myservo.write(0); добавить delay(3000);
И только потом что-то пытаться его крутить "куда нужно".
регули работаю как обычные сервы
По мне так просто поставить на аналоговый вход Arduino переменный резистор для управления ШИМ, и уже потом выявлять как разблокировать ESC.
У меня регулятор запускается в положении примерно 20% от нуля ( тк меньше реверс мотора) . При этом мотор неподвижен, а регуль играет на обмотках веселую мелодию. После этого можно прибавлять , и мотор начинает крутиться. Если ноль не пойман, регулятор мотор не крутит ни при каких положениях ( значениях) шим, и выдаёт на обмотки короткие пачки импкльсов, слышимые как периодический писк.
поставьте потенциометр на аналоговых вход и примените пример из библиотеки серво. Подав питание постепенно выводите из нуля потенциометр и, в какой то момент услышите от мотора "тарарарам. Пам. Пам. Пампам" или что то вроде этого. После этого мотор начнет вращаться вслед за потенциометром.