【问题标题】:Servo motor rotation伺服电机旋转
【发布时间】:2016-04-14 23:03:48
【问题描述】:

我正在使用 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);
  }

现在,我不担心 arm 功能,因为它只是用于武装,不需要旋转,但是,它在启动电机功能中,我需要弄清楚如何让电机 m2 和 m3 旋转 Anti -顺时针。否则,四轴飞行器将在飞行中旋转,解决此问题将有助于保持四轴飞行器在停止时保持稳定。我希望这个修改足以让你理解并再次提前谢谢你。

【问题讨论】:

  • m2.write 和 m3.write 是需要逆时针旋转的两个电机。很抱歉没有具体说明。
  • 好吧。没有具体说明这是最不严重的事情。我的意思是,尝试在不了解您的系统的情况下阅读您的问题。你能明白些什么吗?我可以理解您想要做什么,但是.. 嗯,有很多可能的配置和大量可能的解决方案。我建议您编辑您的问题,至少说明您正在使用哪些电机和驱动器以及您使用哪个库来控制电机,因为每个库都可以有自己的指定方式。

标签: java arduino


【解决方案1】:

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

【讨论】:

  • 为了清楚起见,我说的是电调和电机之间的三相线,而不是连接到电调的伺服控制线。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多