※本記事にはプロモーション(広告)が含まれています。
Hブリッジは、スイッチ4つを「H」の形に並べ、モーターに流す電流の向きを入れ替える回路です。対角の2つを ON にすると正転・逆転、下の2つでブレーキになり、DRV8833 の入力の組み合わせは真理値表の節、ドライバ IC の選び方は早見表へ。ハーフブリッジとの違いと貫通電流はハーフブリッジとフルブリッジの違いで扱っています。
Hブリッジは、ラジコンの車やロボットのように、モーターを前にも後ろにも回したいときに使う回路です。名前はむずかしそうですが、中身はスイッチ4つだけです。
この記事では、スイッチの絵で向きが変わるしくみを見たあと、マイコンから使えるドライバ IC の DRV8833 で、模型用のモーター(マブチ FA-130)を回す配線と計算まで進みます。

この記事で作るもの:マイコン2本の線でモーターの向きを変える
マイコンの2本の線(IN1・IN2)を DRV8833 につなぎ、0 と 1 の組み合わせで、正転・逆転・ブレーキ・空転を切り替える回路です。電源は単3電池2本(3V)です。
マイコンは、IN1 と IN2 に 3.3V(1)か 0V(0)を出すだけです。モーターに流れる電流は、電池から DRV8833 の中のスイッチを通って流れます。
| IN1 | IN2 | モーターの動き |
|---|---|---|
| 0 | 0 | 空転(惰性で止まる) |
| 1 | 0 | 正転 |
| 0 | 1 | 逆転 |
| 1 | 1 | ブレーキ(すぐ止まる) |
モーターを1方向に回すだけなら、MOSFET 1つで足ります。ON/OFF だけの回路は、トランジスタと MOSFET を比べた記事の回路が出発点です。この記事は、その「向きも変えたい」版です。
マイコンで ON/OFF するなら、トランジスタと MOSFET のどちらを選ぶか
つまり、マイコンから見ると「2本の線で4通りの命令」を出すだけの回路です。

DC モーターは、電池の向きを逆にすると逆に回る
DC モーター(ブラシ付き)の回る向きは、モーターに流れる電流の向きで決まります。電池の+と−をつなぎ替えれば逆に回ります。H ブリッジは、このつなぎ替えをスイッチで行う回路です。
FA-130 のような模型用のモーターは、2本の端子に電池をつなぐと回ります。電池の向きを逆にしてつなぐと、逆向きに回ります。モーターの中で、磁石と電流が押し合う力の向きが、電流の向きで決まるからです。
どちら向きの電流で右回りになるかは、モーターによって決まります。この記事では、端子 A から B へ流れるときを右回り(正転)の例にします。
モーターが回るしくみ。磁石と電流の力、整流子の役目を図で
つまり、向きを変えたければ「モーターに流す電流の向き」を変えればよい、ということです。

Hブリッジとは:スイッチ4つを「H」の形に並べた回路
左右2本の柱に、上(+側)と下(GND 側)のスイッチを1つずつ。合わせて4つのスイッチの真ん中を、モーターでつなぎます。縦の柱と横のモーターが H に見えるので、H ブリッジと呼びます。
この記事では、4つのスイッチを S1〜S4 と呼びます。左の上が S1、左の下が S2、右の上が S3、右の下が S4 です。モーターは、左の柱の真ん中(A)と、右の柱の真ん中(B)の間につなぎます。
| スイッチ | 場所 | つながる先 |
|---|---|---|
| S1 | 左の上(ハイサイド) | 電池の+ と A |
| S2 | 左の下(ローサイド) | A と GND |
| S3 | 右の上(ハイサイド) | 電池の+ と B |
| S4 | 右の下(ローサイド) | B と GND |
電力の分野では、上下2つのスイッチの組を「ハーフブリッジ」、それを2組並べたものを「フルブリッジ」と呼びます。H ブリッジは、フルブリッジと同じ形です。
つまり、H ブリッジは「モーターの両端を、それぞれ+にも GND にもつなげる」スイッチの組です。

正転と逆転のしくみ:対角の2つを ON にする
S1 と S4 を ON にすると、電流は+→S1→A→モーター→B→S4→GND と流れて正転します。S3 と S2 を ON にすると、+→S3→B→モーター→A→S2→GND と、モーターの中を逆向きに流れて逆転します。
正転のとき、モーターの左の端子 A は S1 で+に、右の端子 B は S4 で GND につながります。電流はモーターの中を A から B へ流れます。
逆転のとき、B が S3 で+に、A が S2 で GND につながります。電池はそのままなのに、モーターから見ると電池をつなぎ替えたのと同じになります。
つまり、「どの対角を ON にするか」で、モーターの中の電流の向き=回る向きが決まります。

やってはいけない:同じ側の上と下を同時に ON にする
S1 と S2(または S3 と S4)を同時に ON にすると、電流はモーターを通らずに+から GND へ素通りします。これを貫通電流と呼び、スイッチや電池を壊します。
S1 と S2 が両方 ON だと、電池の+→S1→S2→GND という道ができます。この道にあるのは、スイッチの小さな抵抗だけです。
実際には電池の内部の抵抗などで少し小さくなりますが、モーターの起動の電流よりずっと大きな電流です。プログラムのまちがいで一瞬でも起きると、スイッチが壊れることがあります。
やっかいなのは、正転から逆転に切り替える途中でも起きることです。S1 を OFF にしてから S2 を ON にするつもりでも、スイッチが切れるのには少し時間がかかります。そのすき間に両方 ON の瞬間ができるので、切り替えのときは、上下とも OFF の短い時間(デッドタイム)を入れます。
貫通電流が起きるしくみと、デッドタイムの決め方を電力用の回路で
つまり、H ブリッジの一番のルールは「同じ側の上下は、絶対に同時に ON にしない」です。

止め方は2つ:ブレーキと空転
下の2つ(S2・S4)を ON にするとブレーキで、モーターの2本の線がつながり、すぐ止まります。全部 OFF にすると空転で、モーターは惰性でゆっくり止まります。
回っているモーターは、発電機のように自分で電圧(逆起電力)を出しています。ブレーキでモーターの両端をつなぐと、その電圧で回転と逆向きの力を生む電流が流れ、モーターは急に止まります。
約2.8V は、無負荷で回っている FA-130 の逆起電力の見積もり(3.0V−0.15A×1.43Ω)です。電流は回転が落ちるにつれて減ります。
空転では、電流の道がないので、モーターは軸の重さとまさつだけでゆっくり止まります。ただし OFF にした直後の一瞬は、モーターの電流がドライバ IC の中のダイオードを通って消えます。
OFF の瞬間のモーターの電流を逃がすダイオードのしくみ
つまり、すぐ止めたいならブレーキ、なめらかに止めたいなら空転、と使い分けます。

DRV8833 の真理値表:IN1・IN2 の4通りを読む
DRV8833 は、IN1・IN2 が 1・0 で正転、0・1 で逆転、1・1 でブレーキ、0・0 で空転です。データシートの表の H は+、L は GND、Z は「どこにもつながない」の意味です。
| IN1 | IN2 | OUT1 | OUT2 | 動き | H ブリッジでは |
|---|---|---|---|---|---|
| 0 | 0 | Z | Z | 空転 | 全部 OFF |
| 1 | 0 | H | L | 正転 | S1+S4 |
| 0 | 1 | L | H | 逆転 | S3+S2 |
| 1 | 1 | L | L | ブレーキ | S2+S4 |
データシートの真理値表(Table 1. H-Bridge Logic)は、IN の組み合わせと、そのときの OUT の状態を並べた表です。OUT1 が H(+)で OUT2 が L(GND)なら、電流は OUT1 から OUT2 へ流れます。
DRV8833 の入力には、IC の中に約150kΩ のプルダウン(GND へ引く抵抗)が入っています。マイコンがリセット中で端子が浮いていても、入力は 0・0 になり、モーターは勝手に回りません。
入力が「浮いている」とはどんな状態か。プルダウンの役目を図で
入力の電圧は、2V 以上で 1、0.7V 以下で 0 と見なされます(VIH・VIL)。3.3V のマイコンなら、そのままつなげます。
つまり、真理値表は「IN の組み合わせ → OUT の+と GND → 電流の向き」の順に読めば迷いません。

なぜドライバ IC を使うのか:スイッチ4つを自分で組まない理由
上のスイッチ(ハイサイド)を 3.3V で動かすのがむずかしい、同時 ON を防ぐデッドタイム(450ns)が要る、過電流・過熱・低電圧の守りが要る、の3つが理由です。ドライバ IC なら、入力2本でこれが全部そろいます。
1. 上のスイッチを動かせる
上のスイッチは、電源の+とモーターの間にあります。N チャネルの MOSFET で作ると、ON にするにはゲートを電源よりさらに高い電圧にする必要があり、3.3V の合図では ON できません。DRV8833 は IC の中で高い電圧を作り(VCP ピンの 0.01µF はそのため)、上のスイッチを ON にします。
+側(ハイサイド)のスイッチを動かすのが、ローサイドよりむずかしい理由
2. 同時 ON を防ぐ
DRV8833 は、切り替えのときに上下とも OFF の時間(デッドタイム、450ns)を IC の中で自動で入れます。データシートにも「外で作る必要はない」と書かれています。
3. 守りが入っている
電流が 2〜3.3A(ばらつきの範囲)を超えると出力を止め、1.35ms 後にもう一度動かします(過電流保護)。熱くなりすぎたとき(過熱保護)と、VM が約2.6V より下がったとき(低電圧ロックアウト)も止まります。
4. 入力2本で済む
IN1・IN2 の2本で4通りの動きを選べます。OFF の瞬間のモーターの電流も、IC の中のダイオードが逃がしてくれます。
つまり、マイコンで小さなモーターを正転・逆転させるなら、スイッチ4つを組むより、ドライバ IC が安全で簡単です。

DRV8833 の配線:A 側の H ブリッジだけ使う
DRV8833 には H ブリッジが2つ(A と B)入っています。モーター1個なら A 側だけを使い、AIN1・AIN2 をマイコンへ、AOUT1・AOUT2 をモーターへ、VM を電池の+へつなぎます。コンデンサは VM に 10µF、VINT に 2.2µF、VCP と VM の間に 0.01µF です。
| ピン(番号) | つなぐ先 | メモ |
|---|---|---|
| AIN1(16)・AIN2(15) | マイコンの IN1・IN2 | 3.3V のマイコンでそのまま |
| AOUT1(2)・AOUT2(4) | モーターの2本の線 | どちらがどちらでもよい(向きが逆になるだけ) |
| VM(12) | 電池の+・10µF で GND へ | 10µF 以上のセラミックを IC の近くに |
| GND(13) | GND(電池の−・マイコンの GND) | 裏の放熱パッドも GND へ |
| nSLEEP(1) | マイコンの 3.3V | L だと IC が眠ったまま |
| AISEN(3)・BISEN(6) | GND | 電流の検出を使わないとき |
| VINT(14) | 2.2µF で GND へ | IC の中の電源用 |
| VCP(11) | 0.01µF で VM へ | 上のスイッチを動かす電圧用 |
ピンの番号は、HTSSOP(PWP)と TSSOP(PW)のものです。WQFN(RTY)は番号が違います。また、通販で売られている DRV8833 のモジュール(小さな基板)は、ピンの名前や並びがモジュールごとに違い、コンデンサがすでに載っていることもあります。必ずモジュールの説明書と回路図で確かめます。
データシートを読む順番。ピン配置・推奨動作条件・電気的特性のどこを見るか
つまり、マイコン側2本・モーター側2本・電源2本と、コンデンサ3つ・nSLEEP を押さえれば配線は終わりです。

計算:FA-130 を DRV8833 で回すと、起動の電流は保護に引っかからないか
DRV8833 の中の抵抗(上 250mΩ+下 200mΩ)を足すと、起動の電流は 3.0÷(1.43+0.45)=1.60A で、過電流保護の 2A より小さくなります。ふだんの損失は 0.14W、温度の上がりは PWP で約6℃です。
モーターにかかる電圧は、IC の中で少し下がって 3.0−0.56×0.45=2.75V ほどです。MOSFET 1つで回すときより、回転が少しだけ遅くなります。
つまり、FA-130 と単3電池2本なら、DRV8833(PWP)で起動も保護に引っかからず、熱も小さく回せます。

回っているモーターを、いきなり逆転させない
正転で回っているところから急に逆転にすると、電池の 3V とモーターの逆起電力 約2.8V が足し算になり、約3.1A 流れます。過電流保護の範囲(2〜3.3A)に入るので、IC が止まることがあります。間にブレーキを入れてから逆転します。
回っているモーターは、回転の向きに応じた電圧(逆起電力)を出しています。正転で回っているとき、その電圧は電池の電圧を打ち消す向きです。そこで逆転につなぎ替えると、今度は電池の電圧と同じ向きになり、足し算になります。
DRV8833 の過電流保護は、2〜3.3A を超えた状態が 4µs 続くと出力を止め、1.35ms 後にもう一度動かします。止まっても壊れはしませんが、モーターの動きがガタガタになります。
プログラムでは、正転 → ブレーキ(1・1)→ 止まるまで待つ → 逆転、の順にします。ブレーキの瞬間の電流は約1.5A、止まってからの逆転の起動の電流は 1.60A で、どちらも保護の範囲より小さくなります。
つまり、向きを変えるときは「いったん止めてから」が基本です。

PWM で速さを変える:電圧をかけないあいだを空転にするか、ブレーキにするか
DRV8833 で速さを変えるときは、IN の片方に PWM(速い ON/OFF)を入れます。正転なら「PWM・0」か「1・PWM」の2通りがあり、モーターに電圧をかけないあいだが空転になるかブレーキになるかが違います。
| 向き | IN1 | IN2 | 電圧をかけないあいだ |
|---|---|---|---|
| 正転 | PWM | 0 | 空転(電流が速く減る) |
| 正転 | 1 | PWM | ブレーキ(電流がゆっくり減る) |
| 逆転 | 0 | PWM | 空転(電流が速く減る) |
| 逆転 | PWM | 1 | ブレーキ(電流がゆっくり減る) |
データシートでは、空転側を fast decay(速く減る)、ブレーキ側を slow decay(ゆっくり減る)と呼びます。空転側は電圧をかけないあいだ電流が IC の中のダイオードを通って速く減り、ブレーキ側はモーターが下の2つでつながって電流がゆっくり減ります。
「1・PWM」では、IN2 の PWM が 1 のあいだがブレーキ、0 のあいだが正転です。PWM が 1 の割合(デューティ比)が大きいほど遅くなるので、「PWM・0」とは逆の読み方になります。プログラムで速さの値を作るときに確かめます。どちらが合うかはモーターと用途しだいなので、両方試して決めます。
PWM の周波数をいくつにするかは、連載の「PWM 制御とは」の記事でくわしく扱います。
つまり、速さは IN の片方を PWM にするだけで変えられ、OFF のあいだの止め方を2通りから選べます。

早見表:小さなモーター用のドライバ IC の選び方
単3電池2〜4本くらいのモーターなら DRV8833(2.7〜10.8V)、12V・24V のモーターなら東芝の TB67H450 系(4.5〜44V)が目安です。モーターの電圧と起動の電流で選びます。
| DRV8833(TI) | TB67H450FNG(東芝) | |
|---|---|---|
| モーターの電圧 | 2.7〜10.8V | 4.5〜44V |
| 流せる電流 | 1.5A(PWP)/0.5A(PW) | 3A 以下で使う |
| H ブリッジの数 | 2つ(モーター2個) | 1つ |
| 止まる電圧(UVLO) | 約2.6V | 4.0V±0.2V |
| 入力 | AIN1・AIN2(+nSLEEP) | IN1・IN2 |
| 入力の 1・1 | ブレーキ | ブレーキ |
| 入力の 0・0 | 空転 | OFF(1ms ほどでスタンバイ) |
選ぶ順番は、①モーターの電圧が IC の動作範囲に入るか、②起動の電流が過電流保護より小さいか(足りなければ大きな IC へ)、③パッケージで流せる電流と熱、です。
つまり、電池で動く模型なら DRV8833、12V 以上なら TB67H450 系、と電圧で大まかに分けてから、電流と熱で確かめます。

ブレッドボードで組む:DIP 変換基板にのせた DRV8833
DRV8833(HTSSOP)は小さいので、DIP の変換基板にのせて、溝をまたぐように差します。上の段に AIN1・AIN2・VINT・GND・VM・VCP、下の段に nSLEEP・AOUT1・AISEN・AOUT2 が並びます。
変換基板には1番ピンの印があります。差す向きを逆にすると、VM と GND の位置がずれて IC を壊すので、電源を入れる前に必ず確かめます。
つまり、電源 → コンデンサ → 入力 → モーターの順に差していけば、配線の数は10本ほどです。

テスターで確かめる:OUT1 と OUT2 の間の電圧で向きを見る
テスターの赤を OUT1、黒を OUT2 に当てると、正転で約+2.7V、逆転で約−2.7V、ブレーキで 0V です。符号で向き、大きさで IC の中の電圧の下がりがわかります。
最低限ここだけ
余裕があれば
0・0(空転)にした直後は、回っているモーターが出す電圧(逆起電力)が少し残り、回転が落ちるにつれて 0V に近づきます。1・1(ブレーキ)では、すぐ 0V になります。2つの止め方の違いを、電圧の残り方で見られます。
つまり、OUT1−OUT2 の符号が IN の組み合わせどおりに変われば、配線もプログラムも合っています。

よくある失敗4つ:DRV8833 でモーターを正転・逆転させるとき
nSLEEP をつながない・電池の電圧が足りない・GND をつながない・いきなり逆転させる、の4つがよくある失敗です。
1. nSLEEP をつながない
nSLEEP は IC の中で GND へ引かれていて(約500kΩ)、つながないと IC は眠ったままです。マイコンの 3.3V へつなぐか、マイコンの端子で H にします。
2. 電池が弱い・本数が少ない
DRV8833 の VM の動作範囲は 2.7V からで、約2.6V を下回ると止まります。アルカリ電池2本でも、減ってくると起動のたびに電圧が下がって止まることがあります。ニッケル水素電池2本(公称 2.4V)は、動作範囲の外です。
3. GND をつながない
マイコンの GND と電池の−がつながっていないと、マイコンの 1・0 が IC に正しく届かず、動いたり動かなかったりします。
4. いきなり逆転
約3.1A 流れて過電流保護で止まることがあります。ブレーキを入れて止まってから逆転します。
つまり、配線(nSLEEP・GND)・電源(電池の電圧)・プログラム(ブレーキを挟む)の3か所を確かめます。


