[英]Servo motor rotation
我正在使用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根电线,您需要翻转其中两根电线。 你切换哪个都没关系。 执行此操作后,请确保螺旋桨处于正确的位置。 (告诉我,如果你有一个不常见的设置,我会从那里帮助你。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.