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

こんにちは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から給電されていたため、ラップトップのポートをほとんど焼いてしまいました。
しかし、幸いなことに、私の老人の保護は機能し、すべてが再起動であることが判明しました...

仕事のビデオ:


ご清聴ありがとうございました。
私の経験がお役に立てば幸いです。
じゃあね

Source: https://habr.com/ru/post/J219723/


All Articles