PR

MOSFETはPicoの3.3Vで足りる?DCソレノイド駆動でゲート電圧不足を実測【Pico 2 W】

ハードウェア制御 / 電子工作
PICO MODULE LAB / DC SOLENOID VOL.2
  1. はじめに:Pico 2 WでDCソレノイドは動いた。でも測ると電流は8割だった
  2. 使った部品とMOSFET駆動回路
    1. 部品表
    2. DCソレノイドの電流と消費電力(6.95Ω → 1.73A・21W)
    3. IRLU3410のデータシートで見るべき項目:Vgs(th)とオン抵抗の規定電圧
    4. 回路図と実体配線図(ゲート抵抗100Ω・プルダウン10kΩ・還流ダイオード)
    5. ED 5%(使用率)に注意
  3. MicroPythonでソレノイドを動かす
    1. 12Vをつなぐ前にゲート電圧をテスターで確認する
    2. pulse()関数で0.1秒だけオンにする
  4. テスターとオシロで測る:電圧降下とMOSFETの発振
    1. ソレノイドの両端は9.93V(電流は計算値の約8割)
    2. オシロで見るとドレイン電圧が発振していた
  5. 疑い:Picoの3.3VではMOSFETが十分にオンしていない?
    1. 「定格17Aの10分の1なら大丈夫」が成り立たない理由
    2. ターンオン波形のミラー期間(ミラープラトー)
  6. 検証:レベル変換モジュール(BSS138)でゲートを5V駆動する
    1. AE-LCNV4-MOSFETを使った回路図と配線
    2. プルダウン抵抗を変えた理由(1kΩ追加・10kΩ→100kΩ)
    3. 起動直後のゲート電圧0.66Vは問題ないか
  7. 3.3V直結と5V駆動の比較:オン抵抗・発熱・発振
    1. 比較表
    2. テスターをつなぐ場所で発振の出方が変わる
    3. 残りの電圧降下はブレッドボード(1.5Aで約1V)
  8. まとめ:マイコンの3.3VでMOSFETを選ぶときのチェックポイント
  9. よくある質問(FAQ)
  10. 次回予告
スポンサーリンク

はじめに:Pico 2 WでDCソレノイドは動いた。でも測ると電流は8割だった

こんにちは。ニンジンです🥕

Raspberry Pi Pico 2 Wで12VのDCソレノイドを動かしてみました。

回路図どおりに組んで、プログラムを実行すると「カチッ」。問題なく動きました。

……で終わればよかったのですが、念のためテスターとオシロスコープで測ってみると、ソレノイドに流れていた電流は計算値の8割ほど。さらに、MOSFETが発振していることもわかりました。

使ったMOSFET(IRLU3410)のデータシートでは、オン抵抗が保証されているのはゲート電圧4Vからです。それは承知のうえで、「流すのは1.7A程度。定格17AのMOSFETにとっては少ない電流なので、Picoの3.3Vでも足りるだろう」と見込んで試していました。

最初は「電流が8割しか流れないのも、発振するのも、ゲート電圧が足りないせいだろう」と考えました。ところが、ゲートを5Vにすると発振は消えましたが、電流はほとんど増えませんでした。電流が8割止まりだったいちばんの原因は、ブレッドボードの配線でした。

この記事では、

  • 「3.3Vでも足りるだろう」と判断した理由
  • 動いているのに性能が出ていないことを、どう測って見つけたか
  • ゲートを5Vで駆動したら、何が改善して、何が改善しなかったか
  • 電流が8割止まりだった本当の原因

を、実測データと波形で紹介します。

DCソレノイドの基本(仕組み、電流、極性、突入電流など)は前回の記事で解説しています。

🧲 前回の記事 DCソレノイドとは?極性・電流をテスターで実測【突入電流・焼損・ED%も解説】 DCソレノイドの仕組み、電流の計算、極性、ED%(使用率)と発熱、突入電流、逆起電力をまとめています。 →
上がOFF、下がON。ONにするとプランジャー(右側の軸)がコイルに引き込まれる
▲ 上がOFF、下がON。ONにするとプランジャー(右側の軸)がコイルに引き込まれる

スポンサーリンク

使った部品とMOSFET駆動回路

部品表

Heschen DCソレノイド HS-0530B(DC12V・ストローク10mm・保持力5N)
必須

この記事の主役。12Vで約1.73A流れるプル型

Heschen DCソレノイド HS-0530B(DC12V・ストローク10mm・保持力5N)

ラベルの表記は12V/1.7A、ED 5%。コイル抵抗の実測6.95Ωから計算すると、12Vで約1.73A・21Wになります。連続通電はできません。

12V / 1.7AED 5%
NchパワーMOSFET 100V17A IRLU3410PBF
必須

今回の検証の主役。オン抵抗の保証はゲート4Vから

NchパワーMOSFET 100V17A IRLU3410PBF

型番がIRLで始まるロジックレベル品。Picoの3.3Vでも動きはしますが、オン抵抗は保証の範囲外です(この記事で実測)。

100V / 17AI-PAK
ショットキーバリアダイオード 40V3A SB340LS
必須

オフにした瞬間の逆起電力を逃がす

ショットキーバリアダイオード 40V3A SB340LS

還流ダイオードとしてソレノイドと並列に入れます。帯(カソード)を+12V側に向けてください。

40V / 3Aショットキー
電解コンデンサー 470μF 25V 105℃ ルビコンPX
あると安心

約1.7Aを流した瞬間の電圧の落ち込みを和らげる

電解コンデンサー 470μF 25V 105℃ ルビコンPX

12Vラインに入れる電解コンデンサー。耐圧は12Vに余裕を持たせて25Vを選びました。

470µF / 25V
4ビット双方向ロジックレベル変換モジュール AE-LCNV4-MOSFET(BSS138使用)
検証用

ゲートを5Vで駆動して比べるために使用

4ビット双方向ロジックレベル変換モジュール AE-LCNV4-MOSFET(BSS138使用)

本来はI2Cなどの信号用のモジュールで、手持ちにあったので使いました。立ち上がりが遅いので、PWMには向きません(本文の注意を参照)。

3.3V → 5V4ch
ヘッダー ハンダ付け済み Raspberry Pi Pico 2WH
必須

ピンヘッダー実装済みで、届いたその日からブレッドボードに挿せる

ヘッダー ハンダ付け済み Raspberry Pi Pico 2WH

今回のマイコン。GP15からMOSFETのゲートを駆動します(筆者はPico 2 Wで動作確認)。

無線+ヘッダー実装済みMicroPython
Freenove Raspberry Pi Pico 1/2 W H WH用ブレイクアウトボード
あると便利

ピン名が印字されていて、配線を確認しやすい

Freenove Raspberry Pi Pico 1/2 W H WH用ブレイクアウトボード

Picoを挿すだけで、全ピンがネジ端子とピン名の印字付きで引き出されます。GP15・GND・VBUSをすぐ見つけられます。

ネジ端子ピン名印字
ブレッドボード 400穴
必須

はんだ付けなしで回路を組み替えられる基本の作業台

ブレッドボード 400穴

MOSFET・ダイオード・コンデンサーを挿すのに使用。ただし1.5A級の電流では配線だけで約1V失いました(本文の検証を参照)。

はんだ付け不要
ELEGOO 120pcs 多色デュポンワイヤー
必須

オス-オス・オス-メス・メス-メスがそろって、どんな配線にも使える

ELEGOO 120pcs 多色デュポンワイヤー

Pico・ブレッドボード・ソレノイドの間の配線に使用。12V側とGNDで色を分けておくと、間違いを防げます。

3種類×40本多色
GOODCHI 金属皮膜抵抗器 抵抗セット(10Ω〜1MΩ・30種類)
必須

100Ω・1kΩ・10kΩ・100kΩをすぐ選べる

GOODCHI 金属皮膜抵抗器 抵抗セット(10Ω〜1MΩ・30種類)

ゲート抵抗(100Ω)とプルダウン(10kΩ・100kΩ・1kΩ)に使用。セットで持っておくと、ほかの工作でも困りません。

30種類×各20本収納ケース付き

※リンクはアフィリエイトを含みます。価格・在庫・同梱内容は変わることがあるので、購入前に各商品ページをご確認ください。

電源は手持ちのACアダプター(12V/2.5A)を使いました。ソレノイドに約1.7A流すので、2A以上流せるものを選んでください。

DCソレノイドの電流と消費電力(6.95Ω → 1.73A・21W)

ソレノイドのコイル抵抗をテスターで測ると 6.95Ω でした(テスト棒の抵抗を差し引き、コイルが冷えた26℃の状態で測った値)。12Vをかけると、計算上は

  • 電流:12V ÷ 6.95Ω ≒ 1.73A(ラベルの1.7Aとほぼ一致)
  • 消費電力:12V × 1.73A ≒ 21W

になります。Picoのピンで直接流せる電流ではないので、MOSFETでスイッチします。

IRLU3410のデータシートで見るべき項目:Vgs(th)とオン抵抗の規定電圧

IRLU3410のデータシートのうち、選定で見たのは次の項目です。

項目値条件
ドレイン電流(連続)17AVgs=10V、ケース温度25℃
オンし始める電圧 Vgs(th)1.0〜2.0Vドレイン電流250µA
オン抵抗(最大)105mΩVgs=10V、ID=10A
125mΩVgs=5V、ID=10A
155mΩVgs=4V、ID=9A
Vgs=3.3Vでのオン抵抗記載なし

型番が「IRL」で始まるのは、低いゲート電圧でも動く「ロジックレベル」品の印です。ただ、オン抵抗が保証されているのは4Vまでで、Picoの3.3Vは保証の範囲外です。

それでも試してみたのは、次のように考えたからです。

  • オンし始める電圧 Vgs(th) は最大でも2.0Vなので、3.3Vならオンはする
  • 流すのは約1.7Aで、定格17Aの10分の1。保証外とはいえ、この程度の電流なら問題なく流せるだろう

この見込みが正しかったのかを、実測で確かめていきます。

回路図と実体配線図(ゲート抵抗100Ω・プルダウン10kΩ・還流ダイオード)

回路図(3.3V直結)。PicoのGNDとACアダプターの−は必ず共通にする
▲ 回路図(3.3V直結)。PicoのGNDとACアダプターの−は必ず共通にする

ポイントは次の4つです。

  • 100Ω(ゲート抵抗):ゲートに流れ込む瞬間的な電流を抑える
  • 10kΩ(プルダウン):Picoが動いていないときにゲートを0Vに保つ
  • SB340LS(還流ダイオード):オフにした瞬間の逆起電力を逃がす。帯(カソード)を+12V側に付ける
  • 470µF:12Vラインの電圧変動を抑える
実体配線図(3.3V直結・実機の配置)
▲ 実体配線図(3.3V直結・実機の配置)
全体の様子。中央がブレイクアウトボードに挿したPico、右がブレッドボード、奥がソレノイド
▲ 全体の様子。中央がブレイクアウトボードに挿したPico、右がブレッドボード、奥がソレノイド
Pico側はGP15とGNDの2本だけ
▲ Pico側はGP15とGNDの2本だけ
IRLU3410。足は左からG・D・S
▲ IRLU3410。足は左からG・D・S
SB340LS。帯(カソード)を+12V側に向ける
▲ SB340LS。帯(カソード)を+12V側に向ける

ED 5%(使用率)に注意

ラベルの右下に「ED%:5%」とある

▲ ラベルの右下に「ED%:5%」とある

このソレノイドのラベルには「ED 5%」と書かれています。通電してよいのは1サイクルの5%まで、つまり通電した時間の19倍は休ませる必要があります。前回の記事では、5秒通電しただけで中のコイルの温度が約18℃上がることを実測しました(コイル抵抗の変化から計算)。この記事の測定も、2秒通電したら40秒以上休ませながら行っています(ED%の詳しい説明も前回の記事を参照)。


スポンサーリンク

MicroPythonでソレノイドを動かす

この記事で使ったコードは、まとめてダウンロードできます。

この記事のプログラム一式

📦 solenoid002-code.zip をダウンロード

gate-check.py(ゲート電圧の確認)/solenoid-pulse.py(0.1秒だけオン)/solenoid-measure.py(2秒通電+40秒休止のくり返し)の3本です。

🥕 Thonnyの準備はこちら ラズパイPico WとDHT11で温湿度を測定する方法|配線図とMicroPythonコード Thonnyのインストールと、Pico WへのMicroPythonの書き込み(BOOTSEL)を画面付きで解説しています。 →

どのコードも、3.3V直結の回路と5V駆動(レベル変換)の回路の両方でそのまま使えます。

12Vをつなぐ前にゲート電圧をテスターで確認する

まず12Vをつながずに、Picoからゲートに電圧が出ているかを確認します(gate-check.py)。

from machine import Pin

GATE_PIN = 15

g = Pin(GATE_PIN, Pin.OUT, value=0)   # 起動直後から LOW にしておく

続けて次の1行を実行し(シェルに打っても、エディターの末尾に足して実行しても同じです)、MOSFETのゲートとGNDの間の電圧をテスターで測ります。

g.value(1)   # ゲートが約3.3Vになるか
g.value(0)   # 0Vに戻るか
Thonnyで g.value(1) を実行
▲ Thonnyで g.value(1) を実行
ゲートは3.249V
▲ ゲートは3.249V
g.value(0) を実行
▲ g.value(0) を実行
ゲートは0.000V
▲ ゲートは0.000V

HIGHで 3.249V、LOWで 0.000V。Pico側の配線は問題なさそうです。

pulse()関数で0.1秒だけオンにする

12Vをつないで、0.1秒だけオンにします(solenoid-pulse.py)。

from machine import Pin
import time

GATE_PIN = 15

g = Pin(GATE_PIN, Pin.OUT, value=0)


def pulse(ms=100):
    g.value(1)
    try:
        time.sleep_ms(ms)
    finally:
        g.value(0)   # エラーや Ctrl+C で止まっても必ずオフにする


pulse(100)

try〜finallyにしているのは、途中でエラーが出たりCtrl+Cで止めたりしても、ソレノイドがオンのまま残らないようにするためです。ED 5%のソレノイドは、1秒オンにしただけでも19秒休ませる必要があります。21Wを消費するソレノイドがオンしっぱなしになれば、すぐに制限を超えてしまいます。

▲ 0.1秒だけオンにしたところ(音が出ます)

「カチッ」と動きました。ここまでは順調です。


スポンサーリンク

テスターとオシロで測る:電圧降下とMOSFETの発振

動いたので完成……としてもよかったのですが、本当に設計どおりの電流が流れているのか、測ってみることにしました。

測定には solenoid-measure.py を使います。2秒通電して、ED 5%を守れるだけの時間(40秒)休ませる、を指定回数くり返すコードです。

from machine import Pin
import time

GATE_PIN = 15
ON_MS = 2000          # 1回の通電時間(ミリ秒)
REPEAT = 3            # くり返し回数
ED = 0.05             # 使用率(ラベルの ED 5%)

REST_MS = max(int(ON_MS * (1 - ED) / ED), 40000)   # 2秒通電なら 38秒 → 下限の40秒

g = Pin(GATE_PIN, Pin.OUT, value=0)


def pulse(ms):
    g.value(1)
    try:
        time.sleep_ms(ms)
    finally:
        g.value(0)   # エラーや Ctrl+C で止まっても必ずオフにする


try:
    for i in range(REPEAT):
        print("{}/{} 回目: {} ms 通電します".format(i + 1, REPEAT, ON_MS))
        pulse(ON_MS)
        if i < REPEAT - 1:
            print("  {} 秒休ませます(ED {}%)".format(REST_MS // 1000, int(ED * 100)))
            time.sleep_ms(REST_MS)
finally:
    g.value(0)
    print("終了しました")

ソレノイドの両端は9.93V(電流は計算値の約8割)

2秒通電している間に、テスターのMAX/MIN記録機能を使って、場所ごとに電圧を測りました。

測った場所電圧
ACアダプター(無負荷)12.19V
ACアダプターのDCジャック(オン中)11.85V
ブレッドボードの電源レール(オン中)11.71V
ソレノイドの両端(オン中)9.93V
ACアダプター(無負荷):12.19V
▲ ACアダプター(無負荷):12.19V
DCジャック(オン中):11.85V
▲ DCジャック(オン中):11.85V
電源レール(オン中):11.71V
▲ 電源レール(オン中):11.71V
ソレノイドの両端(オン中):9.93V
▲ ソレノイドの両端(オン中):9.93V

ソレノイドにかかっていたのは 9.93V。電流にすると

9.93V ÷ 6.95Ω ≒ 1.43A

計算値の1.73Aに対して 約83% しか流れていませんでした。

電源レールの11.71Vとソレノイドの9.93Vの差、約1.8V が、MOSFETとブレッドボードの配線で失われています。この1.8Vがどこで失われているのかを調べます。

オシロで見るとドレイン電圧が発振していた

MOSFETのドレイン電圧をオシロスコープで見てみました。オン中のドレインは0V近くまで下がるはずです。

3.3V直結のドレイン電圧(黄)。オン中が太い帯になっている(緑はゲート)
▲ 3.3V直結のドレイン電圧(黄)。オン中が太い帯になっている(緑はゲート)

オンしている間、ドレイン電圧が太い帯になっています。ドレインが細かく上下に振れている、つまり発振している状態です。

しかも、この発振は

  • 測るたびに、始まるタイミングも止まるタイミングもバラバラ
  • テスターのリード線をつなぐ場所によって、出たり出なかったりする

という不安定なものでした。

テスターを外すと、同じ回路でも発振しなかった
▲ テスターを外すと、同じ回路でも発振しなかった

スポンサーリンク

疑い:Picoの3.3VではMOSFETが十分にオンしていない?

「定格17Aの10分の1なら大丈夫」が成り立たない理由

データシートを読み直すと、見込みの根拠にしていた数字は、どれも3.3Vとは条件の違う値でした。

  • ① 定格17AはVgs=10Vのときの値:データシートにも「Continuous Drain Current, VGS @ 10V」と条件が書かれています
  • ② Vgs(th)はドレイン電流わずか250µAのときの値:「オンし始める電圧」であって、1A以上を流せる電圧ではありません
  • ③ 3.3Vはオン抵抗の保証の範囲外:規定されているのは4V(155mΩ)まで

MOSFETのオン抵抗はゲート電圧で大きく変わります。Picoの3.3VはVgs(th)(1.0〜2.0V)から1〜2V上でしかなく、後の実測では、オン抵抗が4Vでの保証値(155mΩ)より大きい約0.27Ωまで上がっていました。

ターンオン波形のミラー期間(ミラープラトー)

オンする瞬間を拡大してみました。

オンする瞬間(500ns/div)。緑のゲートが約2Vで平らになる部分がミラー期間、黄はドレイン
▲ オンする瞬間(500ns/div)。緑のゲートが約2Vで平らになる部分がミラー期間、黄はドレイン

ゲート(緑)は0Vから上がり始め、約2V付近で一度平らになってから3.3Vまで上がっています。この平らな部分は「ミラー期間(ミラープラトー)」と呼ばれ、MOSFETが切り替わっている最中を表します。

ゲートが最終的に3.3Vにしか届かないので、ミラー期間を抜けたあとの余裕が小さくなります。その結果、MOSFETはオンはしているものの、オン抵抗が大きい状態にとどまり、

  • 抵抗として電圧を食う(=MOSFETが発熱し、ソレノイドの電圧が少し下がる)
  • ゲート電圧のわずかな変化でドレイン電流が大きく変わりやすく、テスターのリード線のようなちょっとした外乱で発振する

ということが起きていたと考えられます。


スポンサーリンク

検証:レベル変換モジュール(BSS138)でゲートを5V駆動する

電流不足と発振が、ゲート電圧のせいなのかを確かめるため、ゲートを5Vで駆動してみます。

使ったのは、手持ちのレベル変換モジュール AE-LCNV4-MOSFET(BSS138使用)です。Picoの3.3V信号を5Vの信号に変換します。5VはPicoのVBUSピンから取ります。

⚠ このレベル変換モジュールは「たまたま手持ちにあったから」使っています

AE-LCNV4-MOSFETのようなBSS138タイプの双方向レベル変換は、本来I2Cなどの信号用です。HIGHへの立ち上がりを基板上のプルアップ抵抗(10kΩ)で作るので、MOSFETのゲートを駆動すると立ち上がりが遅くなります。

今回のように「オン・オフするだけ」なら問題ありませんが、PWMでソレノイドの電流を調整する用途には向きません(切り替えが遅いぶん、MOSFETの発熱が増えます)。PWMを使うなら、3.3Vでオン抵抗が規定されたMOSFETを選ぶか、ゲートドライバーを使うのが確実です。

AE-LCNV4-MOSFETを使った回路図と配線

回路図(レベル変換で5V駆動)
▲ 回路図(レベル変換で5V駆動)
実体配線図(レベル変換・実機の配置)
▲ 実体配線図(レベル変換・実機の配置)
AE-LCNV4-MOSFETのシルク面(LV側・HV側のピン名)
▲ AE-LCNV4-MOSFETのシルク面(LV側・HV側のピン名)
部品面。BSS138が4個と10kΩが8個
▲ 部品面。BSS138が4個と10kΩが8個
5V駆動の全体の様子
▲ 5V駆動の全体の様子
Picoからは3V3(OUT)・GND・VBUS(5V)を取る
▲ Picoからは3V3(OUT)・GND・VBUS(5V)を取る

プルダウン抵抗を変えた理由(1kΩ追加・10kΩ→100kΩ)

変更理由
LV=3.3V、HV=VBUS(5V)12Vにはつながない。USBを抜けばゲートを駆動する電圧も一緒に消えるので安全
LV側に1kΩのプルダウンを追加Picoの起動中はGP15が入力状態になる。プルダウンがないと、モジュールのプルアップでHIGH扱いになり、ソレノイドがオンしっぱなしになる
ゲートのプルダウンを10kΩ→100kΩに変更10kΩのままだと、モジュールの10kΩと分圧されてゲートが約2.5Vにしかならない。100kΩにすると、実測で約4.6Vになった

起動直後のゲート電圧0.66Vは問題ないか

12Vをつなぐ前に、gate-check.pyでゲート電圧を確認しました。

状態ゲート電圧(実測)
g.value(1)4.651V
g.value(0)0.025V
USBを挿した直後(プログラム未実行)0.663V
g.value(1):4.651V
▲ g.value(1):4.651V
g.value(0):0.025V
▲ g.value(0):0.025V
USBを挿した直後:0.663V
▲ USBを挿した直後:0.663V

プルダウンを付けても、起動直後はゲートが約0.66Vになりました。

  • 原因:レベル変換のBSS138がオンすると、LV側(3.3V)とHV側(5V)の2本のプルアップ(どちらも10kΩ)が、両方とも1kΩを押し上げるため。計算すると約0.69Vで、実測とほぼ一致します
  • 問題ない理由:IRLU3410のVgs(th)は1.0V以上なので、この電圧でソレノイドが動くことはありません。プログラムでg.value(0)を実行すれば0.025Vまで下がります

スポンサーリンク

3.3V直結と5V駆動の比較:オン抵抗・発熱・発振

5V駆動のドレイン電圧(黄)。オン中も一本の線のまま
▲ 5V駆動のドレイン電圧(黄)。オン中も一本の線のまま

比較表

比較のため、3.3V直結と5V駆動を同じ日に、同じ手順で続けて測り直しました。前の章の測定(83%)とは日が違うので、3.3V直結の値も少し違います。数値はすべてテスターの実測値です(オン中の値。電圧はMAX/MIN記録機能で読み取り)。

項目3.3V直結5V駆動
ゲート電圧3.25V4.65V
MOSFETのドレイン・ソース間電圧0.375V0.162V
ソレノイドの電圧9.75V10.29V
電源レールの電圧11.42V11.43V
電流(ソレノイドの電圧 ÷ 6.95Ω)1.40A(計算値の81%)1.48A(86%)
MOSFETのオン抵抗(ドレイン・ソース間電圧 ÷ 電流)約0.27Ω約0.11Ω
MOSFETの発熱(ドレイン・ソース間電圧 × 電流)約0.53W約0.24W
発振(テスターをMOSFETにつないだとき)ありなし
3.3V直結:ドレイン・ソース間 0.375V
▲ 3.3V直結:ドレイン・ソース間 0.375V
5V駆動:ドレイン・ソース間 0.162V
▲ 5V駆動:ドレイン・ソース間 0.162V
3.3V直結:ソレノイドの電圧 9.75V
▲ 3.3V直結:ソレノイドの電圧 9.75V
5V駆動:ソレノイドの電圧 10.29V
▲ 5V駆動:ソレノイドの電圧 10.29V
  • MOSFETのオン抵抗は約0.27Ω → 約0.11Ω。5V駆動(ゲート4.65V)では、データシートの規定値(4Vで155mΩ、5Vで125mΩ)の範囲に収まりました
  • MOSFETの発熱は約半分になりました
  • 発振は消えました。試した3か所のどこにテスターをつないでも、波形はきれいなままです

一方で、電流は81% → 86%。改善はしたものの、わずか5ポイントです。ゲート電圧不足は「発振」と「MOSFETの発熱」の原因でしたが、電流が8割しか流れなかった主な原因ではなかったことになります。

テスターをつなぐ場所で発振の出方が変わる

3.3V直結では、テスターのリード線をどこにつなぐかで発振の出方が変わりました。

テスターをつないだ場所3.3V直結5V駆動
MOSFETのドレイン・ソース間強く発振し、約2秒かけて収まるなし
電源レールオン直後に短く発振(約0.2秒)なし
ソレノイドの両端なしなし
3.3V直結・テスターをドレイン・ソース間に:強く発振
▲ 3.3V直結・テスターをドレイン・ソース間に:強く発振
3.3V直結・テスターを電源レールに:オン直後だけ発振
▲ 3.3V直結・テスターを電源レールに:オン直後だけ発振
3.3V直結・テスターをソレノイドに:発振なし
▲ 3.3V直結・テスターをソレノイドに:発振なし
5V駆動・テスターをドレイン・ソース間に:発振なし
▲ 5V駆動・テスターをドレイン・ソース間に:発振なし

リード線がMOSFETに近いほど発振しやすい。Picoの3.3Vでオン抵抗が大きい状態のMOSFETは、ちょっとした外乱で発振してしまうことがわかります。ゲートを5Vで駆動すれば、同じ位置にテスターをつないでも発振しません。

発振と発熱については、「ゲート電圧が足りず、MOSFETが十分にオンしていなかった」という見立てが実測で裏付けられました。ただし、電流が8割止まりだった原因は別にあります。

残りの電圧降下はブレッドボード(1.5Aで約1V)

では、電流が86%止まりだった残りの原因はどこにあるのか。5V駆動で、12Vがソレノイドに届くまでの内訳を出してみます。

区間失われた電圧
ACアダプターと、電源レールまでの配線(無負荷12.19V → 電源レール11.43V)約0.76V
ブレッドボード上の配線(接点とジャンパー線)約0.98V
MOSFET0.162V
→ ソレノイドにかかった電圧10.29V

※ACアダプターの無負荷電圧(12.19V)は初日の測定値。初日の測定では、このうちDCジャックから電源レールまでの配線で約0.14V下がっていました

ブレッドボードが原因だということは、配線を変えた測定でも確かめています。前回の記事で、ACアダプターとソレノイドをブレッドボードを通さずに直結して測った値と比べると、次のとおりです。

条件ソレノイドの電圧12Vに対する割合電流(÷6.95Ω)
12V直結(ブレッドボードなし、前回の記事)11.39V95%1.64A
ブレッドボード経由・5V駆動10.29V86%1.48A
ブレッドボード経由・3.3V直結9.75V81%1.40A

直結でも95%にとどまるのは、ACアダプターの出力が負荷で下がるためです(無負荷12.19V → 11.39V、約0.8V)。上の表の「ACアダプターと、電源レールまでの配線」の約0.76Vとほぼ同じです。

🧲 前回の記事 DCソレノイドとは?極性・電流をテスターで実測【突入電流・焼損・ED%も解説】 DCソレノイドの仕組み、電流の計算、極性、ED%(使用率)と発熱、突入電流、逆起電力をまとめています。 →

わかったこと

  • MOSFETを5V駆動にした後、いちばん大きな損失はブレッドボードの配線で、MOSFETの約6倍だった
  • 1.5A級の電流を流すと、ブレッドボードの配線だけで1V近く失う。ブレッドボードを通さずに直結すると、86%が95%まで上がった
  • 次に大きいのはACアダプター側で、今回のアダプター(12V/2.5A)は1.5A流すと電源レールまでで約0.76V下がった

おすすめ

  • 実験はブレッドボードで十分。実際に使うなら基板にはんだ付けするか、端子台と太い線で配線する
  • 電源は、負荷をかけたときの電圧をテスターで確認しておく(無負荷の電圧だけでは分からない)

スポンサーリンク

まとめ:マイコンの3.3VでMOSFETを選ぶときのチェックポイント

今回わかったことは次のとおりです。

  • ゲート4V保証のIRLU3410を、Picoの3.3Vで直接駆動しても動くには動いた
  • ただしオン抵抗は5V駆動の約2.4倍(0.27Ω)で、テスターのリード線をつなぐだけで発振した
  • レベル変換でゲートを5Vにすると、オン抵抗はデータシートの規定値の範囲に収まり、発熱は半分、発振も消えた
  • それでも電流は計算値の86%止まり。いちばんの損失はブレッドボードの配線だった

マイコンの3.3VでMOSFETを直接駆動するときは、次の点を確認しましょう。

  • オン抵抗が何Vのゲート電圧で規定されているか(2.5Vまたは2.7Vで規定された品なら安心。4.5Vや4Vからの品は保証外)
  • 「定格電流より小さいから大丈夫」と判断しない。定格電流は十分なゲート電圧(多くは10V)をかけたときの値
  • 保証外で使うなら、ドレイン・ソース間の電圧を実際に測る(オン抵抗が計算できる)
  • オシロがあれば、オン中のドレイン電圧が太い帯(発振)になっていないか見る
  • 1A以上流すなら、ブレッドボードではなくはんだ付けや端子台で配線する

スポンサーリンク

よくある質問(FAQ)

QRaspberry Pi Picoの3.3Vで、MOSFETを直接駆動できますか?

A「オン抵抗がVgs=2.5V(または2.7V)で規定されていて、流す電流に対してそのオン抵抗が十分小さい」MOSFETなら直接駆動できます。今回のIRLU3410のように4V以上で規定された品は、動くことはあってもオン抵抗が大きくなり、発振することもありました。

Q3.3Vで使うMOSFETは、データシートのどこを見ればいいですか?

Aオン抵抗 RDS(on) の測定条件に書かれているゲート電圧(VGS=〇V)です。オンし始める電圧 Vgs(th) は、ドレイン電流わずか250µAのときの値なので、これが3.3Vより低くても、3.3Vで十分にオンするとは限りません。

Q型番がIRLで始まるロジックレベルMOSFETなら、3.3Vで大丈夫ですか?

A「ロジックレベル」は多くの場合5Vロジックを想定しています。今回のIRLU3410も、オン抵抗が規定されているのは4Vまででした。型番ではなくデータシートで確認するのが確実です。

Qブレッドボードで1.5Aの電流を流しても大丈夫ですか?

A短時間の実験なら動きますが、今回はブレッドボードの配線だけで約1V失い、電流は直結したとき(12Vの95%)より1割近く少なくなりました。長時間・大電流で使うなら、はんだ付けや端子台で配線しましょう。


スポンサーリンク

次回予告

次回は IRLB3813PBF を使います。

  • IRLB3813PBFを使う理由:当初予定していたIRLB8721は生産中止で入手が難しかったため、その代替品です。オン抵抗は4.5Vで最大2.6mΩと、IRLU3410とは桁違いに小さい品です(条件は少し違いますが、IRLU3410は4Vで155mΩ)
  • 3.3Vでは保証外:IRLB3813PBFも、オン抵抗が規定されているのは4.5Vからで、Picoの3.3Vは今回と同じく保証の範囲外です
  • 確かめること:
    • ここまでオン抵抗の小さいMOSFETなら、レベル変換なしの3.3V直結で足りるのか
    • オフにした瞬間の逆起電力の波形と、還流ダイオードの効果
    • PWMで保持電流を下げて焼損を防ぐ方法

ニンジン🥕アイコン

Follow me on X

本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕

@ninjin_py_vba をフォロー

この記事が役に立ったら、シェアしてもらえると嬉しいです🥕

Xでポスト はてブ LINE Pocket
まとめハブ
ハードウェア制御 / 電子工作
スポンサーリンク

コメント