モータードライバとは?マイコンでDCモーターを動かす仕組みとHブリッジを解説

モーター

ArduinoやESP32などのマイコンを使ってDCモーターを動かすとき、よく登場するのがモータードライバです。

マイコンからLEDを点灯するときはGPIOにLEDを接続して制御できます。

それなら、

「DCモーターもGPIOにつなげば動かせるのでは?」

と思うかもしれません。

しかし、DCモーターをマイコンのGPIOから直接駆動するのは適切ではありません。

そこで、

マイコン → モータードライバ → DCモーター

という構成にします。

この記事では、

  • モータードライバとは何か
  • なぜマイコンからDCモーターを直接駆動できないのか
  • Hブリッジとは何か
  • DCモーターを正転・逆転できる仕組み
  • モータードライバICが内部で何をしているのか

を順番に解説します。

モータードライバとは?

モータードライバとは、マイコンからの制御信号を受けてモーターを駆動するための回路です。

マイコンは、

「正転してください」

「逆転してください」

「停止してください」

といった指示を電気信号として出します。

しかし、その信号だけでモーターそのものを動かすわけではありません。

実際にモーターへ必要な電流を流す役割を担当するのがモータードライバです。

イメージとしては、

マイコン:どう動かすかを決める

モータードライバ:指示に従ってモーターへ電力を供給する

DCモーター:実際に回転する

という役割分担です。

なぜマイコンからDCモーターを直接動かせない?

理由のひとつは、GPIOから供給できる電流には限界があるためです。

マイコンのGPIOは、ほかの電子回路へHIGHやLOWといった制御信号を送るための端子です。

一方、DCモーターは回転するために比較的大きな電流を必要とします。

特に停止状態から回転を始める瞬間や、モーター軸に大きな負荷がかかったときには電流が増えます。

そのため、

GPIO → DCモーター

ではなく、

GPIO → モータードライバ → DCモーター

とします。

GPIOはモータードライバへ小さな制御信号を送り、モーターに必要な電力はモータードライバ側から供給します。

モーターはマイコンにとって少し厄介な負荷

DCモーターは内部にコイルを持っています。

コイルに流れている電流を急激に変化させると、電流の変化を妨げる方向に電圧が発生します。

このようなモーター特有の性質もあるため、単純なLEDと同じ感覚でGPIOへ接続することはできません。

実際のモータードライバICでは、このようなモーターを駆動することを前提として回路が設計されています。

つまりモータードライバには、

「マイコンでは扱いにくいモーターという負荷を、マイコンから扱いやすくする」

という役割があります。

DCモーターは電流の向きで回転方向が変わる

DCモーターの基本的な性質を確認してみましょう。

モーターの端子をAとBとします。

A側を+、B側を-にすると、一方向へ回転します。

今度は、

A側を-、B側を+にすると、回転方向が反対になります。

つまり、

DCモーターを正転・逆転させるには、モーターに流れる電流の向きを反対にすればよい

ということです。

問題は、

「マイコンからどうやって電流の向きを切り替えるのか?」

です。

そこで登場するのがHブリッジです。

Hブリッジとは?

Hブリッジは、DCモーターに流れる電流の方向を切り替えるために使われる代表的な回路です。

基本的なHブリッジは、4つのスイッチを使って構成できます。

イメージすると次のようになります。

          電源
           │
      ┌────┴────┐
      │         │
     SW1       SW2
      │         │
      ├─ DCモーター ┤
      │         │
     SW3       SW4
      │         │
      └────┬────┘
           │
          GND

中央にDCモーターがあり、その周囲に4つのスイッチがあります。

回路全体の形がアルファベットの「H」に見えるため、Hブリッジと呼ばれています。

実際の回路では、このスイッチ部分にトランジスタやMOSFETなどの半導体が使われます。

Hブリッジで正転する仕組み

まず、4つのスイッチのうち対角線上にある2つをONにします。

たとえば、

SW1:ON
SW2:OFF
SW3:OFF
SW4:ON

とします。

すると電流は、

電源 → SW1 → モーター → SW4 → GND

という方向に流れます。

          電源
           │
          SW1
           │
           ↓
      ┌─ モーター ─┐
      │      →      │
                    ↓
                   SW4
                    │
                   GND

これをここでは「正転」とします。

Hブリッジで逆転する仕組み

次にONにするスイッチを反対にします。

SW1:OFF
SW2:ON
SW3:ON
SW4:OFF

とします。

すると今度は、

電源 → SW2 → モーター → SW3 → GND

という経路で電流が流れます。

先ほどとはモーターを流れる電流の向きが反対になります。

その結果、DCモーターの回転方向も反対になります。

つまりHブリッジでは、

対角線上のスイッチを切り替えることで、モーターへ流れる電流の方向を反転させている

わけです。

4つのスイッチをすべて自由にONにしてよいわけではない

ここで非常に重要な注意点があります。

Hブリッジでは、スイッチを好きな組み合わせでONにしてよいわけではありません。

たとえば同じ側の上側と下側のスイッチを同時にONにすると、

電源 → スイッチ → スイッチ → GND

と、モーターを通らず電源とGNDが直接つながる状態になる可能性があります。

これは**貫通電流(シュートスルー)**と呼ばれる状態につながり、大きな電流が流れて回路を破損する原因になります。

実際にHブリッジ回路を設計する場合は、こうした危険な状態にならないように制御する必要があります。

モータードライバICを使用すると、Hブリッジに必要な回路がIC内部にまとめられているため、マイコンから扱いやすくなります。

モータードライバICを使うと制御が簡単になる

HブリッジをトランジスタやMOSFETから自分で組むこともできます。

しかし実際の電子工作では、モータードライバICを使用することがよくあります。

モータードライバICの内部には、Hブリッジを構成するスイッチング回路などが組み込まれています。

マイコン側から見ると、

入力1:HIGH
入力2:LOW

のように信号を入力するだけで、内部の回路がモーターへ流す電流の方向を切り替えてくれます。

代表的な2入力タイプを単純化すると、次のようになります。

IN1IN2モーター
LOWLOW停止
HIGHLOW正転
LOWHIGH逆転

※実際の動作は使用するモータードライバICの仕様によって異なるため、データシートを確認してください。

これならマイコン側ではGPIOを2本制御するだけです。

複雑なHブリッジのスイッチングを直接考えなくても、DCモーターを正転・逆転できます。

2つのDCモーターを動かすには?

モーターカーなどでは、左右にDCモーターを1個ずつ使用します。

この場合、それぞれのモーターを独立して正転・逆転させる必要があります。

つまり、

左モーター用Hブリッジ × 1

右モーター用Hブリッジ × 1

が必要です。

2つのHブリッジを持ったモータードライバを利用すれば、左右のDCモーターをそれぞれ制御できます。

マイコンから見ると、

マイコン
 │
 ├─ 左モーター制御信号 ─→ モータードライバ ─→ 左モーター
 │
 └─ 右モーター制御信号 ─→ モータードライバ ─→ 右モーター

という構成です。

これによって、

  • 左右とも正転 → 前進
  • 左右とも逆転 → 後退
  • 左右で異なる回転 → 旋回
  • 左右を逆方向に回転 → その場回転

といったモーターカーの動きを作れます。

PWMを使えば速度も変えられる

モータードライバへの制御信号には、単純なHIGH/LOWだけでなくPWMを利用できる場合があります。

たとえば正転するとき、

IN1:PWM
IN2:LOW

とします。

PWMのデューティ比を変えることで、モーターへ供給されるエネルギーを調整し、回転速度を変えられます。

つまりモータードライバは、

回転方向を変える

だけでなく、

モーターの速度を制御する

ためにも利用できます。

PWMについては「PWMでDCモーターの速度を制御する方法」で詳しく解説しています。

マイコンとモータードライバの役割を分けて考えよう

モーター制御を理解するときは、それぞれの役割を分けて考えると分かりやすくなります。

マイコン
→ プログラムに従って制御信号を作る

モータードライバ
→ 制御信号に応じてモーターへ電力を供給する

DCモーター
→ 電気エネルギーを回転運動に変える

という関係です。

マイコンが直接モーターを回しているわけではありません。

マイコンはあくまでモータードライバへ指示を出していると考えると、回路の役割が整理しやすくなります。

KUMITATE-MOTORでモータードライバの動きを確認してみよう

モータードライバやHブリッジの仕組みを理解したら、実際にDCモーターを動かして確認してみましょう。

クミタテでは、KUMITATE-C3と組み合わせてDCモーター制御を学べるKUMITATE-MOTORを用意しています。

KUMITATE-MOTORでは、

  • DCモーターの正転・逆転
  • 2つのモーターの独立制御
  • 前進・後退
  • 左右旋回
  • PWMによる速度制御

などを実際に試すことができます。

「Hブリッジ」という言葉だけを見ると難しく感じますが、

GPIOの状態を変える
↓
モータードライバ内部で電流の向きが変わる
↓
モーターの回転方向が変わる

という流れを実機で確認すると、仕組みが理解しやすくなります。

▶ KUMITATE-MOTORの詳細はこちら
https://kumicla.tatepro.com/asp-products/kumitate-motor/

まとめ

今回は、モータードライバの役割とHブリッジの仕組みを紹介しました。

重要なポイントは、

  • マイコンのGPIOからDCモーターを直接駆動しない
  • モーターを駆動するためにモータードライバを使用する
  • DCモーターは電流の向きを変えると回転方向も変わる
  • Hブリッジを使うと電流の向きを切り替えられる
  • モータードライバICにはHブリッジなどの回路が組み込まれている
  • マイコンからは入力信号を切り替えることで正転・逆転を制御できる
  • PWMを組み合わせれば速度制御もできる

というところです。

モータードライバは単に「モーターを動かすために必要な部品」と覚えるより、

「マイコンからの小さな制御信号を受けて、モーターに必要な電力と電流方向を制御する回路」

と理解すると、その役割が分かりやすくなります。

KUMITATE

読むだけでなく、
実際に動かして学びませんか?

クミタテは、組み込み開発や電子工作を 実践しながら学べる学習プラットフォームです。 ESP32を使ったプログラミングから、電子回路、センサー、 通信、基板設計まで、自分のペースで学習できます。

  • 無料で学べる実践的な教材を掲載
  • すぐに試せるサンプルプログラム付き
  • Googleアカウントですぐに登録可能
クミタテに無料登録する
モーター
スポンサーリンク