工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

このチュートリアルでは、Arduino と ESC を使用してブラシレスモーターを制御する方法を学びます。BLDC モーターの仕組みについてより詳細を知りたい場合は、他の記事をご覧いただくか、ブラシレスモーターの動作原理と Arduino および ESC を使用した制御方法の説明を含む以下の動画をご覧ください。

概要

この例では、以下の仕様を持つアウトランナー BLDC モーターを使用します:KV レーティング 1000、2S、3S、または 4S の LiPo バッテリーで駆動可能、30A ESC が必要。ブラシレスモーターの KV レーティングは、無負荷時のボルトあたりのモーター RPM を定義します。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

この場合、1000KV は、例えば 7.4 ボルトの 2S LiPo バッテリーを供給すると、モーターは 7.4 × 1000 = 7400 RPM の最大回転数を達成できることを意味します。

ブラシレスモーターは電力を大量に消費し、最も一般的な給電方法は LiPo バッテリーを使用することです。LiPo バッテリーの「S」数は電池のセル数を示し、各セルの電圧は 3.7V です。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

この例では、3 セルで 11.1V の 3S LiPo バッテリーを使用します。したがって、モーターは最大 11100 RPM に達すると予想されます。

最後に、この例で使用するモーター要件に合致する 30A ESC です。ESC の片側にはモーターの 3 相を制御する 3 本のワイヤーがあり、もう片側には電源用の VCC と GND の 2 本のワイヤーがあります。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

ESC からもう 1 組の 3 本のワイヤーが出ています。これは信号線、+5V、グラウンドです。この ESC の機能は Battery Eliminator Circuit(バッテリー除去回路)と呼ばれ、名前の通りマイクロコントローラー用の別バッテリーの必要性を排除します。この機能により、ESC は Arduino に電力を供給するために使用できる制御された 5V を提供します。

この接続がサーボモーターで見られるものと同じであることに気づくでしょう。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

したがって、ESC と Arduino を使用したブラシレスモーターの制御は、Arduino を使用したサーボの制御と同じくらいシンプルです。ESC はサーボと同じタイプの制御信号、つまり標準的な 50Hz PWM 信号を使用します。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

これは非常に便利です。例えば RC 飛行機を作る場合、通常サーボとブラシレスモーターの両方が必要ですが、この方法では同じタイプのコントローラーで簡単に制御できます。

Arduino を使用して 50Hz PWM 信号を生成し、パルス幅またはハイ状態の持続時間(1 ミリ秒から 2 ミリ秒の範囲で変化)に応じて、ESC がモーターを最小から最大 RPM まで駆動します。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

Arduino ブラシレスモーター制御 – 回路図

この例の回路図です。ESC に加えて、モーター速度制御用のシンプルなポテンショメータを使用します。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

この Arduino チュートリアルに必要なコンポーネントは以下のリンクから入手できます:

  • ブラシレスモーター
  • ESC 30A
  • Li-Po バッテリー
  • Arduino ボード
  • ポテンショメータ
  • ブレッドボードとジャンパワイヤ

BLDC モーター制御 Arduino コード

Arduino コードはわずか数行で非常にシンプルです。

/* Arduino Brushless Motor Control by Dejan, https://howtomechatronics.com */
#include <Servo.h>
Servo ESC; // ESC 制御用サーボオブジェクトを作成
int potValue; // アナログピンからの値

void setup() {
  // ピン 9 に ESC を接続
  ESC.attach(9, 1000, 2000); // (ピン, 最小パルス幅, 最大パルス幅(マイクロ秒))
}

void loop() {
  potValue = analogRead(A0); // ポテンショメータの値を読み取り(0〜1023 の間)
  potValue = map(potValue, 0, 1023, 0, 180); // サーボライブラリで使用するため 0〜180 にスケーリング
  ESC.write(potValue); // ESC に信号を送信
}

説明: Servo ライブラリを定義する必要があります。これにより、Arduino が生成する PWM 信号が異なる周波数であるのに対し、50Hz PWM 信号を簡単に生成できます。次に ESC 制御用のサーボオブジェクトを作成し、ポテンショメータからのアナログ入力を格納する変数を定義します。setup では、attach() 関数を使用して ESC の制御信号が接続されている Arduino ピンを定義し、PWM 信号の最小・最大パルス幅をマイクロ秒で定義します。

loop では、まずポテンショメータを読み取り、その値を 0〜1023 から 0〜180 の値にマッピングします。その後、write() 関数を使用して ESC に信号を送信、つまり 50Hz PWM 信号を生成します。0〜180 の値は、setup で定義した 1000〜2000 マイクロ秒の値に対応します。

このコードを Arduino にアップロードし、バッテリーを使用してすべてに電源を供給すると、ポテンショメータを使用してブラシレスモーターの速度をゼロから最大まで制御できます。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

ただし、ここにいくつか注意点があります。モーターに最初に電源を投入する際、信号値は最小値の 1 ミリ秒と同じかそれ以下でなければなりません。これは ESC のアーミングと呼ばれ、モーターが確認のビープ音を鳴らして正しくアーミングされたことを知らせます。電源投入時に値が高い場合、つまりスロットルアップしている場合、正しい最小値までスロットルダウンするまで ESC はモーターを起動しません。これは安全性の観点から非常に便利で、電源投入時にスロットルアップしている場合、モーターが勝手に起動することはありません。

ESC キャリブレーション

最後に、ESC キャリブレーションの仕組みを説明します。すべての ESC には独自のハイポイントとローポイントがあり、それらはわずかに異なる場合があります。例えば、ローポイントが 1.2 ミリ秒、ハイポイントが 1.9 ミリ秒の場合があります。そのような場合、スロットルは最初の 20% では何もしません。ローポイント値の 1.2 ミリ秒に達するまで反応しないためです。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

この問題を解決するには、ESC をキャリブレーションする、つまりハイポイントとローポイントを望み通りに設定できます。そのためには、ESC に電源を投入する前に、まずポテンショメータを最大または現在の中間点より大きい値にスロットルアップさせます。その後 ESC に電源を投入し、モーターからいくつかのビープ音が聞こえます。これは新しいハイポイントが設定されたことを確認するものです。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

その後 2 秒後に、ポテンショメータを新しいローポイントにしたい位置に動かします。再び確認のビープ音が鳴り、ESC キャリブレーションが完了します。これでスロットルは即座に反応し、この新しい 2 点の間でモーターを制御できます。

このチュートリアルは以上です。Arduino ブラシレスモーター制御をワイヤレスで行う方法を知りたい場合は、Arduino ベースの RC 送信機を作成し、それを使用して BLDC モーターを制御する方法を説明した前の動画をご覧ください。

Arduino、ESC、BLDC でブラシレスモーター制御をマスター:ステップバイステップチュートリアル

このチュートリアルを楽しんでいただき、新しいことを学んでいただけたなら幸いです。質問があれば下のコメント欄で自由にお尋ねください。また、私の Arduino プロジェクトコレクションもお忘れなくチェックしてください。

製造プロセス

  1. Arduinoで作るセキュアなRFIDロック – ステップバイステップガイド
  2. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  3. Arduino電源制御センター:N-FET/P-FET/リレー/RTC搭載キット
  4. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  5. Arduino UNOで作る完全自律ライントラッカーロボット ─ 入門に最適な自作キット
  6. DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
  7. Arduino Mega 2560搭載 総合トレーニングキット – センサー、モーター、カスタムPCB完備
  8. Arduino Nanoと指紋センサーで作るバイオメトリクス認証システム – 完全チュートリアル
  9. Arduino初心者チュートリアル01: 最初のプロジェクトを始めよう
  10. BLDCモーター(ブラシレスDCモーター)のトルク特性・制御・ロボット・リニアモーターへの展開
  11. BLDCモーター(ブラシレスDCモーター)プロフェッショナルガイド:原理・構造・応用