※本記事にはプロモーション(広告)が含まれています。
トランジスタとMOSFETのどっちを使うかは負荷の電流で決まり、100mA くらいまでならどちらでも、超えるならロジックレベルの MOSFET が基本です。電流ごとの答えは早見表、3.3V で ON できる品番の見分け方はロジックレベルMOSFETの節へ。
トランジスタと MOSFET、マイコンで ON/OFF するならどっちを使うか。回路を作りはじめると、最初に迷うところです。
この記事では、ベース抵抗の計算の記事と同じ「3.3V のマイコンで負荷を動かす」場面で、2つの部品を実在の型番のデータシートの数字で比べます。

この記事で作るもの:同じ LED を2つの部品で点ける
左はトランジスタ(2N3904)、右は MOSFET(AO3400A)で、3.3V のマイコンから同じ LED を点ける回路です。部品の数はほとんど同じで、違うのは「何を流すか」です。
どちらも、マイコンの端子は「合図」を出すだけです。LED に流れる電流は、5V の電源から部品を通って GND へ流れます。部品は、その道をつないだり切ったりするスイッチの役です。
| トランジスタ | MOSFET | |
|---|---|---|
| 部品の例 | 2N3904(NPN) | AO3400A(N チャネル) |
| マイコンとの間 | ベース抵抗 Rb 2.4kΩ | ゲート抵抗 Rg 220Ω+プルダウン 100kΩ |
| ON にする方法 | ベースに電流 1.08mA を流しつづける | ゲートに 3.3V をかける |
| LED の側 | 5V → 150Ω → LED → コレクタ | 5V → 150Ω → LED → ドレイン |
トランジスタの側は、ベース抵抗の計算の記事で 2.4kΩ を出した回路そのものです。まだ読んでいない人は、先にそちらを読むと、この記事の比べ方がすっと入ります。
トランジスタで LED・リレーを動かすときのベース抵抗を、3ステップで計算
つまり、どちらも「マイコンの合図で、別の電源の電流をつなぐスイッチ」です。違いは、合図に電流が要るか、電圧だけでよいかです。

トランジスタとMOSFETの違い:電流で動くか、電圧で動くか
トランジスタは、ON のあいだずっとベースに電流(この例で 1.08mA)を流しつづけます。MOSFET は、ゲートに電圧をかけた一瞬だけ電流が流れ、あとはほとんど流れません。
トランジスタ(バイポーラ トランジスタ)は、ベースに流した電流の何倍かの電流を、コレクタからエミッタへ流す部品です。ベースの電流を止めると、OFF になります。だから ON のあいだは、マイコンがベースに電流を出しつづけます。
MOSFET は、ゲートに電圧をかけると、ドレインとソースの間がつながる部品です。ゲートは中で絶縁されていて、小さなコンデンサのようになっています。電圧をかけた瞬間にそのコンデンサへ電気がたまるあいだだけ電流が流れ、たまってしまえば流れません。
東芝の MOSFET のゲート駆動の資料も、MOSFET は「電圧駆動であり、ゲートに直流電流は流れません」と書いています。ON のあいだに流れるのは、ゲートの漏れ電流(AO3400A で最大 100nA=0.0001mA)だけです。
MOSFET の中で、ゲートの電圧が電流の通り道を作るしくみを図で
つまり、マイコンの端子から見ると、トランジスタは「ずっと電流を出す相手」、MOSFET は「電圧をかけるだけの相手」です。

足の名前の対応:ゲート・ドレイン・ソース
MOSFET の3本の足は、ゲート(G)・ドレイン(D)・ソース(S)です。回路の中の位置は、トランジスタのベース・コレクタ・エミッタと同じと考えて大丈夫です。
| 役目 | トランジスタ | MOSFET |
|---|---|---|
| 合図を入れる | ベース B | ゲート G |
| 負荷の電流が入る | コレクタ C | ドレイン D |
| GND へ出る | エミッタ E | ソース S |
| ON にする条件 | ベース電流 Ib を流す | ゲートとソースの間に電圧 VGS をかける |
AO3400A のような小さな MOSFET は、SOT-23 という3本足の小さなパッケージに入っています。データシートの上から見た図では、1番がゲート、2番がソース、3番がドレインです。ただし足の並びは品番ごとに違うことがあるので、必ずその品番のデータシートで確かめます。
つまり、G は B、D は C、S は E の位置。ローサイド(負荷の下)に置くときは、S を GND につなぎます。

VGS(th) は ON になる電圧ではない
VGS(th)(しきい値)は、MOSFET にほんの少し電流が流れはじめる電圧です。AO3400A では、0.25mA が流れるときの電圧が VGS(th) です。しっかり ON するかは、RDS(on) が書かれた行の VGS の条件で確かめます。
MOSFET を選ぶとき、いちばん多い読み違いがここです。AO3400A のデータシートでは、VGS(th) は「VDS=VGS、ID=250µA」の条件で、最小 0.65V・代表 1.05V・最大 1.45V です。
250µA は 0.25mA です。LED の 20mA や、モーターの 500mA とは桁が違います。VGS(th) の電圧では、MOSFET はやっと「流れはじめた」だけで、スイッチとしては半分も ON していません。
東芝の資料も、MOSFET を ON させるには「ゲートしきい値電圧 Vth より十分大きいゲート電圧」が必要だと書いています。どれくらい大きければよいかは、次の節の RDS(on) の行で確かめます。
つまり、VGS(th) は「流れはじめ」。ON の確かめに使うのは、RDS(on) の行に書かれた VGS の条件です。

ロジックレベルMOSFETの見分け方:RDS(on) の VGS の条件を見る
ロジックレベル MOSFET かどうかは、データシートの RDS(on) が、マイコンの電圧以下の VGS(3.3V なら 2.5V、5V なら 4.5V)で書かれているかで見分けます。AO3400A は 2.5V の行があり、2N7002 は 5V と 10V だけです。
RDS(on)(オン抵抗)は、ON のときの MOSFET の抵抗です。データシートでは、必ず「VGS=何V、ID=何A のとき」という条件つきで書かれています。この条件の VGS が、マイコンが出せる電圧以下なら、その抵抗で ON できることが保証されています。
| 見る行 | AO3400A | 2N7002(Diodes) |
|---|---|---|
| VGS(th)(流れはじめ) | 0.65〜1.45V | 1.0〜2.5V |
| RDS(on) VGS=2.5V | 48mΩ 以下(3A) | 書かれていない |
| RDS(on) VGS=4.5V / 5V | 32mΩ 以下(5A) | 7.5Ω 以下(50mA) |
| RDS(on) VGS=10V | 26.5mΩ 以下(5.7A) | 5.0Ω 以下(0.5A) |
| 流せる電流 ID | 5.7A | 115mA(DigiKey の表示) |
| VGS の最大 | ±12V | ±20V |
| VDS の最大 | 30V | 60V |
AO3400A は、VGS=2.5V で 3A を流しても 48mΩ 以下と書かれています。3.3V はそれより高いので、3.3V のマイコンで直接 ON できます。
2N7002 は、RDS(on) が 5V と 10V でしか書かれていません。5V のマイコンなら使えますが、3.3V では「ON できるか」の保証がありません。小さな MOSFET の定番ですが、3.3V で使うときは注意が要ります。
つまり、3.3V のマイコンなら「RDS(on) に 2.5V の行がある」品番を選ぶのが確実です。

マイコンで直接動かせるか:3つの確かめ
①RDS(on) の VGS の条件がマイコンの電圧以下か、②その RDS(on) で損失を計算して小さいか、③VDS と VGS の最大が足りるか、の3つを確かめます。
「ロジックレベル」は、ロジック(デジタル回路)の電圧で ON できる MOSFET の呼び名です。ただ、呼び名だけで決めると 4.5V 向けの品番を 3.3V で使ってしまうことがあります。必ず STEP 1 の行を見ます。
通販サイトで探すときは、DigiKey の「駆動電圧(最大Rdsオン、最小Rdsオン)」の欄が便利です。2N7002 のページでは「5V、10V」、2.5V で ON できる品番では 2.5V などが表示されます。この欄で絞り込めば、STEP 1 を一度に済ませられます。
つまり、VGS の条件 → 損失 → 電圧の上限、の順に3つ見れば、マイコンで直接動かせるかがわかります。

ゲート抵抗とプルダウン:2本の抵抗の役目と値
ゲート抵抗(220Ω)は、ON・OFF の切り替えの一瞬に流れる電流を抑えます。プルダウン(100kΩ)は、マイコンが合図を出していないあいだ、ゲートを 0V にして OFF を保ちます。
MOSFET のゲートは小さなコンデンサなので、電圧をかけた瞬間は、抵抗がないと大きな電流が流れようとします。ゲート抵抗を入れると、その一瞬の電流の上限が決まります。
切り替えにかかる時間の目安は、ゲート抵抗×入力の容量です。AO3400A の入力の容量(Ciss)は 630pF(代表値)なので、220Ω×630pF≒0.14µs です。LED やモーターを ON/OFF するには十分な速さです。
プルダウンは、ゲートとソース(GND)の間に入れる抵抗です。ON のあいだは 3.3V÷100kΩ=33µA が流れますが、ゲートの電圧は 3.3×100k÷(100k+220)≒3.29V で、ほとんど下がりません。
| 抵抗 | この記事の値 | 役目 | 大きすぎ・小さすぎると |
|---|---|---|---|
| ゲート抵抗 Rg | 220Ω | 切り替えの一瞬の電流を抑える | 大きすぎると切り替えが遅く熱い/小さすぎると一瞬の電流が大きい |
| プルダウン | 100kΩ | 合図がないとき OFF を保つ | 小さすぎると ON 中の電流が増える/大きすぎるとノイズに弱い |
東芝の資料(2.2節)も、3.3V のマイコンから MOSFET を直接動かす例に、ゲート抵抗と「入力信号がオープンになった場合にゲート・ソース間を 0V にする抵抗」の2本を入れています。値はこの記事の目安で、100Ω〜1kΩ・10kΩ〜100kΩ くらいの中から選ばれることが多いです。
つまり、ゲート抵抗は「一瞬の電流のブレーキ」、プルダウンは「何もしないときは OFF」の保険です。

プルダウンがないと、電源を入れた瞬間に負荷が動くことがある
多くのマイコンは、電源を入れてプログラムが始まるまで、端子が「浮いた」状態(どこにもつながっていない入力)です。プルダウンがないとゲートも浮き、負荷が一瞬動いたり、MOSFET が半分 ON のまま熱くなったりします。
電源を入れた直後やリセット中は、マイコンの端子は入力の状態になっていることが多いです。入力の端子は、ほとんど電流を流さないので、外から見ると何もつながっていないのと同じです。
MOSFET のゲートは電流を流さないので、浮いたゲートの電圧は、ノイズや近くの線の電圧で決まってしまいます。VGS(th) を少し超えると、負荷が一瞬動いたり、半分だけ ON の状態で MOSFET が熱くなったりします。
プルダウンを入れておけば、マイコンが合図を出すまで、ゲートは GND(0V)に引かれて OFF のままです。モーターやヒーターのように、勝手に動くと困る負荷では必ず入れます。
「浮いている」とはどんな状態か。プルアップ・プルダウンの値の決め方も
つまり、プルダウンは「プログラムが動きだすまでの OFF」を守る部品です。リセット中の端子の状態は、マイコンのデータシートで確かめます。

損失の比較:20mA・500mA・2A で計算する
損失は、トランジスタが VCE(sat)×I、MOSFET が I²×RDS(on) です。20mA では 6mW と 0.019mW、500mA では 500mW と 12mW。2A は小さなトランジスタでは流せず、AO3400A なら 192mW です。
ON のときに部品の中で熱になる電力(損失)を計算して比べます。トランジスタは ON でも VCE(sat)(飽和したときに残る電圧)が残り、MOSFET は RDS(on) の抵抗が残ります。
| 負荷の電流 | トランジスタ | MOSFET(AO3400A) |
|---|---|---|
| 20mA(LED) | 2N3904:0.02 × 0.3 = 6mW | 0.02² × 0.048 = 0.019mW |
| 500mA | MMBT2222A:0.5 × 1.0 = 500mW | 0.5² × 0.048 = 12mW |
| 2A | 小さなトランジスタでは流せない | 2² × 0.048 = 192mW |
VCE(sat) と RDS(on) は、どちらもデータシートの最大値です。2N3904 の VCE(sat) は 10mA で 0.2V、50mA で 0.3V の保証なので、20mA は安全側の 0.3V で計算しました。AO3400A の RDS(on) は VGS=2.5V の最大 48mΩ です。3.3V はそれより高いので、実際はもう少し小さくなります。
MMBT2222A は、流せる電流(IC)が 600mA の小さなトランジスタです。500mA で VCE(sat) は最大 1.0V なので、損失は最大 0.5W になります。
つまり、電流が大きくなるほど差が開きます。500mA では 42倍の差です。

マイコンの端子が出す電流:負荷が大きいとトランジスタは足りない
トランジスタは、負荷の電流が大きいほどベース電流も増えます。500mA では 37.5mA〜50mA が必要で、マイコンの端子1本では出せません。MOSFET のゲート電流は、負荷の大きさに関係なくほぼ 0 です。
トランジスタのベース電流は、ベース抵抗の計算の記事と同じ考え方で、負荷の電流÷hFE(最小値)×余裕の倍率で決まります。
マイコンの端子から出せる電流は、品種にもよりますが数mA〜十数mA ほどです。500mA の負荷をトランジスタで動かすには、トランジスタをもう1段足すなどの工夫が要ります。MOSFET なら、ゲートに 3.3V をかけるだけです。
つまり、100mA を超えるあたりから、MOSFET のほうが回路がずっと簡単になります。

熱で確かめる:損失×熱抵抗で温度の上がりを出す
温度の上がりは、損失×熱抵抗で計算します。AO3400A で 2A なら 0.192W×125℃/W≒24℃ で、周りが 25℃ なら約49℃です。MMBT2222A を 500mA で使うと、最大 0.5W で許される損失 0.31W を超えます。
熱抵抗は、「1W の損失で何℃上がるか」を表す数字です。データシートに、基板にのせたときの値が書かれています。
AO3400A の 125℃/W は、データシートの定常(ずっと流しつづける)の最大値です。損失は小さいので、2A でも余裕があります。
一方、MMBT2222A の許される損失は 310mW(決められた基板にのせたとき)です。500mA で最大 0.5W の損失が出ると、これを超えてしまいます。
損失×熱抵抗で温度を出す計算を、3端子レギュレータの発熱で練習
つまり、損失を出したら、熱抵抗をかけて温度まで確かめます。

早見表:マイコンでON/OFFするならどっち?
100mA くらいまではどちらでもよく、それを超えたらロジックレベルの MOSFET が基本です。速い PWM や大きな電流はゲートドライバ、電源の+側で切るなら P チャネルなどを使います。
| 負荷 | 選ぶもの | 例・見る所 |
|---|---|---|
| 〜100mA(LED・小さなブザー) | どちらでも | 2N3904+ベース抵抗/5V のマイコンなら 2N7002 |
| 100mA〜1A(リレー・小さなモーター) | MOSFET | RDS(on) に 2.5V(3.3V のマイコン)か 4.5V(5V)の行がある品番 |
| 1A〜数A(LED テープ・ファン) | MOSFET | RDS(on) と熱を計算(AO3400A で 2A なら 0.19W) |
| 速い PWM・大きな電流 | ゲートドライバ | マイコンの端子では切り替えの電流が足りない |
| 電源の+側で切る(ハイサイド) | P チャネルなど | N チャネル+3.3V では ON できない |
電流の区切り(100mA・1A)は、この記事の目安です。どの行でも、モーター・リレー・ソレノイドのようなコイルの負荷には、負荷と逆向きのダイオード(フリーホイールダイオード)を付けます。
つまり、答えだけ欲しいときは、負荷の電流の行を見て、右の列の「見る所」をデータシートで確かめます。

ブレッドボードで試す:SOT-23 は変換基板にのせる
AO3400A のような SOT-23 の部品は小さすぎて、そのままではブレッドボードに差せません。変換基板(足を太いピンに広げる小さな基板)にはんだ付けしてから差します。
まずは、ベース抵抗の計算の記事と同じ LED(5V・150Ω・約20mA)で試すと、トランジスタの回路と見比べられます。
つまり、S を GND、G に 2本の抵抗、D に負荷、の3か所を正しくつなげば動きます。

テスターで確かめる:VGS と VDS の2か所
最低限、ON のときに VGS(ゲートとソースの間)が約3.3V、VDS(ドレインとソースの間)が 0.1V 以下かを確かめます。VDS が 1V 近いなら、ON しきれていません。
最低限ここだけ
余裕があれば
2A のような大きな電流を流すときは、数分流したあとに MOSFET を指で触れずに、温度計や放射温度計で確かめます。熱で確かめる節の計算(約49℃)と比べて、ずっと熱いなら、配線や基板の熱の逃げ道を見直します。
つまり、VGS で「合図が届いているか」、VDS で「しっかり ON しているか」を確かめます。

よくある失敗4つ:MOSFET をマイコンで動かすとき
VGS(th) だけで選ぶ・プルダウンがない・電源の+側に N チャネルを置く・コイルの負荷にダイオードを付けない、の4つがよくある失敗です。
1. VGS(th) だけで選ぶ
「VGS(th) が 2.5V で 3.3V より低いから ON できる」と考えると失敗します。VGS(th) は流れはじめの電圧です。RDS(on) の行の VGS の条件を見ます。
2. プルダウンがない
マイコンのリセット中にゲートが浮き、負荷が一瞬動いたり、MOSFET が半分 ON で熱くなったりします。ゲートから GND へ 100kΩ を入れます。
3. 電源の+側に N チャネル(ハイサイド)
負荷の上(電源の+側)に N チャネルの MOSFET を置くと、ソースの電圧が負荷の分だけ持ち上がり、3.3V のゲートでは ON できません。N チャネルは負荷の下(ローサイド)に置きます。+側で切りたいときは P チャネルなどを使います。
なぜ+側(ハイサイド)の駆動は難しいのか。ローサイドとの違いを図で
4. コイルの負荷にダイオードを付けない
モーターやリレーは、OFF にした瞬間に逆向きの高い電圧を出します。負荷と逆向きにダイオードを付けて、その電流を逃がします。
リレー・モーターの逆向きの電圧を、ダイオードで逃がすしくみ
つまり、選ぶとき(RDS(on) の条件)・つなぐとき(プルダウン・ローサイド・ダイオード)の4点を、作る前に確かめます。


