#arduino #motordriver
#arduino #motordriver
Вопрос:
У меня подключено 4 esc, и я хочу управлять ими с помощью SoftwareServo.
Я могу управлять ими с помощью сервопривода.h таким образом:
for(int i = 0; i < 4; i )
escS[i].attach(escPins[i]);
for(int i = 0; i < 4; i )
escS[i].write(180);
delay(2000);
for(int i = 0; i < 4; i )
escS[i].write(90);
delay(2000);
escS[0].write(0);
escS[1].write(0);
escS[2].write(0);
escS[3].write(0);
Я должен сделать это, чтобы инициализировать ESC, но я не могу добиться того же эффекта, используя SoftwareServo.h; Должно быть, я делаю что-то не так:
for(int i = 0; i < 4; i )
escSS[i].attach(escPins[i]);
for(int i = 0; i < 4; i )
escSS[i].write(180);
SoftwareServo::refresh();
delay(2000);
for(int i = 0; i < 4; i )
escSS[i].write(90);
SoftwareServo::refresh();
delay(2000);
escSS[0].write(0);
escSS[1].write(0);
escSS[2].write(0);
escSS[3].write(0);
Ответ №1:
Я смог решить эту проблему, включив ESC с помощью сервоприводов Servo.h, а затем отсоединив их и подключив SoftwareServo.h SoftwareServos к тем же esc и записав на них с этого момента.
Ответ №2:
Вам необходимо постоянно вызывать SoftwareServo::refresh() во время этих событий delay(). Приведенный здесь пример кода пропускает его на 2000 мс за раз.