繁体   English   中英

伺服电机旋转

[英]Servo motor rotation

我正在使用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根电线,您需要翻转其中两根电线。 你切换哪个都没关系。 执行此操作后,请确保螺旋桨处于正确的位置。 (告诉我,如果你有一个不常见的设置,我会从那里帮助你。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM