ごぶさたしております
必要なもの
- Arduino UNO 1個
- MOSFET 2SK4017 1個
- LED OSDR3133A 1個
- 抵抗 100Ω 1個
- 抵抗 300Ω 1個
- 抵抗 100kΩ 1個(省略可)
- 単三電池 2個
- 電池ボックス
- 電池ボックス用リード線
- ブレッドボード
- 配線
を用意します.
LED一個でしたらArduinoの電源で十分ですが,この先モーターなどの大電流の負荷を駆動することも考え,電源を別に用意します.ここではこの電源をパワー系の電源と呼び乾電池を使います.
Arduinoへの接続は図のように接続します.
図1 実体配線図(クリックして拡大してください) |
回路図は次のようになります.
図2 回路図(クリックして拡大してください) |
MOSFETは負荷(ここではLED)に対して上側(電源の+側),下側(電源の−側)どちらにつけることも可能ですが,今回は回路が簡単なので下側に入れています.(一般に上側に入れる場合は制御電源のグランドを別に分けるなど回路の工夫が必要です.今回は乾電池使っているので問題ありませんが)
}
としておきましょう.
ためしに動かしてみてください.LEDが点滅しているのが確認できます.
次に回路の簡単な説明をします.
R1はLEDの電流制限抵抗です. LEDの順方向電圧が2Vなので電源の3Vに対して10mA程度になるように電流を(適当に)調整しています.
R2はゲート抵抗です.
MOSFETはゲートに制御信号,ドレイン・ソースに制御したい系を接続します.
MOSFETのデバイスの内部にはゲート電極とドレイン電極との間に構成されたキャパシタCgd, ゲート電極とソース電極との間に構成されたキャパシタCgsが存在します.
データシートによれば2SK4017のCgdの容量は60pF, Cgsの容量はは670p,2SK2232のCgdの容量は200pF, Cgsの容量は800pFです.
端子間の電圧は充電された電荷に応じてQ=CVで決まりますから,オフからオン,オンからオフする際には,これらのキャパシタに対して充電及び放電を行っていることになります.
一般に電荷が充電されていないキャパシタに電圧を印加すると,充電初期は回路はショートとみなせるため,電流は無限大となり回路が焼損する可能性があります.
もともとMOSFETのゲートには内部ゲート抵抗があるため,無限大の電流が流れるということはありませんが,抵抗なしでMOSFETのゲートにマイコンを繋ぐとスイッチング時のキャパシタの充電・放電電流でピンの許容電流を超える可能性があります.
そこでゲート抵抗が必要になります.この回路ではR2に相当します.
実際にスイッチング時にどのくらい電流が流れているのかを確認したのが下記の図4です. 図1, 2の回路においてR2の両端電圧をオシロスコープで測定しました.
ピーク電圧は5Vで1usec程度かけてCRの直列接続の挙動に従い減衰していきます.R2の抵抗は300Ωですのでピーク電流値は16.7mA程度流れていることがわかります.
図4 R2(300Ω)両端電圧 |
大きい抵抗を付ける場合スイッチング速度は遅くなるので,スイッチング損失が増えてしまいます.スイッチング損失が重要な場合は,ドライブのためにトランジスタやドライブICを使うことになりますがその話はまた.
この抵抗は制御系が動作していない状態でゲート電圧が0Vとなるようにプルダウン抵抗として使っています.
通常,制御系とパワー系の電源は制御系,パワー系の順番で投入します(オフ時はパワー系,制御系の順).
制御系が動作していない時はゲート電圧が不定であり,この状態でドレイン・ソース間に電圧をかけるとMOSFETに電流が流れてしまうことがあります.そこで仮にパワー系の電源だけを先にいれたとしてもMOSFETに電流が流れないようにするために100kΩの抵抗をグランドとゲートの間に入れています.
今日のおまけにLEDの明るさをPWMで調整してみましょう.
先ほどのスケッチを
}
LEDの明るさが変わったと思います.
いちごしっくり
コメント