【電子工作】Hブリッジを使ったDCモーターの正転・反転・速度制御:基礎から応用まで徹底解説
はじめに:なぜモーター制御が必要なのか?
私たちの身の回りには、様々な形でモーターが使われています。ロボットの関節や車輪、プリンターの紙送り、家電製品のファンやポンプ、工場での搬送システムなど、数え上げればきりがありません。これらの多くは、モーターの回転を利用して物理的な動作を実現しています。
特に、DC(直流)モーターは、その単純な構造と扱いやすさから、電子工作の世界でも非常によく使われる部品です。DCモーターを動かすだけなら、電源をつなげば良いのですが、多くの場合、私たちは単に回すだけでなく、モーターの回転方向を変えたり、回転速度を調整したりといった、より高度な制御を必要とします。
例えば、ロボットを前進させるには車輪のモーターを正転させ、後退させるには反転させる必要があります。また、坂道を登る際にはより大きなトルクが必要になるため、モーターの回転速度を調整することも重要です。このような「回転方向を変える」「回転速度を変える」といった制御を可能にするのが、今回詳しく解説する「Hブリッジ回路」です。
この記事では、DCモーターの基礎から始まり、なぜHブリッジが必要なのか、Hブリッジの基本的な仕組み、それを構成する部品(トランジスタやMOSFET)、安全な設計・製作のための注意点、そして現代の電子工作で主流となっているHブリッジドライバーICやマイコンを使った制御方法まで、Hブリッジに関する全てを網羅的に、約5000語のボリュームで詳細に解説していきます。電子工作初心者の方から、より実践的なモーター制御を学びたい方まで、幅広い読者の方に役立つ内容を目指します。
DCモーターの基礎:極性と回転方向
Hブリッジ回路を理解する前に、まずはDCモーターの基本的な動作原理と、回転方向がどのように決まるのかを確認しておきましょう。
DCモーターは、主にローター(回転子)とステーター(固定子)で構成されています。ローターにはコイルが巻かれており、ステーターには永久磁石が配置されているのが一般的です。ローターのコイルに電流を流すと、電磁誘導によって磁力が発生します。この発生した磁力とステーターの永久磁石との間に働く引力や斥力によって、ローターに回転する力(トルク)が発生します。
このとき、ローターのコイルに流れる電流の向きが重要になります。電流の向きによってコイルに発生する磁力の向き(N極/S極)が決まり、それが永久磁石との相互作用による力の向き、つまり回転方向を決定します。
例えば、モーターの端子に電源のプラスを一方につなぎ、マイナスをもう一方につないで電流を流すと、モーターは時計回り(または反時計回り)に回転するとします。このとき、電源のプラスとマイナスを逆にして接続すると、コイルに流れる電流の向きが逆になります。すると、コイルに発生する磁力も逆向きになり、結果としてモーターの回転方向も逆向きになります。
つまり、DCモーターの回転方向は、モーター端子に印加する電圧の極性によって決定されるのです。正転させたいときはA端子にプラス、B端子にマイナス、反転させたいときはA端子にマイナス、B端子にプラスを接続すれば良い、ということです。
正転・反転制御の基本的な考え方:極性切り替え
DCモーターの回転方向を変えるためには、電源の極性を切り替える必要があることがわかりました。最も単純な極性切り替え回路は、スイッチを使ったものです。
例えば、2つの電源と2つの単投スイッチ(ON/OFFスイッチ)を使う方法や、より一般的には「双投双極スイッチ(DPTTスイッチ)」と呼ばれるスイッチを使う方法があります。
図1に示すようなDPTTスイッチを使った回路を想像してみましょう。モーターの2つの端子を、それぞれDPTTスイッチの中央の端子に接続します。スイッチの一方の方向には、電源のプラスとマイナスが「正方向」になるように配線し、もう一方の方向には、電源のプラスとマイナスが「逆方向」になるように配線します。
このスイッチを正方向側に倒すと、モーターには電源のプラスとマイナスが正方向で印加され、モーターは正転します。スイッチを逆方向側に倒すと、モーターには電源のプラスとマイナスが逆方向で印加され、モーターは反転します。スイッチを中央に戻すと、モーターへの電源供給が断たれて停止します。
このスイッチを使った方法は、手動でモーターの方向を切り替える場合に有効です。しかし、電子回路から信号で制御したい場合、例えばマイコンを使ってロボットの動きをプログラムで制御したい場合などには、物理的なスイッチを人間の手で操作するわけにはいきません。また、高速に方向を切り替えたい場合や、大きな電流を扱う場合にも、物理的なスイッチは限界があります。
そこで必要になるのが、電子的に電源の極性を切り替えることができる回路です。これこそが、Hブリッジ回路の役割です。
Hブリッジ回路とは何か:構造と役割
Hブリッジ回路は、電子的にDCモーターの回転方向を制御するための基本的な回路です。その名前は、回路図を描いたときに、モーターとスイッチの配置がアルファベットの「H」の字に似ていることに由来します。
Hブリッジ回路は、4つのスイッチと1つのモーターで構成されます。これらのスイッチは、通常、バイポーラトランジスタ(BJT)やパワーMOSFETといった半導体スイッチで実現されます。図2のように、電源のプラス端子とマイナス端子(GND)の間に、2つのスイッチの縦方向のペアを並列に接続します。そして、この2つのペアの間、ちょうど「H」の横棒にあたる部分にモーターを接続します。
具体的には、
* 電源プラス端子から、スイッチS1とスイッチS2へ。
* スイッチS1の反対側から、モーターの一方の端子へ。
* スイッチS2の反対側から、モーターのもう一方の端子へ。
* モーターの一方の端子から、スイッチS4へ。
* モーターのもう一方の端子から、スイッチS3へ。
* スイッチS3とスイッチS4の反対側から、電源マイナス端子(GND)へ。
このように接続すると、4つのスイッチ S1, S2, S3, S4 によって、モーターの両端子に印加される電圧の極性を切り替えることが可能になります。
この回路の主な役割は以下の通りです。
- 正転制御: モーターに特定の方向で電流を流す。
- 反転制御: モーターに逆の方向で電流を流す。
- 停止制御: モーターへの電流供給を遮断する。
- ブレーキ制御: モーターの回転を強制的に停止させる。
これらの動作モードは、4つのスイッチのON/OFFの組み合わせによって実現されます。
Hブリッジの動作原理:各モードの詳細
それでは、4つのスイッチ S1, S2, S3, S4 をどのように制御することで、前述の各動作モードを実現するのかを詳しく見ていきましょう。モーターには2つの端子があり、仮にこれらをM+端子とM-端子と呼びます。モーター内部の電流経路は、M+からM-へ流れる場合と、M-からM+へ流れる場合で回転方向が逆になるとします。
1. 正転モード
モーターをM+からM-の方向に電流を流して正転させるには、図3のように、スイッチS1とS4をONにし、スイッチS2とS3をOFFにします。
このとき、電流は電源のプラス端子から S1 を通り、モーターのM+端子へ流れ込みます。モーターを通過した電流はM-端子から出て、S4 を通って電源のマイナス端子(GND)に戻ります。
電流経路:電源+ → S1 → モーター(M+ → M-) → S4 → 電源-
これにより、モーターは正転します。このとき、S2とS3はOFFになっているため、モーターには別の経路で電流が流れることはありません。
2. 反転モード
モーターをM-からM+の方向に電流を流して反転させるには、図4のように、スイッチS2とS3をONにし、スイッチS1とS4をOFFにします。
このとき、電流は電源のプラス端子から S2 を通り、モーターのM-端子へ流れ込みます。モーターを通過した電流はM+端子から出て、S3 を通って電源のマイナス端子(GND)に戻ります。
電流経路:電源+ → S2 → モーター(M- → M+) → S3 → 電源-
これにより、モーターは反転します。このとき、S1とS4はOFFになっています。
3. 停止モード(フリー回転)
モーターへの電源供給を断ち、モーターを慣性で自由に回転させたい場合は、図5のように、全てのスイッチをOFFにします。しかし、通常は上下どちらかのスイッチペアをOFFにします。例えば、S1とS2をOFFにし、S3とS4もOFFにすることで、モーターの両端子はどこにも接続されない状態(開放状態)になります。
このとき、モーターには電流が流れないため、モーターは外部からのトルクや内部の慣性によって回転を続けます。特に負荷が小さい場合や慣性が大きい場合には、すぐに停止せずしばらく回転し続けます。これを「フリー回転」や「コースティング」と呼びます。
また、上下どちらかのスイッチペアだけをONにする方法もありますが、これは通常推奨されません。例えばS1とS2だけをONにすると、電源が短絡(ショート)してしまう可能性があります。したがって、安全な停止のためには、全てのスイッチをOFFにするか、後述するブレーキモードを使用します。
4. ブレーキモード(ショートブレーキ)
モーターの回転を強制的に、かつ素早く停止させたい場合は、モーターの両端子を短絡させることでブレーキをかけることができます。これは、回転しているモーターが発電機として働くことによって生じる逆起電力と、短絡経路に流れる電流による電磁ブレーキ効果を利用したものです。
Hブリッジ回路でショートブレーキを実現するには、図6のように、モーターの両端子を電源ラインの片側に接続します。例えば、スイッチS1とS3を同時にONにし、S2とS4をOFFにします。
このとき、モーターのM+端子はS1を介してGNDに、M-端子はS3を介してGNDに接続されます。つまり、モーターの両端子はGNDに短絡された状態になります。モーターが回転していると、その内部のコイルに電圧(逆起電力)が発生し、この短絡経路(モーター → S3 → S1 → モーター)に電流が流れます。この電流によって、モーターの回転を妨げる方向のトルクが発生し、モーターは急速に停止します。
同様に、スイッチS2とS4を同時にONにし、S1とS3をOFFにしても、モーターの両端子は電源プラス端子に接続され、短絡状態となりブレーキがかかります(電流経路:モーター → S4 → S2 → モーター)。どちらの組み合わせでも同様のブレーキ効果が得られます。
重要な注意点:貫通電流(ショットスルー)
Hブリッジ回路において、最も危険な状態の一つが「貫通電流」です。これは、同じ縦方向のラインにある上下のスイッチ(S1とS3、またはS2とS4)が同時にONになってしまう状態を指します。
例えば、S1とS3が同時にONになってしまうと、電流は電源のプラス端子から S1 を通り、直接 S3 を通って電源のマイナス端子(GND)に流れてしまいます(電源+ → S1 → S3 → 電源-)。この経路にはモーターのような負荷がないため、非常に大きな電流(短絡電流)が流れます。これは電源をショートさせているのと同じ状態であり、Hブリッジを構成する半導体スイッチや電源回路に極めて大きな負荷がかかり、部品の破壊や発熱、最悪の場合は発火につながる可能性があります。
貫通電流は、スイッチの制御信号が誤っている場合だけでなく、スイッチのON/OFFに固有の遅延時間があることによっても発生し得ます。例えば、S1をOFFにしてからS3をONにするという制御信号を与えたとしても、S1が完全にOFFになる前にS3がONになってしまうと、わずかな時間ですがS1とS3が同時にONになる期間が生じます。これを防ぐためには、一方のスイッチをOFFにしてから、十分な時間(「デッドタイム」または「不感時間」と呼ばれる)を置いてからもう一方のスイッチをONにするという制御が必要になります。
Hブリッジを構成する半導体スイッチ:トランジスタとMOSFET
Hブリッジ回路のスイッチとして、一般的にバイポーラトランジスタ(BJT)またはパワーMOSFETが使用されます。それぞれの特徴とHブリッジでの使い方を見ていきましょう。
1. バイポーラトランジスタ (BJT)
バイポーラトランジスタにはNPN型とPNP型があります。Hブリッジでは、電源のプラス側(Highサイド)にPNPトランジスタ、マイナス側(Lowサイド)にNPNトランジスタを使用するのが一般的な構成の一つです(図7)。
- NPNトランジスタ: Lowサイドのスイッチ(S3, S4)として使用されます。ベースに電流を流すことでコレクタ-エミッタ間が導通(ON)し、ベース電流を止めると非導通(OFF)になります。エミッタをGNDに接続する場合、ベースにマイコンの出力電圧(例えば5V)を抵抗を介して印加すればONにできます。
- PNPトランジスタ: Highサイドのスイッチ(S1, S2)として使用されます。エミッタを電源プラス端子に接続する場合、ベース電圧をエミッタ電圧(電源電圧)より十分に低い電圧にすることでコレクタ-エミッタ間が導通(ON)します。ベース電圧をエミッタ電圧に近い電圧にすることで非導通(OFF)になります。NPNトランジスタのように単純にベースにHIGH信号を与えれば良いわけではなく、電源電圧を基準とした制御が必要になるため、駆動回路がやや複雑になることがあります。
トランジスタを使ったHブリッジの駆動:
トランジスタをスイッチとして使うためには、ベースに適切な電流を流す必要があります。特にパワー用途では、十分なコレクタ電流を流すために、ベース電流もある程度必要になります。マイコンのGPIOピンから直接ベースを駆動する場合、ベース抵抗の選定が重要です。抵抗値が大きすぎると十分なベース電流が流れずトランジスタが完全にONせず(飽和しない)、ON状態でのコレクタ-エミッタ間電圧(Vce(sat))が高くなり、電力損失と発熱が増加します。抵抗値が小さすぎるとマイコンのピンから流れ出し/流れ込み可能な電流容量を超えてしまう可能性があります。
PNPトランジスタをHighサイドで駆動する場合、そのベース電圧を電源電圧近くまで持ち上げる必要があるため、特別な駆動回路(例:NPNトランジスタやフォトカプラを使ったレベルシフト回路)が必要になることがあります。
利点:
* 比較的安価で入手しやすい。
* 基本的なスイッチング動作の理解が容易。
欠点:
* スイッチング速度がMOSFETに比べて遅い傾向がある。
* ON状態でのコレクタ-エミッタ間電圧降下(Vce(sat))があるため、電力損失がMOSFETより大きくなる場合がある。
* 駆動回路(特にHighサイドPNP)が複雑になりがち。
* 電流制御(ベース電流)なので、駆動回路の設計に考慮が必要。
2. パワーMOSFET
パワーMOSFETにはNチャネル(Nch)とPチャネル(Pch)があります。Hブリッジでは、トランジスタと同様に、LowサイドにNch MOSFET、HighサイドにPch MOSFETを使用するのが一般的な構成の一つです(図8)。ただし、Nch MOSFETの方が性能(ON抵抗が低く、スイッチング速度が速い)が良いことが多いため、4つ全てをNch MOSFETで構成し、HighサイドのNch MOSFETを特別なゲート駆動回路(ブートストラップ回路など)で駆動する構成も高性能なHブリッジではよく採用されます。
- Nch MOSFET: Lowサイドのスイッチ(S3, S4)として使用されます。ドレインをモーターに、ソースをGNDに接続する場合、ゲート-ソース間電圧(Vgs)が閾値電圧(Vth)より高くなるとドレイン-ソース間が導通(ON)します。ゲートをGNDに接続すると非導通(OFF)になります。マイコンの出力電圧(例:5V)を直接ゲートに印加すればONにできます(ただし、MOSFETの種類によってはゲート閾値電圧が高く、5Vでは完全にONしないロジックレベル対応でないものもあるので注意)。
- Pch MOSFET: Highサイドのスイッチ(S1, S2)として使用されます。ソースを電源プラス端子に接続する場合、ゲート-ソース間電圧(Vgs)がマイナスの閾値電圧より低くなるとドレイン-ソース間が導通(ON)します。つまり、ゲート電圧をソース電圧(電源電圧)より十分に低い電圧にすることでONになります。ゲート電圧をソース電圧に近い電圧にするとOFFになります。HighサイドPNPトランジスタと同様、駆動には電源電圧を基準とした制御が必要になります。
MOSFETを使ったHブリッジの駆動:
MOSFETは電圧制御型のデバイスであり、スイッチング状態を維持するためのゲート電流はほとんど不要ですが、スイッチング時にはゲート容量を充放電するための電流が瞬間的に流れます。特にパワーMOSFETはゲート容量が大きい傾向があるため、高速なスイッチングを行うためには、ゲートを素早く充放電できる強力なゲートドライバー回路が必要になります。
LowサイドのNch MOSFETは比較的容易に駆動できますが、HighサイドのPch MOSFETや特にHighサイドのNch MOSFETを駆動するには、ゲート電圧を電源電圧より高い電圧まで持ち上げるブートストラップ回路や、専用のゲートドライバーICが必要になることが多く、ディスクリート部品で構成する場合の回路は複雑になります。
利点:
* スイッチング速度が速い。
* ON状態でのドレイン-ソース間抵抗(R_DS(on))が低いため、電力損失が少なく、発熱を抑えられる(高効率)。
* 電圧制御型であるため、駆動回路の消費電力がトランジスタより少ない(スイッチング時を除く)。
欠点:
* トランジスタより高価な場合がある。
* ゲート駆動回路が複雑になる場合がある(特にHighサイドNch)。
* 静電気に弱い性質を持つものがある。
* ゲート容量によるスイッチング時の駆動電流スパイクが大きい。
どちらを選ぶか?
どちらのタイプの半導体スイッチを使うかは、必要なモーター電流、電源電圧、スイッチング速度(PWM制御を行うか)、コスト、設計の複雑さなどを考慮して決定します。
- 比較的低速なスイッチングで、コストを抑えたい場合や、回路のシンプルさを優先する場合は、トランジスタを使うこともあります。
- 高速なスイッチング(PWM制御)を行い、高効率なモーター制御を実現したい場合は、MOSFETが適しています。特に近年では、パワーMOSFETの性能向上と価格低下により、MOSFETを使ったHブリッジが主流になりつつあります。
ただし、ディスクリート部品でHブリッジを構成する場合、特にMOSFETではゲート駆動回路やデッドタイム制御が複雑になるため、次に説明するHブリッジドライバーICを利用することが一般的です。
保護部品の重要性
安全で信頼性の高いHブリッジ回路を構築するためには、半導体スイッチだけでなく、適切な保護部品を組み合わせることが非常に重要です。
1. フライホイールダイオード(還流ダイオード、フリーホイーリングダイオード)
DCモーターはコイル(インダクタンス)の性質を持っています。電流が流れているコイルの電流を急に遮断すると、その電流を維持しようとする方向に非常に高い電圧(逆起電力、誘導電圧)が発生します。この逆起電力は、Hブリッジの半導体スイッチに定格以上の電圧ストレスを与え、破壊する可能性があります。
これを防ぐために、Hブリッジ回路では、図9のように、各半導体スイッチと逆並列にダイオードを接続します。このダイオードは「フライホイールダイオード」と呼ばれます。
スイッチがOFFになった瞬間、モーターのインダクタンスによって発生した電流は、このフライホイールダイオードを通って循環(還流)します。例えば、正転モードでS1とS4がONのときに電流が流れているとします。この状態でS1とS4をOFFにすると、モーターにはインダクタンスによって電流を流し続けようとする働きがあります。この電流は、S4がOFFになった後、モーターのM-端子から出て、ダイオードD2を通って電源プラス側に還流し、S1がOFFになった後、電源プラス側からダイオードD4を通ってモーターのM+端子に戻る、といった経路で循環します(これは瞬間的な逆起電力による電流経路であり、モーターがブレーキモードに入った際の電流経路とは異なります)。
このように、フライホイールダイオードはスイッチOFF時に発生する逆起電力を逃がす「バイパス路」となり、半導体スイッチを過電圧から保護する役割を果たします。PWM制御のように高速なスイッチングを行う場合は、このダイオードもモーターのインダクタンスによって急に変化する電流に対応できる、応答速度の速い「高速リカバリダイオード」や「ショットキーバリアダイオード」を選択することが推奨されます。ダイオードの定格電流は、モーターの最大電流に耐えられるものを選びます。
2. 平滑コンデンサ
モーターは、起動時や停止時、負荷変動が大きい時などに、瞬間的に大きな電流を消費する性質があります。電源から回路への配線にある程度の抵抗やインダクタンスがあると、このような大電流が流れた際に電源電圧が一時的に大きく降下してしまうことがあります(電圧サグ)。電圧降下は回路全体の不安定化や誤動作を引き起こす可能性があります。
これを防ぐために、Hブリッジ回路の電源入力端子や、Hブリッジを構成する半導体スイッチの近くに、比較的容量の大きな電解コンデンサや積層セラミックコンデンサを配置します(図9のC1)。このコンデンサは、モーターが瞬間的に大電流を要求した際に、電源からの供給だけでは不足する電流を一時的に補う「電流のリザーバー(貯蔵庫)」として機能します。これにより、電源電圧の変動を抑制し、回路動作を安定させます。また、スイッチング時に発生するノイズの吸収(バイパス)効果も期待できます。
3. ヒューズ
予期せぬ短絡やモーターの拘束(ロック)によって、定格を大きく超える過電流が流れる可能性があります。このような過電流は、回路や部品を破壊し、最悪の場合は火災の原因にもなります。
回路全体を保護するため、電源入力部の直後に適切な定格のヒューズを設置することが強く推奨されます。ヒューズは、設定された電流値以上の電流が流れると溶断し、回路を物理的に切り離して被害の拡大を防ぎます。ヒューズの定格は、通常動作時の最大電流よりも大きく、ただし異常時に回路を保護できる適切な値を選択する必要があります。
Hブリッジの設計と製作:デッドタイムの重要性
ディスクリート部品(トランジスタやMOSFET)を使ってHブリッジ回路を設計・製作する際には、部品選定や配線だけでなく、安全な動作のために考慮すべき重要な点があります。その中でも特に重要なのが「デッドタイム(不感時間)」の確保です。
部品選定のポイント
- 半導体スイッチ: モーターの最大動作電流(ロック時のストール電流も考慮)と電源電圧に対して、十分な電流定格と電圧耐圧を持つものを選びます。例えば、モーターの定格電流が1Aでも、起動時やロック時には5A以上流れる場合があるため、スイッチの電流定格はそれ以上の余裕を持たせることが重要です(例えば10A以上)。電圧耐圧も、電源電圧だけでなく、スイッチOFF時に発生しうる逆起電力も考慮して、電源電圧の1.5倍~2倍程度の余裕があると安心です。スイッチング速度(ターンオン時間、ターンオフ時間)も、PWM制御を行う場合は重要な選定要素です。
- フライホイールダイオード: 半導体スイッチと同等以上の電流定格と電圧耐圧を持ち、特にPWM制御を行う場合はスイッチング速度に見合う高速リカバリ特性を持つものを選びます。
- 抵抗、コンデンサ: 信号ラインの抵抗値や、電源ラインのコンデンサ容量・耐圧などを適切に選定します。
デッドタイムの重要性とその実現方法
前述したように、Hブリッジの上下のスイッチ(S1とS3、S2とS4)が同時にONになると、電源の短絡(貫通電流)が発生し、部品が破壊される可能性があります。半導体スイッチのON/OFFには固有の遅延時間(ターンオン遅延、ターンオフ遅延)が存在します。特に、スイッチがOFFになるまでの時間(ターンオフ時間)は、ONになるまでの時間(ターンオン時間)よりも長い傾向があります。
この遅延のため、例えばS1をON、S3をOFFの状態から、S1をOFF、S3をONに切り替えようとした場合、S1のOFF信号を出してからS3のON信号を出すという単純な制御では、S1が完全にOFFになる前にS3がONになってしまい、一瞬だけS1とS3が両方ONになる期間が発生してしまう可能性があります。これが貫通電流の原因となります。
これを確実に防ぐためには、一方のスイッチをOFFにするための信号を与えてから、必ず十分な時間(デッドタイム)を置いてから、もう一方のスイッチをONにするための信号を与える必要があります。このデッドタイムの長さは、使用する半導体スイッチのターンオフ時間やターンオン時間、およびスイッチング特性のばらつきを考慮して決定する必要があります。一般的には、数マイクロ秒から数十マイクロ秒程度のデッドタイムが設定されることが多いです。
デッドタイムを実現する方法はいくつかあります。
- ハードウェアによるデッドタイム挿入:
- 遅延回路: RC回路や、特定のロジックIC(例えば、ANDゲートとNOTゲートの組み合わせ、または専用の遅延回路IC)を制御信号ラインに挿入することで、自動的にデッドタイムを確保する方法です。設計は少し複雑になりますが、制御信号の生成方法に依存しない独立したデッドタイムが確保できます。
- 専用ゲートドライバーIC: MOSFET駆動用のゲートドライバーICの中には、デッドタイム挿入機能を内蔵しているものがあります。
- ソフトウェアによるデッドタイム挿入:
- マイコン制御: マイコンのプログラムで、Hブリッジの制御ピンを操作する際に、デジタル出力ピンの操作の間に短い待ち時間(
delayMicroseconds()
などの関数を使って)を挿入することで、デッドタイムを確保します。例えば、正転から反転に切り替える際に、S1とS4をOFFにしてから、一定時間待ってからS2とS3をONにする、といった処理を行います。この方法はソフトウェアの変更でデッドタイムを調整できる利便性がありますが、マイコンの処理速度や他の処理との兼ね合いによっては正確なデッドタイム制御が難しい場合もあります。
- マイコン制御: マイコンのプログラムで、Hブリッジの制御ピンを操作する際に、デジタル出力ピンの操作の間に短い待ち時間(
安全なHブリッジ回路を製作するためには、このデッドタイムの確保が極めて重要であることを理解し、適切な方法で確実に実装する必要があります。
製作の注意点
- 配線: 特に大電流が流れる電源ラインやモーターラインは、太く短い配線を使用します。細い配線や長い配線は抵抗値が高くなり、電力損失による発熱や電圧降下の原因となります。配線材の選定や、基板設計(パターン幅を広く、ベタパターンを活用するなど)に配慮が必要です。
- 半田付け: 部品は確実に半田付けします。接触不良は抵抗値の増加や断線の原因となり、大電流回路では発熱や動作不良に直結します。
- 放熱: 大電流を扱う半導体スイッチは、動作時に発熱します。選定した部品の定格電流やスイッチング損失から予測される発熱量を考慮し、必要であればヒートシンクを取り付けたり、基板の放熱設計(広い銅箔面積)を行ったりします。部品の温度が定格を超えないように注意が必要です。
- ノイズ対策: モーターは大きなスイッチングノイズを発生させやすい負荷です。電源ラインのコンデンサに加え、制御信号ラインにプルアップ/プルダウン抵抗を入れたり、信号ラインと電源ラインを離して配線したりといったノイズ対策も検討します。
HブリッジドライバーIC:簡単・安全・高機能なモーター制御
ディスクリート部品でHブリッジを構成することは、回路の仕組みを理解する上で非常に有益ですが、前述のように部品点数が多くなりがちで、特にゲート駆動やデッドタイム制御、保護機能の実装は複雑になり、ある程度の電子回路の知識と設計能力が要求されます。
そこで、現代の電子工作や産業用途で広く利用されているのが、「HブリッジドライバーIC」です。これは、Hブリッジ回路そのものや、それを駆動するために必要な回路(ゲートドライバー、ロジック回路、デッドタイム制御回路、保護回路など)を1つのチップに集積したものです。
HブリッジドライバーICを使用するメリットは以下の通りです。
- 部品点数の削減: Hブリッジを構成する4つのスイッチやフライホイールダイオード、駆動回路などが内蔵されているため、周辺部品を大幅に削減できます。
- 設計・製作の容易化: 複雑な半導体スイッチの駆動回路やデッドタイム回路を自分で設計する必要がなくなり、データシートに従って正しく配線すれば、比較的容易にHブリッジ機能を実現できます。
- 高性能化: IC内部で最適なゲート駆動やデッドタイム制御が行われるため、ディスクリート部品で同等の性能を出すよりも容易です。
- 保護機能の内蔵: 多くのドライバーICは、過電流保護、過熱保護、低電圧ロックアウトなどの保護機能を内蔵しています。これにより、モーターの異常時や電源の問題から回路を保護し、安全性が向上します。
- マイコンとのインターフェース容易性: マイコンからの信号(TTLやCMOSレベル)で直接Hブリッジの動作を制御できるよう設計されているものがほとんどです。PWM信号入力に対応しているものも多く、速度制御も容易に行えます。
代表的なHブリッジドライバーICの紹介
市場には様々な種類のHブリッジドライバーICが存在し、それぞれに特徴があります。ここでは、電子工作でよく使われる代表的なICをいくつか紹介します。
- L298N:
- STMicroelectronics製のデュアルHブリッジドライバーICです。1つのICで2つのDCモーターを独立して制御できます(または、2つのHブリッジを並列にして1つのモーターを大電流で駆動することも可能)。
- 比較的古い設計ですが、広く普及しており、モジュールとしても安価に入手できます。
- 入力ピン(IN1, IN2, IN3, IN4)とイネーブルピン(EN A, EN B)で制御します。INピンで方向を指定し、ENピンにPWM信号を入力することで速度制御が可能です。
- 動作電圧範囲が比較的広く、ある程度の電流(1モーターあたり最大2A程度、ピーク3A)を扱うことができます。
- ただし、ON状態での内部電圧降下(飽和電圧)が比較的大きいため、特に大電流を流す際には発熱が大きくなりやすく、ヒートシンクが必要になります。
- TB6612FNG:
- 東芝製の小型・高効率なデュアルHブリッジドライバーICです。L298Nよりも新しい世代のICで、MOSFETを内蔵しているためON抵抗が低く、発熱が少なく高効率です。
- 動作電圧範囲は電源電圧(モーター電源)が15V程度まで、ロジック電圧(制御信号)が2.7V~5.5Vと、低電圧のマイコンとのインターフェースに適しています。
- 1モーターあたり最大1.2A程度、ピーク3.2Aの電流を扱うことができます。
- スタンバイ機能や、ブレーキモード時の消費電流が少ないといった特徴があります。
- 小型パッケージで提供されることが多く、ブレッドボードでの試作には変換基板などが必要になる場合がありますが、扱いやすいモジュールも多数販売されています。
- DRV8825 / DRV8829:
- Texas Instruments製のモータードライバーICです。主にステッピングモータードライバーとして非常に有名ですが、内部構成がHブリッジアレイになっているため、DCモーター制御にも応用可能です。
- 高電圧、高電流に対応できるものがあります(例:DRV8825は最大45V、約1.5A/相)。
- 高効率で保護機能も充実しています。
- ただし、ステッピングモーター制御に特化した機能(ステップ制御など)を持つため、DCモーター制御に使う場合はデータシートをよく読んで、適切なモード設定をする必要があります。また、ピン配置が特殊なものもあります。
- より高電流対応のIC:
- VNH2SP30 (STMicroelectronics)、BTS7960 (Infineon) など、数十アンペアの大電流に対応できる単一のHブリッジドライバーICも存在します。これらは産業用途や大型ロボットなどで使用されます。
ドライバーICの使い方(一般的な例)
ドライバーICの使い方は、種類によって異なりますが、多くの場合、以下のピンがあります。
- VM / VS (Motor Voltage Supply): モーター駆動用の電源電圧を入力します。
- VCC / VIO (Logic Voltage Supply): IC内部のロジック回路や制御信号用の電源電圧を入力します。マイコンの動作電圧(3.3Vまたは5V)を接続することが多いです。
- GND: グランド接続ピン。
- OUT1, OUT2: モーターの端子に接続する出力ピン。
- IN1, IN2 (Input): Hブリッジの方向制御を行うための入力ピン。これらのHIGH/LOWの組み合わせで、正転、反転、停止、ブレーキなどを制御します。
- EN (Enable): Hブリッジの出力を有効/無効にするためのピン。このピンをHIGHにするとHブリッジが動作可能になり、LOWにすると出力がハイインピーダンス状態またはショートブレーキ状態(ICによる)になり、モーターが停止します。このENピンにPWM信号を入力することで、速度制御を行うことが一般的です。
- PWM: 一部のICでは、方向入力ピンとは別にPWM入力専用のピンを持っているものもあります。
- FAULT: 過電流や過熱などの異常が発生した場合に出力される信号ピン。
ドライバーICを使用する際は、必ずデータシートを確認し、最大電圧、最大電流、制御信号の仕様、必要な周辺部品(コンデンサなど)、保護機能について理解することが重要です。特に、モーター電源電圧とロジック電源電圧が分かれているICの場合、両方を正しく接続する必要があります。
マイコンを使った制御:方向制御と速度制御(PWM)
Hブリッジ回路やHブリッジドライバーICを用意すれば、それをマイコン(Arduino、Raspberry Pi、ESP32など)と接続することで、プログラムによるモーターの方向制御と速度制御が可能になります。これは、ロボットの自律移動や、様々な装置の自動制御の基本となります。
1. 方向制御
HブリッジドライバーICのINピン(またはそれに相当するピン)をマイコンのデジタル出力ピンに接続します。通常、2つの入力ピンのHIGH/LOWの組み合わせによって、Hブリッジの出力状態が決まります。
例えば、一般的なドライバーICの場合:
IN1 | IN2 | Hブリッジ出力 (OUT1-OUT2) | モーター動作 |
---|---|---|---|
LOW | LOW | Hi-Z または ショート | 停止 or ブレーキ |
LOW | HIGH | LOW – HIGH | 反転 |
HIGH | LOW | HIGH – LOW | 正転 |
HIGH | HIGH | ショート | ブレーキ |
マイコンのプログラムで、これらのピンにdigitalWrite()
関数などを使ってHIGHまたはLOWを出力することで、モーターの回転方向やブレーキを制御できます。
2. 速度制御(PWM制御)
DCモーターの回転速度は、印加される電圧の大きさにほぼ比例します(厳密には負荷トルクにも依存しますが)。速度を制御するためには、モーターに印加する電圧を調整する必要があります。しかし、マイコンのデジタル出力は通常0Vかマイコンの電源電圧(例えば5V)のどちらかしか出力できません。そこで利用されるのが、PWM(Pulse Width Modulation:パルス幅変調)と呼ばれる技術です。
PWMは、デジタル信号のON(HIGH)とOFF(LOW)を高速に繰り返すことで、見かけ上の平均電圧を制御する手法です。一定周期(PWM周期)の中で、ONになっている時間の割合(デューティ比)を変化させることで、平均電圧を変化させます。デューティ比が0%なら常にOFFで平均電圧0V、100%なら常にONで平均電圧が最大電圧、50%ならONとOFFが半々で平均電圧は最大電圧の半分となります。
このPWM信号をHブリッジドライバーICのENピン(またはPWM入力ピン)に入力することで、モーターに印加される電圧を断続的にON/OFFし、見かけ上の平均電圧を調整して回転速度を制御できます。モーターはインダクタンスを持つため、PWMの周波数が十分に高ければ、電圧が高速にON/OFFされても電流は急に変化せず、結果として印加される平均電圧に応じた速度で滑らかに回転します。
- マイコンでのPWM出力: ほとんどのマイコンは、ハードウェアPWM機能を内蔵しています。Arduinoでは
analogWrite()
関数(実際はPWM出力)を使って、特定のピンからPWM信号を出力できます。デューティ比は0~255(8ビットPWMの場合)などの値で指定します。PWMの周波数はマイコンやピンによって異なりますが、モーター制御では一般的に数百Hzから数kHz程度の周波数が使われます。
マイコン制御の実装例(Arduinoを使用する場合の概念)
例えば、TB6612FNGドライバーICを使って1つのDCモーターを制御する場合を考えます。必要なピンは、方向制御用のIN1, IN2と、速度制御用のPWM(STBYやA/B端子へのPWM入力など方式による)です。
“`cpp
// TB6612FNG 制御ピン定義 (例)
const int motorAPWM = 3; // PWMピン (Arduino UNOの場合)
const int motorAIN1 = 4; // 方向制御ピン IN1
const int motorAIN2 = 5; // 方向制御ピン IN2
const int motorASTBY = 6; // スタンバイピン STBY
void setup() {
// ピンモード設定
pinMode(motorAPWM, OUTPUT);
pinMode(motorAIN1, OUTPUT);
pinMode(motorAIN2, OUTPUT);
pinMode(motorASTBY, OUTPUT);
// 初期状態:スタンバイ解除(動作可能に)
digitalWrite(motorASTBY, HIGH);
}
void loop() {
// 例1: モーターを正転で加速・減速
setMotor(1, 255); // 正転、最高速
delay(2000); // 2秒維持
setMotor(1, 0); // 正転、停止(PWM 0)
delay(1000); // 1秒停止
// 例2: モーターを反転で加速・減速
setMotor(-1, 255); // 反転、最高速
delay(2000); // 2秒維持
setMotor(-1, 0); // 反転、停止(PWM 0)
delay(1000); // 1秒停止
// 例3: ブレーキ
setMotor(0, 0); // ブレーキ (方向0を指定)
delay(2000); // 2秒維持
}
// モーター制御関数
// direction: 1=正転, -1=反転, 0=ブレーキ
// speed: 0~255 (PWM値)
void setMotor(int direction, int speed) {
// 速度を制限 (0~255の範囲に収める)
speed = constrain(speed, 0, 255);
if (direction == 1) { // 正転
digitalWrite(motorAIN1, HIGH);
digitalWrite(motorAIN2, LOW);
analogWrite(motorAPWM, speed); // PWM出力で速度制御
} else if (direction == -1) { // 反転
digitalWrite(motorAIN1, LOW);
digitalWrite(motorAIN2, HIGH);
analogWrite(motorAPWM, speed); // PWM出力で速度制御
} else { // direction == 0 (ブレーキまたは停止)
// TB6612FNGの場合、IN1/IN2をHIGH/HIGHでショートブレーキ
// または、analogWrite(motorAPWM, 0) と IN1/IN2=LOW/LOW でフリー停止
// ここではショートブレーキを採用
digitalWrite(motorAIN1, HIGH);
digitalWrite(motorAIN2, HIGH);
analogWrite(motorAPWM, 0); // ブレーキ時は通常PWM 0
// もしくは、analogWrite() を使わずに、ENピンをLOWにする方式のICであれば、
// digitalWrite(motorAEN, LOW); // ENピンで停止
}
}
“`
このサンプルコードは概念を示すものであり、実際のピン配置やドライバーICの種類によってコードは異なります。重要なのは、マイコンのデジタル出力とPWM出力を組み合わせて、Hブリッジ/ドライバーICの制御ピンを操作することで、モーターの方向と速度をプログラムから自由に制御できる、という点です。
応用例
Hブリッジ回路やHブリッジドライバーICによるDCモーター制御は、様々な電子工作プロジェクトや製品に応用されています。
- ロボット: ロボットの駆動輪(差動2輪、4輪など)やアーム、ハンドの関節などに使われるDCモーターの制御。複数のモーターを独立して制御することで、前進、後退、旋回などの複雑な動きを実現します。
- 電動車両(模型、実物): 電動カート、電動バイク、電動ラジコンカーなどのモーター駆動。アクセル操作やステアリング操作に応じて、モーターの速度や方向を制御します。
- 自動化システム: 工場や倉庫での搬送システム(コンベア、AGVなど)、自動ドア、電動シャッター、電動カーテンなどの駆動部。
- 家電製品: エアコンや換気扇のファン制御、ポンプ制御、プリンターやスキャナーの駆動メカニズム。
- ドローン: ドローンに使用されるブラシ付きDCモーター(小型ドローンなど)の速度制御。ただし、大型のドローンはブラシレスモーターを使用することが多く、制御方法が異なります。
- カメラスタビライザー: カメラの揺れを打ち消すためのジンバル機構に使用されるモーターの精密制御。
これらの応用例からもわかるように、Hブリッジ回路は、モーターを「動かす」だけでなく、「意図した通りに、正確に、安全に動かす」ために欠かせない技術です。
安全性に関する注意点
Hブリッジ回路は、電源とモーターを直接扱うため、設計や使用にあたっては安全性に十分に配慮する必要があります。
- 過電流保護: モーターの起動時やロック時などには、定格電流を大幅に超える電流が流れることがあります。Hブリッジ回路を構成する半導体スイッチや配線、コネクタなどは、この最大電流に耐えられる定格を持つものを選びます。また、ヒューズや過電流保護機能付きのドライバーICを使用することで、異常時の過電流による部品の破壊や火災を防ぎます。
- 過熱対策: 大電流が流れる部品(特に半導体スイッチやドライバーIC)は、電力損失によって発熱します。部品のデータシートで許容される最大接合部温度(Junction Temperature)を確認し、ヒートシンクの取り付けや基板設計での放熱対策によって、温度が定格を超えないようにします。特に連続運転や高デューティ比でのPWM制御を行う場合は、発熱量が大きくなる傾向があるため注意が必要です。
- 電圧耐圧: 半導体スイッチやコンデンサなどの部品は、電源電圧やスイッチOFF時に発生する逆起電力によるスパイク電圧に耐えられる十分な電圧耐圧を持つものを選びます。
- 電源容量: 使用するモーターが要求する最大電流を安定して供給できる電源を使用します。電源容量が不足すると、電圧降下によってモーターの性能が発揮できないだけでなく、回路の誤動作や不安定化を招きます。
- 配線と接続: 大電流が流れる部分は、接触抵抗や配線抵抗による損失を抑えるため、太く短い配線を使用し、確実に接続します。コネクタを使用する場合も、電流容量に注意して選定します。
- 貫通電流対策: 前述の通り、Hブリッジ回路で最も危険な状態です。デッドタイムの確保は必須であり、確実に実装されていることを確認します。ドライバーICを使用する場合は、内蔵のデッドタイム機能が正しく動作しているか、データシートで確認します。
- 極性間違い: 電源の極性を間違えて接続すると、回路が破壊される可能性があります。接続前に必ず確認します。
これらの安全対策を怠ると、部品の破壊だけでなく、発煙や発火といった重大な事故につながる可能性があります。特に高電圧・大電流を扱う回路では、細心の注意を払って設計・製作・運用を行う必要があります。
トラブルシューティング
Hブリッジを使ったモーター制御回路を製作・動作させている際に遭遇しやすいトラブルとその原因、対策についてまとめます。
- モーターが全く回らない:
- 原因: 電源が供給されていない、電圧が低すぎる、配線ミス、半導体スイッチがONにならない、モーターの故障、制御信号の誤り(全てのスイッチがOFFになっている、またはブレーキモードになっている)など。
- 対策: 電源電圧をテスターで測定する。配線を回路図と照らし合わせて確認する。各半導体スイッチのゲート/ベースに適切な制御信号が印加されているか確認する。半導体スイッチの導通状態を確認する。モーター単体を別途電源に接続して動作確認する。
- モーターが特定の方向(正転または反転)にしか回らない、または意図した方向と逆に回る:
- 原因: 制御信号の配線ミス(IN1とIN2が入れ替わっているなど)、制御信号の組み合わせ間違い(常に正転または反転の指示が出ている)、モーターの接続端子を逆に接続しているなど。
- 対策: マイコンからの制御信号が、Hブリッジ/ドライバーICの入力ピンに正しく伝わっているか確認する。プログラムの制御ロジックを確認する。モーターの端子とHブリッジ出力端子の接続が正しいか確認する。
- モーターが回転するが異常に発熱する、または半導体スイッチ/ドライバーICが異常に発熱する:
- 原因: 過電流(モーターがロックしている、過負荷、ショート)、貫通電流の発生、半導体スイッチのON抵抗が高い(部品選定ミス、または完全にONできていない)、放熱不足、高速スイッチングによる損失、モーターの故障など。
- 対策: モーターに無理な負荷がかかっていないか確認する。貫通電流が発生していないか制御信号とデッドタイムを確認する。半導体スイッチやICの定格がモーター電流に対して十分か確認する。駆動回路が適切で、半導体スイッチが完全にON(飽和)しているか確認する。ヒートシンクやファンによる放熱対策を見直す。
- 速度制御(PWM)がうまくいかない:
- 原因: PWM信号がHブリッジ/ドライバーICの適切なピン(ENピンなど)に接続されていない、PWM信号の周波数やデューティ比の設定が間違っている、マイコンのPWM出力設定ミス、Hブリッジ/ドライバーICがPWM入力に対応していない、または対応方式が異なるなど。
- 対策: PWM信号がドライバーICのデータシートで指定されたピンに正しく接続されているか確認する。オシロスコープなどでPWM信号が正しく出力されているか確認する。マイコンのPWM設定(ピン番号、周波数、分解能)を確認する。ドライバーICのデータシートでPWM制御の仕様を確認する。
- 異音や振動が発生する:
- 原因: PWM周波数が低すぎる、モーターの機械的な問題、Hブリッジのスイッチングノイズが原因など。
- 対策: PWM周波数を上げる(数百Hz~数kHz程度が一般的)。モーターを単体で回してみて異音がないか確認する。電源ラインや信号ラインに適切なコンデンサを入れてノイズ対策を行う。
トラブルが発生した際には、焦らずに回路図を見ながら、電源、制御信号、電流経路などを一つずつ確認していくことが重要です。テスターやオシロスコープなどの測定器があると、信号の状態を確認するのに非常に役立ちます。
まとめ
この記事では、電子工作におけるDCモーターの正転・反転・速度制御を実現するためのHブリッジ回路について、その基礎から応用まで詳細に解説しました。
DCモーターの回転方向が電源の極性によって決まるという原理に基づき、Hブリッジ回路は4つのスイッチを組み合わせて電子的に極性を切り替えることで、モーターの正転、反転、停止、そしてブレーキといった様々な動作モードを可能にする非常に有用な回路です。
Hブリッジを構成するスイッチとしては、バイポーラトランジスタやパワーMOSFETが使われます。それぞれの特徴を理解し、モーターの要求仕様に合わせて適切な部品を選定することが重要です。また、安全な動作のためには、フライホイールダイオードによる逆起電力保護や、貫通電流を防ぐためのデッドタイム確保といった対策が不可欠です。
現代の電子工作においては、これらのHブリッジ機能や駆動回路、保護機能を1チップに集積したHブリッジドライバーICが広く利用されており、より簡単かつ安全に高性能なモーター制御を実現することができます。
さらに、マイコン(Arduinoなど)とHブリッジ回路またはドライバーICを組み合わせることで、デジタル信号による方向制御や、PWMによるきめ細やかな速度制御をプログラムから実現でき、ロボットや様々な自動化システムなど、幅広い応用が可能となります。
Hブリッジ回路は、モーターを単に回すだけでなく、私たちの意図した通りに自在に操るための強力なツールです。この記事で解説した知識が、皆さんの電子工作におけるモーター制御の可能性を広げ、よりクリエイティブなプロジェクトを実現する一助となれば幸いです。安全に注意しながら、ぜひ実践してみてください。
参考資料・参考文献
(※ 実際の書籍名やウェブサイトのURLは割愛し、一般的な情報源の種類を記載します)
- 電子回路に関する基礎的な書籍
- トランジスタやMOSFETなどの半導体デバイスに関する書籍や技術資料
- HブリッジドライバーICのデータシートおよびアプリケーションノート(各メーカーのウェブサイトで公開されています)
- Arduinoなど、使用するマイコンに関する公式ドキュメントやリファレンス
- 電子工作関連のウェブサイトや技術ブログ