Arduinoでブラシレスモーターを駆動する方法は?


28

Arduinoでブラシレスモーターを直接駆動することは可能ですか?または、PWMパルスでブラシレスモーターESCの制御を元に戻す必要がありますか?


1
おそらく、古いDVD / CD-ROMプレーヤーからドライバーチップを入手できます。
ラース

回答:


10

間違いなくESCを使用する必要があります。ブラシレスモーターは、正弦波(または正弦波に可能な限り近い距離)で駆動するときに最適に機能します。また、かなり正確で複雑な信号のセットも必要です。Arduinoから適切な波形とタイミングを生成することは難しく、本当に必要な場合を除いて、おそらく価値はありません。arduinoからESCをいつでも制御できます。これにより、プログラムによる制御に加えて、ESCの効率とパワーが得られます。


nitpick:Wikipedia(en.wikipedia.org/wiki/brushless_DC_electric_motor)によると、BLDCモーターは、スイッチドDCで駆動するときに最適に動作するように最適化されています:完全な正、非駆動、および完全な負。永久磁石ACモーターは、正弦波で駆動するときに最適に動作するように最適化されています。それはそれらの間の唯一の重要な違いです。私はあなたの結論に同意します:自分で開発するよりも、すぐに使えるESCを使用する価値があるでしょう。
デビッドキャリー

4
BLCDのコントローラーは、arduinoと同じatmegaを非常によく使用できます。利点は、詳細な問題を他の誰かに手渡して解決することです。そして、低レベルの整流タスクを引き渡し、高レベルのタスクのためにarduinoのatmegaを解放します。
クリスストラットン

BLDCモーターは、本質的に方形波駆動をコイルに使用します。コントローラー(ESC)のユーザー側では、DC給電とESCが必要とする制御信号を使用します。正弦波は機能しません。
ラッセルマクマホン14年

13

実際には、独自のESCを作成する必要がある場合があります。maketで販売されているESCは「商業化」されており、飛行機、ヘリ、自動車などのRC向けの独自の制御コードを持っています...

たとえば、場合によっては両面回生ブレーキが必要になることがあります。後ろから止め、前から止めます。その機能を持つRC ESCはありません。前方から停止する回生ブレーキは1つのみ、またはまったくありません。または、センサー制御BLDCが必要な場合がありますが、市場には数少ないセンサー付きESCがあり、それらには(一般的なセンサーレスESCでも同じ)不要な機能が組み込まれており、絶対に必要な機能はありません!

独自のESCを設計することは完璧な選択であり、巨大なパワーを備えた最も安い10ドルのESCよりもはるかに安価です。

制御コードとハードウェアが苦痛になることは事実ですが、読んだ後は単なるおもちゃにすぎません。

6つのMOSFETとJamecoのサイトで簡単に見つけることができる他のものを使用して、arduinoでBLDCコントローラを作成する方法に関する良いチュートリアルがあります(非常に素晴らしい)これは私が安いものを購入する場所ですが、surkfunはジャイロなどのセンサーが見つかりません。

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

非常に素晴らしく、従うのが簡単なガイド。このガイドと、抵抗、モーター巻線、またはバッテリー充電器を使用して、再生ブレーキのほぼすべての組み合わせを使用して、低ESCから超高ESCまでの任意の電力を生成できます...

MOSFETの使用は単なるおもちゃであり、ほとんど何でもできます。

問題は、5Vのみを出力するarduioボードのようなMCUではこのMOSFETを非常に効率的に制御できないことです。中電圧のMOSFETのゲート電圧は16〜30Vの範囲で非常に簡単です。したがって、arduinoの電圧を上げるには、他のタンシザーを使用する必要があります。

がんばろう。


6

私はこれを30分ほど行ったり来たりしました。ESCを学習体験として使用しているのでない限り、おそらくESCを使用したいと思います。モーターを適切に制御することは、私が正当化することを想像するよりも多くのリソースをあなたのarduinoから結びつけるでしょう。さらに、モーターの応答性をadcポーリングの応答性に制限することになります。ESCを元に戻すことは考えていませんが、それがその方法です。


4

他の誰もそれを言っていないので、AVRチップが有用な量の電力を供給するのに十分な電流を出力しないという理由だけで、実際にArduinoから直接モーターを駆動することはできません。

したがって、少なくとも、必要な電流を駆動するために3相のHブリッジ構成(3つの「ハーフHブリッジ」)を作成し、ドライブトランジスタを動作させるために6本のデジタルラインが必要です。

このドライブ機能の問題を解決し、それが簡単ではないと仮定すると、制御コードを取得する必要があります。これらのモーターには永久磁石ローターがあるため、盲目的にステーターフィールドを回転させて有用なトルクを得ることができません。均一なトルクが得られるように電気位相角を調整し続けるには、ローターの向きを知る必要があります。

したがって、他の人が言ったように、特定の学習体験が必要でない限り、ESCを購入するだけで不名誉はありません。


3

素晴らしい学習課題になると思いますが、ESCは逆EMFを使用して回転を検出しますが、これには光学センサーまたは磁気センサーを使用できます。基本的に、3つのACフェーズを生成し、それらを適切なタイミングで有効化/無効化する必要があります。

磁場の回転速度は、モーターの速度に合わせて調整する必要があります。つまり、加速したい場合は、磁場を少し早くより速く実行する必要があります。また、逆のことを行うこともできます。

詳しい説明については、http//www.embedded.com/columns/technicalinsights/196701832?_requestid = 137540

実際の仕事については、ESCを取得してください。


加速と減速は、フィールドを先導したり遅れたりすることで、あなたが説明した方法で達成されると最初に思いました。しかし、その後、加速度は主に電圧によって決定されることを読みました(ただし、どのように減速できるかわかりません)。少し混乱しています。いずれかのアプローチが加速のために機能しますか?どちらかを好む理由、またはそれらを混ぜる理由はありますか?ありがとう!
ネクロマンサー14

2

駆動することで文字通り巻線に電流を供給することを意味しない場合、Arduinoで直接駆動することができます-MCUはそれに対して非常に弱すぎます。その上、Arduinoはシンクできますが、ソースはできませんが、ブラシレスモーターには両方が必要です。

ただし、Arduinoに加えて非常に単純なHブリッジドライバーICを使用する場合、ESCのほとんどすべての機能を実装できます。実際、アプリケーションによっては、E * SC * も必要ない場合があります。つまり、閉ループ速度制御は必要ない場合があります-負荷が大きすぎない場合は、単にモーターを信頼して逃げることができます巻線の通電と同期して応答し、巻線電流の変化率はArduinoから発生します。この非常にシンプルなブラシレス(BLDC)モーター制御回路図とArduinoスケッチをチェックして、モーターの駆動に適応できる可能性があります。これは、SN754410NEクアッドHブリッジICに基づいており、メモリが提供される場合は最大750mAです。

コードはそれほど単純ではなく、スムーズな回転のためにPWMを使用しますが、解析してアプリケーションに適合させることも難しくありません。BLDCモーターの実際のArduinoスケッチはこちらです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.