ESP32やPIC、AVRなどのマイクロコントローラーは直接大きな負荷をドライブできないので必要に応じてトランジスターなどをスイッチとして使用する必要があります。
今回はMOSFET(金属酸化膜半導体電界効果トランジスタ)を使用してスイッチングを行う方法を紹介します。細かな原理や注意事項、各定数の選び方などは他に任せて、ここではとりあえず”使える”ことを目指します。
負荷がLEDではなくモーターなどの場合は逆起電力への対策等が必要です。今回は簡略化のためにそれらは省いています。また、後で述べますが、特にPchMOSFETでハイサイドスイッチを構成する場合はFETの耐圧に注意する必要があります。FETによるスイッチングについては他サイト等を参照して原理をよく理解して使用してください。
以下の紹介する回路とArduinoスケッチに関しては手元で実際に組んで動作確認(LEDが点滅するか)までは確認しています。
ハイサイドスイッチとローサイドスイッチ
負荷に対してスイッチを+側にいれる構成をハイサイドスイッチ、-側に入れる構成をローサイドスイッチと呼びます。
通常のスイッチであれば特に意識せず好きな方に設定すればよいのですが、MOSFETの場合はそれぞれの構成で使用するMOSFETの種類が異なります。基本的に以下の組み合わせのいずれかで使用します。
- ハイサイドスイッチ : Pch MOSFET
- ローサイドスイッチ : Nch MOSFET
ハイサイドスイッチの例(非推奨)
PchMOSFETは次のような特性でスイッチのON/OFFができます。スイッチがONのときソースからドレインに向かって電流が流れます。
- ゲート-ソース間電位が0の時OFF
- ゲートの電位がソースの電位よりも一定値(Vth)以上低くなるとON
非常に雑な説明ですがまずはこれだけ覚えてください。
回路図中のR1(10kΩ)は、R2に接続されたGPIOに何もつながっていない時、ソース-ゲート間の電圧を一定に保つためのものです(プルアップ)。なお、GPIOを”何もつながっていない”状態にするためには通常の出力モードではなく、Hi-Z(ハイインピーダンス)に対応したモードを使います。詳しくは以下にスケッチを載せますので参考にしてください(全く難しくありません)。
ここで、R2に接続されたGPIOの端子をGNDに落とした場合、ゲート電位は約0.5Vになりソース電位の5Vよりも約4.5V低くなります。今回選択したPchMOSFET(東芝2SJ681)のVthは0.8~2.0VですのでON状態となるはずです。
注意
Arduinoのスケッチ例
void setup() { //Pin設定 オープンドレイン pinMode(4, OUTPUT_OPEN_DRAIN); } void loop() { digitalWrite(4, HIGH);//ハイインピーダンス状態 delay(200); digitalWrite(4, LOW);//GNDに落とす delay(200); }
使用した部品についてメモ(例)
ローサイドスイッチの例
次にNchMOSFETを使用したローサイドスイッチの例です。東芝の2SK4017を選択しました。
NchMOSFETは次のような特性でスイッチのON/OFFができます。スイッチがONのときソースからドレインに向かって電流が流れます。
- ゲート-ソース間電位が0の時OFF
- ゲートの電位がソースの電位よりも一定値(Vth)以上高くなるとON
ESP32のGPIOの出力が0になればゲート電位もソース電位も0なのでMOSFETはOFFになります。
ESP32のGPIOの出力を3.3Vにした場合、ゲート電圧は約3Vになります。2SK4017のVthは1.3~2.5VですのでMOSFETはONになります。
また、ESP32のGPIO出力については、ローサイドスイッチの場合は通常のデジタル出力でOKです。
こちらの方法はゲートソース間には基本的にはESP32で駆動している以上の電圧はかからないため、ドライブ電圧が高くても気にする必要はなく、使いやすいです。(負荷をドライブする電圧がゲートにつながっていないから)
Arduinoのスケッチ例
void setup() { //Pin設定 pinMode(4, OUTPUT); } void loop() { digitalWrite(4, HIGH); delay(200); digitalWrite(4, LOW); delay(200); }
使用した部品についてメモ(例)
NchMOSFETとしては東芝の2SK4017を選びました。
秋月電子通販コード:107597
まとめと注意
いかがだったでしょうか。今回はMOSFETをマイコンで使う最もシンプルな方法を紹介しました。繰り返しも含まれますが、以下の点に注意してください。
- モーターなどの誘導性負荷を使用する場合には上記回路では危険です。
- Vthについて”データシートの値を参照して〇VだからMOSFETはON”などと記述していますが実際にはドレインソース間電圧等でも変化しますので注意してください。
- 例で示した抵抗値等は適当に定めたものですので各自の目的や仕様に合わせて変える必要があることも覚えておいてください。
- MOSFETの選定の際にはドレインソース間の耐電圧や最大電流などの定格にも注意してください。
- NchとPchで電流の向きやピンアサインなどが紛らわしいですが、ドレインが負荷側と思っておけば間違いにくいです。(ドレイン接地回路というのはまた別のお話)
最後に、MOSFETはバイポーラトランジスタなどよりもはるかに静電気に弱く、簡単に壊れてしまいますので本記事アイキャッチに設定したような写真撮影(フリースを着ながら布製マウスパッドの上に並べた)は危険なのでやめましょう(笑)
(追記)PchMOSFETでゲート-ソース間の耐圧などを考慮した改良型の回路はこちらです。
有識者の方へ
ここにこんな部品を1個追加するともっと安定するよ!とか、ここは絶対ダメ!などありましたら是非コメント欄へご意見などを残していってください。
コメント