我正在使用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旋转反 - 顺时针。否则,四轴飞行器将在飞行中旋转,这个问题在解决时将有助于使四轴飞行器保持稳定在左侧。我希望这个修改足以让你理解并再次感谢你。
答案 0 :(得分:0)
你的问题不在于arduino方面,而在于你如何连接电机。您的电机将在它们与您的ESC之间连接3根电线,您需要翻转其中两根电线。你切换哪个都没关系。执行此操作后,请确保螺旋桨处于正确的位置。 (告诉我,如果你有一个不常见的设置,我会从那里帮助你。)