Для сервопривода непрерывного вращения DS04-NFC нужно использовать такие импульсы:
- вращение против часовой стрелки — 1 мс;
- останов вращения — 1.5 мс;
- вращение по часовой стрелки — 2 мс;
Вот так работает, но мне нужно без delay()
Мне delay() всю программу тормозит
#include <Servo.h>
Servo motor;
void setup() {
motor.attach(9); // Подключение сервопривода к пину 9
}
void loop() {
motor.attach(9); // Подключение сервопривода к пину 9
motor.write(-80); // Повернуть на 80 градусов
delay(1000);
motor.write(80);
motor.detach(); // Подключение сервопривода к пину 9
delay(1000);
}
«Шило, мочало - начинаем сначала»???
Сервопривод непрерывного вращения — это тип сервопривода, вал которого может вращаться бесконечно, а не только в определённом диапазоне, как у обычных сервоприводов. Он фактически представляет собой небольшой мотор в корпусе сервопривода, управляемый с помощью ШИМ-сигнала (широтно-импульсной модуляции), который задаёт скорость и направление вращения вместо положения вала.
И? Ты не читаешь что тебе пишут?
Читаю
Ну а что тогда «из пустого в порожнее»?
Вот такой код какой результат даёт?
#include <Servo.h>
Servo motor;
void setup() {
motor.attach(9); // Подключение сервопривода к пину 9
motor.write(-80); // Повернуть на 80 градусов
motor.writeMicroseconds(1500); // Остановить сервопривод
}
void loop() {
}
Сервопривод стоит
Ну и? Ты этого же хотел?
Аттачи все убери в loop(), а вместо дэтача используй врайтМикросекондс(1500).
Пробуй, потом расскажешь. Эх, молодёжжж )))
Сначала он повернулся на 80 градусов, остановился, потом начал бесконечно крутиться
#include <Servo.h>
Servo motor;
void setup() {
motor.attach(9); // Подключение сервопривода к пину 9
}
void loop() {
motor.write(80); // Повернуть на 80 градусов
motor.writeMicroseconds(3000);
motor.write(80);
motor.writeMicroseconds(3000);
}
А нахуа ты вместо 1.5мс
Запердолил 3мс ???
Это тебе не каша. Я сомневаюсь, что ты:
Так он вообще не крутиться
#include <Servo.h>
Servo motor;
void setup() {
motor.attach(9); // Подключение сервопривода к пину 9
}
void loop() {
motor.write(80); // Повернуть на 80 градусов
motor.writeMicroseconds(1500);
motor.write(80);
motor.writeMicroseconds(1500);
}
Бл#ть, я сдаюсь. Ну написал же:
Что не понятного?
А если не заработает «с наскока», придётся менять логику работы с сервоприводом…
На кой?
не тоже самое, что и myServo.write(0); ?
Непробиваемый ![]()
Так я всё сделал как Вы сказали
Я хз сколько оно шлёт при врайт (0), а так точно наглядно видно и понятно (и соответствует требованиям сервы).
А накой они там нужны, если он не будет делать дэтача? Один раз в сетапе аттач сделал и хватит…))
Ииии? Своё сообщение то прочитайте ![]()
Что не так? Скопируй, я не понимаю на что ты намекаешь…
Аттачи все убери в loop(),
Один раз в сетапе аттач сделал и хватит
![]()