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