伺服电机旋转

时间:2016-04-14 23:03:48

标签: java arduino

我正在使用Arduino制作四轴飞行器。我一直在努力弄清楚如何让电机逆时针方向旋转,我遇到了很多麻烦。我目前有四轮直升机电机顺时针旋转,但这导致四轮直升机在飞行过程中无法控制地旋转。我正在使用的代码如下所示,我们非常感谢您对上述问题的任何帮助。提前致谢。

我使用的图书馆是:

#include <Servo.h>

这些引脚像这样连接到Arduino Uno。

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

我打电话给这里显示的手臂功能:

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旋转反 - 顺时针。否则,四轴飞行器将在飞行中旋转,这个问题在解决时将有助于使四轴飞行器保持稳定在左侧。我希望这个修改足以让你理解并再次感谢你。

1 个答案:

答案 0 :(得分:0)

你的问题不在于arduino方面,而在于你如何连接电机。您的电机将在它们与您的ESC之间连接3根电线,您需要翻转其中两根电线。你切换哪个都没关系。执行此操作后,请确保螺旋桨处于正确的位置。 (告诉我,如果你有一个不常见的设置,我会从那里帮助你。)