🛠️

【電子工作】MOSFETの使い方(実践)〜モーター・LED・高負荷をGPIOでスマートに制御する方法〜

に公開

はじめに

マイコンを用いた電子工作をしていると、モーター駆動などの、GPIOだけでは制御できない大きな電流を扱いたい場面が多々ある。このような場面で便利なのが、MOSFETである。

MOSFETはリレーのようにスイッチとして使うことができるが、静音かつ高速に動作し、小型で回路への組み込みが容易という利点を持つ。

リレーとは、外部からの電気信号を受けて内部の接点を切り替えることで、電気回路をオン/オフしたり切り替えたりすることができる電子部品。内部の電磁石で金属板を引き付けることで物理的にスイッチングしている。

そのため動作時に金属板が接触する音がする。また高速なスイッチング(ON/OFF)もできず、物理的に動作する部分があるため耐久性も低い。

MOSFETの動作原理や構造に関する情報は多く存在するが、電子工作に焦点を絞った実践的な使い方を簡潔にまとめた資料は多くない。そこで本記事では、エンハンスメント型NchMOSFETでモーターのON/OFFを制御する具体的な方法を解説する。

MOSFETとは

まず、MOSFETは「Metal-Oxide-Semiconductor Field-Effect Transistor」の略で、日本語では「金属酸化膜半導体電界効果トランジスタ」と訳される。名前は長いが、要は電圧で電流の流れを制御できるスイッチのような素子である。

MOSFETには、ゲート、ソース、ドレインという3つの端子が存在する。
ゲートに電圧を加えることによって、ドレイン・ソース間の電流(ドレイン電流)を流したり止めたりすることができる。回路図記号を以下に示す。

MOSFETとは?読み方と回路図記号の意味もわかりやすく解説, 電子回路の基礎 より引用

回路図記号をみてわかる通り、MOSFETは4種類存在する。分類は以下の通りである。

  • チャネルの極性による分類

    • Nch(Nチャネル)
    • Pch(Pチャネル)
  • 動作モードによる分類

    • エンハンスメント型(通常はOFF、電圧を加えるとON)
    • デプレッション型(通常はON、電圧を加えるとOFF)

電子工作でよく用いられるのは「エンハンスメント型のNchMOSFET」である。これは通常OFFで、ゲートに正の電圧を加えるとONになる。

ONはドレイン電流が流れる状態、OFFを流れない状態

また、NchMOSFETは負荷のマイナス側(GND側)に挿入(電源 - 負荷 - MOSFET - GND)する。

このとき、電流はドレインからソース方向(電源 → 負荷 → ドレイン → ソース → GND)に流れる。

MOSFET内部にはドレインからソース方向にのみ導通する構造(寄生ダイオードを含む)があるため、正常動作範囲ではソースからドレイン方向には電流は流れない。

一方、PchMOSFETは負荷のプラス側(電源側)に挿入(電源 - MOSFET - 負荷 - GND)し、ゲートをGNDより低い電位にするとONになるため、使用方法がやや異なる。

MOSFETの選び方

秋月電子のサイトなどでMOSFETを検索するとどれを選べばいいのかなかなかわからない。
データシート等をみて、最低限以下の点を留意して選定すればとりあえずは大丈夫。

  • ゲートしきい値電圧:3.3Vマイコンで動作させるので、ある程度余裕を持ってそれ以下のものがよい。
  • オン抵抗:小さいほど発熱が少なく効率が良い。
  • ドレイン電流:駆動したい負荷に対して十分な電流容量を持つことが求められる。

本記事では、秋月電子通商にて購入可能な「2SK4017(Q)」というNchパワーMOSFETを使用する。("パワー"とついているのは、比較的電流を多く流せるという意味)

https://akizukidenshi.com/catalog/g/g107597/

2SK4017のデータシート より、これらのパラメータを確認する。


しきい電圧が1.3〜2.5Vなので3.3VのGPIOで十分に駆動できる。

ただし、この値はドレイン・ソース間電圧が10Vの際のデータであるので、負荷にかける電圧が異なるとこの値は保証されない。なお筆者の環境では、ドレイン・ソース間電圧を3.3Vにしても問題なく駆動した。


ドレイン電流は絶対最大定格に記載されている。今回使用するものは5Aまで流すことができるようだ。

2SK4017(Q)のピン配置について

回路図の記号とは順番が異なるので注意が必要。印字がある面を上にすると、以下の配置となっている。

回路図(模式図)

以下のような回路を構成する。今回は、DCモーターの電源としてマイコンの5Vピンを使用する。
2種類の抵抗については後述。

電源を別にする場合は、マイコンと電源のGNDを共通にする必要がある。

プルダウン抵抗とゲート抵抗について

MOSFETのゲートは静電容量を持つ(コンデンサーが内部で直列に接続されているイメージ)ため、スイッチング時に突入電流が発生する。

コンデンサーは空の状態で印加すると、導線と同じように振る舞う。

そこで、GPIOとゲートの間にゲート抵抗を入れることで、突入電流を抑え、マイコンのGPIOを保護できる。
抵抗値は100Ω〜330Ω程度を目安にする。小さすぎると突入電流が大きくなり、マイコンのGPIOに負担がかかる。一方で大きすぎるとスイッチングが遅くなり、PWM用途では立ち上がりが鈍ることがある。

MOSFETのゲートはコンデンサ的なので、抵抗とあわせてRC回路として動作する。データシートより入力容量は730pF、RC回路の時定数を立ち上がり時間と近似してR_g = \frac{t_r}{C_{iss}}とかける。なお今回ゲート抵抗は220Ωとした。

また、ゲート抵抗は同じ素子でも用途に合わせて決める必要があり、高速スイッチング時の発熱など他にも考慮すべきことがある。そのあたりに関しては「MOSFET ゲート抵抗」等で検索すると解説している方がたくさんいらっしゃるのでここでは詳しい説明は割愛させていただく。

また、ゲートとGNDの間にプルダウン抵抗を入れることで、入力信号のないとき(マイコンの電源投入直後など)に確実にゲート電圧を0Vに落とすことで意図しない動作を防止する。

抵抗値は10kΩ〜100kΩ程度を使用する。大きめの値にすることで、通常の動作中に電流を消費しないようにしつつ、ゲート電圧を確実に0Vに引っ張る。値を小さくしすぎると、マイコンの出力と抵抗が電圧の分圧を起こすので注意する。

なおこれらの抵抗は省略しても動作する場合があるが、安全性と安定性の観点から入れることを推奨する。

マイコンのコード例

例えば、以下のようにゲート電圧のHIGH(3.3V)とLOW(0V)を0.5秒ごとに繰り返すことでモーターのON/OFFが制御できる。

#define GATE_PIN D1

void setup() {
  pinMode(GATE_PIN, OUTPUT);
}

void loop() {
  digitalWrite(GATE_PIN, HIGH);  // モーターON
  delay(500);
  digitalWrite(GATE_PIN, LOW);   // モーターOFF
  delay(500);
}

PWM制御も可能

MOSFETは非常に高速なスイッチングが可能であるため、PWM制御に適している。リレーのようにメカ的な接点を持たないため、数百kHz〜数MHzの周波数でもスイッチングが可能である。
たとえば、モーターの回転数を調整したり、LEDの明るさを滑らかに制御できる。

おわりに

今回は、電子工作の現場でありがちな「GPIOの電流では足りない」という課題に対し、MOSFETを用いた具体的な解決手法を紹介した。実際に回路を組み、動作を確認しながら理解を深めることで、座学だけでは得られない実践的な知見を数多く得ることができた。

今後もさまざまな素子を活用しながら、理論も学びつつ電子工作に取り組んでいきたい。

Discussion