PWMによる簡易DCモーター速度制御

モーター制御23 3月 2023
すべての記事を表示

By: Jeremy Cook

エレクトロニクスにおける最も基本的な操作の1つは、DCモーターの速度制御です。ここでは、その基本から見ていきます:MOSFETや専用のドライバにPWM信号を送ることです。この信号は、コントローラが単独で生成できるよりも高い電流(およびしばしば電圧)を使用して、DCモーターの速度を直接制御します。

シンプルなLED PWM制御

Image

Jeremy Cook | オシロスコープで示されるパルス付きの外部LED

PWM(すなわちパルス幅変調)は、パルスを異なる長さで繰り返すことによってアナログ電圧出力を模擬します。この設定では、1回のオン/オフサイクルが完了するのにかかる時間を期間として定義します。デューティサイクルは、しばしばパーセントで表現され、オン時間とオフ時間の比率です。
 
5ボルトの信号でデューティサイクルが50%の場合、2.5Vの模擬アナログ信号が得られます。1msの期間では、このオン/オフ状態の変化が1秒間に1000回(または1000 Hz)発生し、これはPWM信号の周波数として定義されます。PWM制御は、DCモーターやその他の変化がゆっくりとした負荷に適しています。オーディオ再生などの別の状況では、真のアナログ出力が好まれます。
 
この原理を探るために、CircuitPythonを実行しているRaspberry Pi Picoを使用します。非常に簡単な入門としては、ここにあるコードをロードします。このコードは、オンボードLEDを最大出力の65,535(2^16 – 1)から4095(2^12 -1)へ、元の値の10分の1未満に交互に変化させます。観察することで、光が変化するのを見ることができますが、観察された光の出力と数値の関係を理解するのは難しいかもしれません。

MOSFETモーター制御回路

Image

Jeremy Cook | MOSFET DCモーター制御回路

MOSFET (FQP30N06L) を使用する制御方法は、基本的に LED と同じです。次の実験のコードは こちらにあります。制御出力を小さな抵抗(約100Ω)を介して MOSFET のゲインピンに接続します。入力がないときに低くするために、10kΩの抵抗を接地に追加します。モーターの正極のリードは MOSFET のドレインに接続され、MOSFET のソースは接地されます。
 
最初は VBUS ピンが正電圧を供給していましたが、通常、Pico と共通接地の外部電圧源を使用する方が良いでしょう。浮遊誘導負荷に対処するためにフライバックダイオードを実装することもお勧めします。

L293D モータードライバー:DCモーター制御回路を簡単に構築する方法

Image

Jeremy Cook | キャプション: L293D Motor Driver

MOSFETsは汎用デバイスとして非常に優れていますが、速度と方向を制御したい場合や、1つ以上のモーターを処理しなければならない場合は、非常に早く複雑になります。幸いなことに、これらの課題を処理するためのモーターコントローラーICが用意されており、ここで使用される定評あるL293Dドライバーもその一つです。配線要件はデータシートから確認できます。私がRaspberry Pi Picoに接続するために使用した方法は以下の図に示されています:

Image

Jeremy Cook | U4のGNDピンは内部で接続されています

このセットアップのデジタル(オン/オフ)回転コードは、こちらにあります。これにより、モーターは最大の強さで前進と後退を行い、その間に停止します。このPWMコードは特定のデューティサイクルでモーターを初期化し、段階的に加速して停止します。その後、逆方向に加速し、再び停止してシーケンスを繰り返します。

L293Dドライバーについての注意事項

その最後のコードを使用したとき(12V VCC2入力およびコンデンサなし)、Raspberry Pi Picoボードを無効にしてしまいました。良い実践としては、電力やロジック入力を均一にするためにコンデンサを使用することです。L293Dは、誘導負荷を処理するための内部クランプ機能を提供するため、外部のフライバックダイオードは必要ありません。このような事態が発生した原因にはいくつかの可能性がありますが、ベンチを離れた後にハードウェアが実際の要件を満たすように指定され、実装されるようにすることを思い出させるべきです。

プラグアンドプレイ - またはフルカスタマイズ?

あなたのDCモーター制御回路設計は、いつまでもブレッドボード上に存在するわけではありません。ここから、2つの分岐した道があります。
 
より高度なプロトタイピングや一度きりの設計の場合、L293Dのようなドライバーをプラグアンドプレイソリューションとして追加するモーターシールドや開発ボードがあります。DCモーター、ステッパーサーボなどに対応しています。Arduino Motor Shieldはおそらく最もよく知られており、Arduino Unoのフォームファクタと互換性があります。RP2040プラットフォームを使用したい場合、Maker Pi RP2040は、モーターやその他のデバイスを制御するための優れたプラグアンドプレイソリューションとなるでしょう。
 
スペクトルの反対側では、モーターコントローラ設計を独自のプリント基板設計に直接統合することが可能です。この統合により、ほぼ無限の設計の自由が得られ、たとえば、Maker Pi RP2040の機能の一部を実装しつつ、不要なものを省くことができます。また、アプリケーションに最適な物理的フォームファクタでボードをレイアウトすることもできます。

Image

Jeremy Cook | 電気モーターおよびその他の負荷制御用MOSFET。ソレノイドがインダクタとして作用するため、フライバックダイオードがあると良いでしょう。

ここに示されている一般的なPWM制御の原則は確実で、さまざまな負荷に使用できます。ただし、この記事のデモとして提示されたハードウェアは迅速に組み立てられたものです。最終的な設計では、個々の状況とArrowで入手可能な仕様およびデータシート情報を慎重に考慮する必要があります。適切なPWM DCモーターコントローラー設定により、デバイスは何年も問題なく動作することができます。
 
あなたの設計がどのように進化しても、ArrowはマイクロコントローラMOSFETモータードライバ、およびその他のデバイスを提供して、PWM DCモーター速度コントローラーを実現するためのサポートをいたします!

記事タグ

Global
記事
モーター制御
Motors

関連コンテンツ