我正在研究一个使用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逆时针旋转。否则,四轴飞行器将在飞行中旋转,这个问题的解决将有助于保持四轴飞行器的稳定。我希望这一修改足以让您理解,并再次提前感谢您。
发布于 2016-04-16 08:54:42
你的问题不在于arduino方面,而在于你如何连接你的马达。你的马达和你的ESCs之间会有3根电线,你需要翻转其中的两根电线。你换哪一个并不重要。这样做之后,确保螺旋桨在正确的方向上。(如果您有不常见的设置,请告诉我,我将从那里帮助您。)
https://stackoverflow.com/questions/36635521
复制相似问题