ホーム / ニュース / 業界ニュース / Arduino を使用した BLDC モーター: 配線、コード、制御ガイド
業界ニュース
私たちの足跡は世界中に広がります。
私たちはお客様に高品質の製品とサービスを提供します 世界中から。
製品カテゴリー

Arduino を使用した BLDC モーター: 配線、コード、制御ガイド

ESC を使って Arduino で BLDC モーターを制御する方法

Arduino は、BLDC モーターの 3 相を直接駆動することはできません。電流容量も整流ロジックも組み込まれていません。その仕事は、Arduino とモーターの間にある ESC (電子スピード コントローラー) が担当し、単純な PWM 信号を、実際にローターを回転させる時間指定された 3 相スイッチングに変換します。

Arduino の観点から見ると、ESC は標準的な RC サーボとまったく同じように見えます。約 1000 ~ 2000 マイクロ秒のパルスが 20 ミリ秒ごとに繰り返されることが予想され、パルス幅はスロットル位置に対応します。だからこそ同じ サーボライブラリ 趣味のサーボに使用されるサーボが ESC 制御に機能します。Arduino はモーターとはまったく通信せず、実際の整流を処理する ESC のオンボード マイクロコントローラーと通信します。

ESC経由でArduinoをBLDCモーターに配線する

3 本の太いモーター ワイヤは、BLDC モータから ESC の 3 相出力に直接接続します。2 本のワイヤを交換すると回転が逆になるだけなので、この段階ではコネクタの順序は方向に関係ありません。モーター電源 (通常はモーターの定格電圧に適合した LiPo バッテリー) は、Arduino ではなく ESC の入力リードに接続されます。

信号側はよりシンプルです。Arduino デジタル ピンから ESC の信号入力までの 1 本の PWM ワイヤと、Arduino と ESC の間の共有グランドです。ほとんどの ESC には、その信号コネクタに BEC (バッテリーエリミネーター回路) が組み込まれており、安定化された 5V を Arduino に供給します。つまり、ESC の BEC 出力が Arduino の消費電流に対して定格されている限り、通常、ボード用の別個の電源は必要ありません。

基本的な速度制御用の Arduino コード

配線がしっかりしているのでコード自体も短くなります。 Servo ライブラリは ESC をサーボ モーターのように扱い、速度はライブラリが角度に使用するのと同じ 0 ~ 180 の範囲にマップされます。

  • を使用して ESC 信号ピンを接続します。 ESC.attach(9, 1000, 2000) 、パルス幅範囲を明示的に設定
  • 手動速度制御のためにアナログピンのポテンショメータを読み取る
  • 0 ~ 1023 のアナログ読み取り値を ESC が予期する 0 ~ 180 の範囲にマッピングします。
  • そのマップされた値を次のように書き込みます ESC.write(速度) メインループ内

このパターンが機能するのは、「 Arduino サーボ ライブラリ リファレンス では、ライブラリが依存するパルス タイミングとピンの制限について説明します。

ESC の設定と調整

ほとんどの ESC は、電源投入後すぐにモーターを回転させません。通常、始動後 1 ~ 2 秒間スロットル信号を最小に保持することによってトリガーされるアーミング シーケンスを最初に期待します。このステップをスキップすると、モーターが電源投入時に短時間始動してその後停止するように見える最も一般的な理由が考えられます。ESC は、コマンドを受け入れる前に有効なロースロットル信号を待っています。

キャリブレーションにより、ESC が認識する最小および最大パルス幅が、Arduino が実際に送信するものと一致するように設定されます。スロットル信号がすでに最大になっている状態で ESC に電力を供給し、確認のビープ音が鳴るのを待ってから、最小値に下げて再度待ちます。これにより、ポテンショメータのマッピング範囲と一致しない可能性がある工場出荷時のデフォルトに依存するのではなく、コードが生成する正確なエンドポイントが ESC に教えられます。

センサー付き BLDC とセンサーレス BLDC: Arduino のセットアップが変わる理由

上記のすべては、センサーレス BLDC モーターと既製の ESC の組み合わせを前提としています。これは最も一般的な愛好家のセットアップであり、ほとんどのチュートリアルがデフォルトでこれを使用する理由です。 ESC は、電力が供給されていない段階で生成される逆起電力からローターの位置を検出します。これは、モーターが回転するとうまく機能しますが、ESC が BEMF タイミングをロックする前に、モーターには短い開ループの起動ランプが必要であることを意味します。

センサー付き BLDC モーターには 3 つのホール効果センサーが追加されており、回転数がゼロの場合でもローターの位置を直接報告します。これにより、起動ランプがなくなり、よりスムーズな低速制御が可能になりますが、同時に、ESC またはコントローラーにホール センサー入力が必要になることも意味します。通常のセンサーレス ESC には、ホール センサー用の配線がまったくありません。プロジェクトで正確な低速トルクや頻繁な起動と停止が必要な場合は、最初からセンサー付きモーターとホール互換コントローラーを調達することで、後で制御セットアップをやり直す必要がなくなります。

R5 Fast response Brushless DC Motor Controller

Arduino プロトタイプから量産グレードのモーター制御まで

PWM 駆動の ESC は、コンセプトを証明するための適切なツールです。安価で、十分に文書化されており、構成ソフトウェアは必要ありません。しかし、実際の限界もあります。Arduino への電流フィードバックがなく、最小限の保護ロジックがあり、トルク制御、閉ループ速度調整、または障害報告が必要になるとうまく拡張できない 1000 ~ 2000 マイクロ秒のパルス ウィンドウに関連付けられた制御分解能です。

プロジェクトがプロトタイピングを経て実際の製品に移行する場合、通常の次のステップは、単一の PWM ラインではなくデジタル バスを介して通信するコントローラーです。 量産モーター コントローラーの構成に使用される UART-TTL デバッグ インターフェイス ここでは Arduino シリアル モニターと同様の役割を果たします。パルス幅のみから推測するのではなく、パラメーターを読み取り、動作を直接調整できます。

ホビー ESC が増えすぎたチームの場合、 APTのCANバスプログラマブルBLDCモーターコントローラーへのエントリーポイント 基本的な ESC では公開されない種類の構成可能な電流制限と診断を提供します。ロボットアーム、作動機構、負荷が急速に変化するものなど、より厳密な応答を必要とするアプリケーションには、 リアルタイム閉ループアプリケーション向けに構築された高速応答 BLDC コントローラー オープンループのホビー ESC ではありません。

コントローラーとモーターの仕様は、電圧、電流、ホールセンサーの互換性に関して調整する必要があるため、検討する価値があります。 ドライブ電子機器をモーターの仕様に適合させるためのコントローラーとモーターのペアリングのガイダンス 本番稼働のためにハードウェアをコミットする前に。それも理解する価値がある ソフトウェア層が現代のモーター制御をどのように再構築しているか というのは、ファームウェア レベルのチューニングが、優れた実稼働コントローラーと単なる適切なコントローラーを分けるものになることが増えているからです。



協力に興味がありますか、それとも質問がありますか?