0

我连接了 4 个 esc,我想使用 SoftwareServo 控制它们。

通过这样做,我可以使用 Servo.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);
4

2 回答 2

0

我能够通过使用 Servo.h 伺服系统武装 ESC,然后将它们分离并将 SoftwareServo.h SoftwareServos 连接到相同的 esc 并从那时起写入它们来解决这个问题。

于 2014-07-10T02:14:56.023 回答
0

您需要在这些 delay() 事件期间不断调用 SoftwareServo::refresh()。此处的代码示例一次跳过它 2000 毫秒。

于 2016-08-24T10:42:25.620 回答