ゆるく楽しむプログラミング

MOSFETでスイッチON

micro:bitやArduinoの端子から引き出せる電流は5~20mAと小さいのでLチカ程度なら何とかなってもモーター等の高出力なアイテムは動かせません。
工作によく使うマブチモータの場合で500~700mAの電流が必要です。(「マブチモーターのスペック」参照)

そこで、誰でもが考えるのがマイコン(micro:bitやArudino)で操作できる謎スイッチでモーターをスイッチONしてやる方法です。


この謎スイッチになるのが MOSFETです。
電子工作では 2SK4017 が良く使われるようです。

MOSFETはゲート(G)とソース(S)の間に電流を流すと
ドレイン(D)とソース(S)の間にも電流が流れるようになります。

ゲート(G)とソース(S)の抵抗はほぼゼロ(0.09Ω)なので、電流が流れすぎないように抵抗を入れて調整する必要があります。
流れる電流が多ければスイッチONの反応が早く、少ないと反応が遅くなります。


LチカでスイッチONの実験

スイッチのON/OFF動作をLチカで確認してみます。
micro:bitの場合、流出電流を5mA以下に抑える必要がありますから、調整用の抵抗は
R = V ÷ I = 3.0 ÷ 0.005 = 600Ω になります、余裕を見て1KΩを付けておきます。

配置が結構無理やりですが
実験用なので本来マイコンを使って電流を流す部分を
人力でスイッチをON/OFFして代用します。

左側がスイッチ回路、右側が出力のLチカ回路です。

配線図の作成に使っているfritzingはパーツをミラ―反転できないのでLEDの置き方がどうしてもムリヤリになってしまいます。


スイッチを押している間だけLEDが点灯
スイットを放してからLED消灯まで反応が鈍いです。

FETのゲート(G)とソース(S)の間はコンデンサのように電荷を貯める特性があるため、スイッチを放しても電荷が抜けるまでLEDが消えません。
ゲート(G)とソース(S)の間に放電用の抵抗 200Ω位を入れてやればスイッチOFFからLED消灯までの反応が早くなります。

モータドライブ GoGo!

Lチカが確認できたのでLチカをモーターに交換すればOK…とはいきません。
モーターにはモーター独特の問題があるからです。

一つは逆起電力の問題
モーターと発電機は電気を回転エネルギーに変えるか、回転エネルギーを電気に変えるかの方向の違いだけで原理は一緒です。
スイッチを切ってから回転が止まるまでの間、モーターは発電機として機能し回路に逆向きの電圧がかかります。
この逆起電力は思いのほか大きいので逆起電力をモーターに循環して逃がしてやるためにダイオードを付けます。
ダイオードは1N4007を使用しました。
1本10円ですが20本で100円なのでまとめて買った方がお得感があります。
20本も使うかは謎ですが…

もう一つは電気ノイズの問題
直流モーターは半回転ごとに電極を入れ替えるために電気ノイズが発生します。
このノイズを抑えるために0.1μFくらいのコンデンサをモーターの電極間に入れます。
コンデンサはモーターの端子に直接はんだ付けしてしまった方が良いです。



Lチカ部をモーターに置き換えて完成


所で今回使用したMOSFET 2SK4017 ですが、本来はゲートとソースの間に4Vの電圧を掛けるのが定格のようで3Vだと結構ギリギリみたいです。
電池がへたっていると動かないので電池残量に注意しましょう。
ゲートとソース間の電圧が低いとFET自体の順方向電圧降下が大きくなるようです。
LEDや ちびギアモーター などの小さい電流で動くパーツなら2.6Vでも動きましたがマブチ FA-130RAモーターは3Vないと動きませんでした。