我正在使用Arduino开发四轴飞行器控制器。尝试弄清楚如何使我的电动机沿逆时针方向旋转时,我遇到了很多麻烦。我目前有四旋翼飞机的电动机顺时针旋转,但这导致四旋翼飞机在飞行过程中无法控制地旋转。我正在使用的代码显示在下面,对上述问题的任何帮助将不胜感激。提前致谢。

我正在使用的库是:

#include <Servo.h>


引脚以这种方式连接到Arduino Uno。

  m1.attach(4);
  m2.attach(6);
  m3.attach(8);
  m4.attach(9);


我调用这里显示的arm函数:

arm();


哪个调用此代码:

void arm() {
    // arm the speed controller, modify as necessary for your ESC
    setSpeed(0);
    delay(1000); //delay 1 second,  some speed controllers may need longer
  }


这是这里的代码,然后启动电动机:

 void startMotors()
  {
     speed = 40;
     setSpeed(speed);

    Serial.println("Motor Speed: " + speed);
    motorsOn = true;
  }


如图所示,在arm和startmotors函数中都调用SetSpeed方法。

void setSpeed(int speed) {
    // speed is from 0 to 100 where 0 is off and 100 is maximum speed
    //the following maps speed values of 0-100 to angles from 0-180,
    // some speed controllers may need different values, see the ESC instructions
    int angle = map(speed, 0, 100, 0, 180);
    m1.write(angle);
    m2.write(angle);
    m3.write(angle);
    m4.write(angle);
  }


现在,我不担心手臂功能,因为它仅用于布防并且不需要旋转,但是在启动电动机功能时,我需要弄清楚如何使电动机m2和m3逆时针旋转。否则,四轴飞行器将在飞行中旋转,解决该问题将有助于使四轴飞行器保持稳定。希望此修改足以让您理解,并再次感谢您。

最佳答案

您的问题不在于事物的arduino方面,而在于您如何连接电动机。您的电动机和ESC之间将有3条导线,您需要翻转其中两条。切换哪个都没关系。完成此操作后,请确保螺旋桨的安装方向正确。 (如果您的设置不常见,请告诉我,我会在那里帮助您。)

关于java - 伺服电机旋转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36635521/

10-12 18:05
查看更多