我正在使用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条导线,您需要翻转其中两条。切换哪个都没关系。完成此操作后,请确保螺旋桨的安装方向正确。 (如果您的设置不常见,请告诉我,我会在那里帮助您。)
关于java - 伺服电机旋转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36635521/