私はArduinoを使用してquadcopterのフライトコントローラで作業しています。私は自分のモーターを反時計回りに回転させる方法を見つけようと多くの苦労をしてきました。私は現在、クワッド・ヘリコプター・モーターを時計回りに回転させていますが、これによりクワッド・ヘリコプターは飛行中に制御不能に回転します。私が使用しているコードは以下に表示されています。上記の問題のヘルプは非常に高く評価されます。前もって感謝します。サーボモータの回転
私が使用しているライブラリは次のとおりです。
#include <Servo.h>
ピンは、このようなArduinoの宇野に添付されています。
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;
}
示されているように、SetSpeedメソッドはinvアームとスタートモーターの両方で機能します。さて、それはちょうどアーミングと回転させないために使用されているので、私は心配していないですアーム機能は必要なく、その開始モーター私はモータM2を取得する方法を見つけ出す必要がある機能と立方メートルでさ
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);
}
反時計回りに回転します。さもなければ、quadcopterは飛行中に回転します。この問題を解決すると、quadcopterを安定した状態に保ちます。私はこの変更があなたに理解し、前もってあなたに感謝するのに十分であることを願っています。
m2.writeとm3.writeは、反時計回りに回転する必要がある2つのモーターです。これを指定しないと申し訳ありません。 – user3107619
それが最も厳しいものではないと指定していない。つまり、あなたのシステムについて何も知らずに質問を読んでみてください。何かを理解できますか?私はただあなたがしたいことを理解することができますが、まあ、可能な構成とトンの可能な解決策がたくさんあります。私はあなたの質問を編集することをお勧めします。少なくとも、どのモーターとドライバーを使用しているか、どのライブラリーをモーターの制御に使用しているかは、各ライブラリーが独自の方法で指定できるためです。 – frarugi87