Сервоприводы Feetech SCS
- Войдите на сайт для отправки комментариев
Кто-нибудь имел дело с сервами Feetech серии SCS? я пытаюсь запустить в связке с ArduinoDue. Пока что использую тестовую программу с последовательностью команд для 2 сервоприводов:
SERVO.WritePos(1, 1023, 2000); SERVO.WritePos(2, 1023, 2000); delay(3000); SERVO.WritePos(1, 20, 2000); SERVO.WritePos(2, 20, 2000); delay(3000);
и это работает глючно: работает только первый привод, второй не работает
SERVO.WritePos(1, 1023, 2000);
SERVO.WritePos(2, 1023, 2000);
delay(3000);
SERVO.WritePos(1, 20, 2000);
SERVO.WritePos(2, 20, 2000);
delay(3000);
если же добавить делей между командами
SERVO.WritePos(1, 1023, 2000); delay(10); SERVO.WritePos(2, 1023, 2000); delay(3000); SERVO.WritePos(1, 20, 2000); delay(10); SERVO.WritePos(2, 20, 2000); delay(3000);
то все работает как надо: оба привода синхронно двигаются (ну естественно с делеем 10 милисекунд, который на глаз не заметен)
SERVO.WritePos(1, 1023, 2000);
delay(10);
SERVO.WritePos(2, 1023, 2000);
delay(3000);
SERVO.WritePos(1, 20, 2000);
delay(10);
SERVO.WritePos(2, 20, 2000);
delay(3000);
если поставить delay от 1 до 9 милисекунд, то в принципе тоже работает, но чем он меньше, тем больше вероятность того, что какой-то из приводов пропустит свое движение
соединение у меня 1000000 бод, пробовал и меньше - та же петрушка
вопрос: можно ли заставить все команды выполняться без делея между ними?
или хотя бы с минимально возможным?
например такой код не помогает:
while (!Serial2.available()) { delay(1); }
Сервы управляются шириной импульса. В принципе, можно сделать так, чтобы импульсы, формируемые Ардуиной, перекрывались, но это не так просто, т.к. нужно точно обеспечить их длительность.
Но, вообще говоря, библиотека SERVO делает еще много чего. Так что, если хотите добиться одновременной работы или, по крайней мере, уменьшения задержки, сначала научитесь управлять сервами без библиотеки.
я специально указал модель сервы:)
эти сервы управляются не через PWM, это "умные" сервы, управляющиеся через TTL, а для связки с Arduino используестя UART-TTL конвертор
https://feetechrc.en.alibaba.com/product/60602757946-221087045/Feetech_S...
Здравствуйте! Прочитал ваш пост, стало интересно. Дело в том, что у меня есть серво SCS и FE URT - 1. Но подключить эти серво к Arduino Mega не получается. К компьютеру подключить могу, через FD debug, в программе их покрутить. Но когда подключаю Arduino - FE URT - 1 - servo SCS, ничего не происходит. Возможно я не правильно подключаю. Подключаю через tx/rx, использую библиотеку SCServo.h но все равно ничего. Можете помочь?