ブラシレスモーター、紳士を運転します

こんにちはKhabrovchane!

プロジェクトを構築するときに遭遇した問題と、それをどうやって解決したかについて「全世界」に伝えることにしました。



今日は、ブラシレスモーター、ストロークコントローラー、およびそれらの制御方法について説明します。

ブラシレスモーターとは何ですか、私は長い間ペイントしません( Wikiを自分で見ることができます)が、2語で言うと、これは3相DCモーターです。



そして、この奇跡は、特定の周波数で巻線を連続的に切り替える特別なレギュレーターのおかげで動き始めています。

巻線のスイッチング周波数を制御することにより、ローターの速度を制御します。

さて、ここですべてが明確になっていることを願っています。



最初の問題

2セットのエンジン+レギュレーターが購入され、約1か月待ってから来ました。

画像



私はこの機会に無制限の楽しみの攻撃に押されましたが、残念なことに、それは長くは続きませんでした....

これらの技術の奇跡を調べた後、私はそれらを電源に接続し、最初の失望、静かな飛び出し(短絡など)と静寂、LEDは点灯せず、きしみはありません(そしてそうするべきです)、レギュレーターでクーラーだけが回転しています、トラブル...

私は最も近いホビー店に走りました、そして、良いコンサルタントは評決を出しました:それは燃え尽きました!



2番目の同じ話で、一般的に、男は不運で、両方とも欠陥がありました...

まあ、少なくとも猫は嬉しかったです:



画像



分岐して、両方のセットの価格でレギュレーターを購入しなければなりませんでした(時間が不足していました)。

買って、繋がって、すべてがビープ音を鳴らし、火傷し、動作し、まさに魂が喜びます! (写真で強調表示されています):



画像



問題番号2

ここで、エンジンをオンにします。

そして、あなたはサーボテスターやラジオコントロールアプリからではなく、マイクロコントローラから、またはそのようなスカーフからひねる必要があります:

画像



たくさんのサイトを掘り下げ、何百ものフォーラムを読み直し、私の質問への回答を読んだ後、このレギュレーターをどのように制御できますか?「...おい、簡単なPWMがあります...」、「...あなたを助けるPWM ...」

まあPWM、そうPWM。

私は簡単なプログラムを書きました:

#include <Servo.h> Servo motor; int mot_pin = 7; //     7 int js_position = 800; int max_position = 3000; void setup() { motor_teft.attach(mot_pin, js_position, max_position); //  } void loop() { motor.write(1800); //      }
      
      







感情ゼロで満たされ......



彼はレギュレータが保護されているというランダムなポストに出くわすまで2日間戦い、PWM信号が入力1.5 msに供給されたときにのみ機能を開始します。

できた



次に、ADCを介して通常の抵抗を取り出し、実験的にPWMコントローラーの極値を取り出しました。

結果のコードは次のとおりです。



 #include <Servo.h> Servo motor_teft; Servo motor_right; int mot_pin_left = 7; //     7 int mot_pin_right = 8; //     8 int js_position = 1500; // ,  1.5      int max_position = 2300; //   2.3  int min_position = 800; //   0.8  int start = 1; //   void setup() { motor_teft.attach(mot_pin_left, js_position, max_position); //   (,  ,  ) !!! motor_right.attach(mot_pin_right, js_position, max_position); //   (,  ,  ) !!! } void loop() { //      if(start == 1) { motor_teft.write(js_position); motor_right.write(js_position); delay(700); start = 0; } js_position = analogRead(A0); //   js_position = map(js_position, 0, 1023, 75, 140); //      motor_left.write(js_position); //        motor_right.write(js_position); //        delay(20); //  20  }
      
      







そしてそれは働いた。

今、すべてが回転し、騒々しく、ビープ音を鳴らし、ただ幸せです。

PSこれは、2つのエンジンを一度に制御するためのコードです。



そして最後の問題、栄養...

ここで少し説明します。つまり、コントローラーからは3本のワイヤーがあります。

画像



中央ブロック、順番に、 黒-マイナス、赤-プラス、白-制御ワイヤ



そして、キャッチは、サーボとは異なり、これらは電源入力ではなく、出力、つまりです。 それらから食べます。

なぜこれを行っているのか、さらにレギュレーターをサーボとして接続しただけで、その時点でボードはUSBから給電されていたため、ラップトップのポートをほとんど焼いてしまいました。

しかし、幸いなことに、私の老人の保護は機能し、すべてが再起動であることが判明しました...



仕事のビデオ:





ご清聴ありがとうございました。

私の経験がお役に立てば幸いです。

じゃあね



All Articles