APDahlen Applications Engineer
マイクロコントローラは低消費電力のロジックデバイスです。それ自体では、一般的にリレーを直接駆動することはできません。マイクロコントローラとリレーの間に1個のNチャンネルMOSFETを入れることにより、流せるコイル電流を増やし、より高いコイル電圧のリレーに対応させることができます。
この記事では、Arduino Nano Everyで12V DCリレーを制御できるようにする、シンプルなMOSFETベースのインターフェースを探ります。図1に示すように、この設計にはまた、CITのJ104D2C12VDC.20SリレーとDMN67D8L-7 MOSFETも採用されています。
なお、この記事は、次のようないくつかの関連記事のハイレベルな入門編であることにご注意ください。
関連するプロトタイピングの記事では、図1に示すように、小型SOT23パッケージの面実装MOSFETをアダプタボードに実装する方法を説明しています。2番目の記事は、トピックを拡大し、省エネ技術を包含しています。
図1: 写真はArduino Nano Everyが面実装MOSFETを使って2つのリレーを駆動している様子を示します。背景にはDigilentのAnalog Discoveryが写っています。
マイクロコントローラの制限は?
マイクロコントローラは電圧と電流に制限があります。今回のArduino Nano Everyは、技術仕様に記載されているように、各ピンあたりの電流容量が15mAの5V DCデバイスです。
MOSFETは電圧駆動デバイスであり、いったんゲート容量が充電されればゲート電流がゼロになることを思い出してください。その結果、低周波でリレーを駆動する回路での制限は電圧となります。
技術的なヒント: Arduino Nano Everyは5V DCのマイクロコントローラです。 MOSFETの駆動に関して、この5V DCマイクロコントローラは3.3V DCマイクロコントローラよりも好ましいです。3.3V DCでは不十分な場合がある一方で、5V DCのMOSFETゲート駆動信号は、多くのMOSFETを完全オン状態に駆動するのに十分な大きさです。3.3V DC信号が適切かどうかを判断するには、MOSFETのデータシートを注意深く調べる必要があります。このヒントの意味するところは、公称ベース電圧が0.7V DCのBJTトランジスタの方が、低電圧マイクロコントローラに適しているかもしれないということです。
MOSFETの制限は?
この目的のために、次のようないくつかの主要なMOSFETの特性に注目する必要があります。
-
ゲート電圧の関数としてのオン抵抗
-
定常状態の電流
-
ソースに対するドレインの最大電圧
-
消費電力
これらのパラメータは、マイクロコントローラの駆動信号とリレーの電圧/電流要件を考慮するシステムの観点から対処する必要があります。
リレーの要件
選択したCITのリレーは、12V DCで200mWのコイルを備えた双極双投(DPDT:Double Pole Double Throw)リレーです。コイルの抵抗は約720Ωです。12V DC電源で動作させた場合、リレーのコイルには約17mAが流れます。
MOSFETの適合性
MOSFETは、マイクロコントローラとリレーのインターフェースとして選択されます。具体的には、12V DCの電源電圧で17mAを流す能力を備え、5V DCのゲート信号を受け入れるMOSFETが必要です。このデモでは、Diodes Incorporated DMN67D8L-7を使用します。これは、我々の要件を超える仕様を備えた小型のSOT23パッケージ デバイスです。このMOSFETは最大60Vの V_{DS} 耐圧を持ちながら、230mAをスイッチングすることができます。
技術的なヒント: MOSFETの仕様、特にゲート電圧に関しては注意が必要です。MOSFETは、静電ゲート電圧がドレイン-ソース間のチャンネルを制御する電圧制御デバイスであることを思い出してください。ゲート電圧の大きさはこのチャンネルの抵抗を効果的に制御し、ゲート電圧が大きいほど抵抗は小さくなります。230mAの仕様は、10V DC V_{GS} 電圧に対応しています。今回注目のプロジェクトにおいては、7V DCの V_{GS} で電流が190mAに低下し、5V DCの V_{GS} ではさらに低下することに注意してください。特に明記されていませんが、5V DCの動作点はさらに低くなります。したがってDMN67D8L-7 は、5V DCのArduinoで駆動する場合、当初考えていたほど過剰スペックにはなりません。
MOSFETのデータシートの再検討
前の技術的なヒントで示唆したように、特に V_{GS} に関して、MOSFETの動作点を慎重に検討する必要があります。図2に含まれるデータシートの曲線は、MOSFETのDMN67D8L-7がこのアプリケーションに許容できることを示しています。
-
左のグラフでは、さまざまな V_{GS} レベルの I_D と V_{DS} の関係が観られます。緑色の点は、選択したリレー電流17mAでは V_{DS} が非常に低くなるということを示しています。
-
右のグラフでは、 V_{GS} の関数として予想されるチャンネルのオン抵抗と密接に関連した曲線を示しています。 Arduinoの5V DCがMOSFETをオンにするときのチャンネル抵抗は約1.8Ωになります。残念なことに、この動作点は曲線の折れ曲がり(knee)点に非常に近いです。しかし、MOSFETのチャンネル抵抗は720Ωのリレーコイル抵抗よりも2桁小さいため、これは許容できるはずです。
電源電圧の自然変動や部品の許容差により、チャンネル抵抗が増加する可能性があることに注意してください。また、3.3V DCのマイクロコントローラが使用されている場合、この設計は「実行できない」ことにも注意してください。抵抗が高すぎると、MOSFETが自己発熱し、リレーが作動しなくなる可能性さえあります。
図2: MOSFET DMN67D8L-7の動作曲線は、予想される動作条件を示しています。 5V DCの V_{GS} は十分ですが、3.3V DCのゲート駆動では許容できないほど抵抗値が高くなることに注意してください。
回路図
MOSFETリレーインターフェースの代表的な回路図を図3に示します。Arduinoの出力は、I/Oピンをグランドまたは5V DCに接続するSPDT(単極双投)スイッチとして表されています。ArduinoとMOSFETの間には電流制限抵抗が配置されています。最後に、リレーコイルが12V DC電源とMOSFETドレインの間に接続されます。なお、5V DCのArduinoと12V DC電源は共通のグランドを使用していることにご注意ください。
Arduinoの出力ピンに接続される100kΩの抵抗は、ちょっとした保護デバイスです。 Arduino出力ピンは5V DC レールまたはグランドにデジタル的に接続されるため、通常、抵抗は何の役割も果たしません。しかし、デバイスの起動時など、Arduinoのピンがハイインピーダンスに設定される場合があります。100kΩの抵抗はプルダウン動作を行います。Arduinoから特別な命令がない限り、MOSFETは確実にオフになります。抵抗は1kΩ抵抗の左側に配置されていることに注意してください。これは、100kΩが1kΩ抵抗の右側にあると分圧が形成されるため、ゲート電圧を最大にするために必要です。
MOSFETがオフになったときにコイル電圧を「キャッチ」するためのフライバックダイオードとして、汎用タイプの1N4148小信号ダイオードが使用されています。一見すると、1N4148ダイオードはこの用途には小さすぎるように見えるかもしれません。ただし、リレーとMOSFETの仕様を考慮すると、200mAの電流定格はよくマッチしています。
技術的なヒント: 高電圧スパイクを防ぐフライバックダイオードの重要性は、いくら強調してもしすぎることはありません。このダイオードがないと、リレーの誘導キック(フライバック電圧)は、リレーがオフになると数百ボルトに達します。これによりMOSFETが破壊されます。これは痛い経験をしたから言えることです。私はかつて、ダイオードを忘れてしまい、リレーが2回繰り返して、それからオン位置で故障するという、非常に恥ずかしい失敗を公衆の場で経験したことがあります。クリックオン、クリックオフ、クリックオン、そして失敗-永久にオンでした。
図3: Arduinoマイクロコントローラ、MOSFET、およびリレーの代表的な回路図。回路図はMultisimLiveを使って作成しました。
リレーが動作するまでの時間はどれくらいですか?
電気機械式リレーは低速の装置です。多くの人は、この速度は機械部品が動くことによるものだと信じています。それは事実ですが、コイルの誘導性がより大きな遅延を引き起こします。抵抗とインダクタンス(RL)回路の時定数は次のように定義されることを思い出してください。
\tau = \dfrac{L}{R}
ここでRはコイル抵抗、Lはコイルインダクタンスです。今回選択したリレーの場合、抵抗は約720Ω、インダクタンスは2H付近にあります。その結果、時定数は約3msとなります。これは、図4に示す電流波形(青)によって裏付けられます。電流は1回の時定数の間に最終値の約64%に達することを思い出してください。
実際の定常状態電流とリレーコイルの時定数の概念は、アーマチュアの動きによって複雑になります。最初に、磁界ループはアーマチュアのエアギャップを通過します。その後、アーマチュアが閉じるとエアギャップがなくなり、見かけ上のコイルインダクタンスが変化します。その結果、図4に見られるようなリレーコイル電流のディップが観察されます。
リレーの磁界の挙動とリレーが閉じる時間については、以下をご覧ください。
-
リレーにおける磁束の挙動 - エレクトロメカニカル / リレー - 電子部品およびエンジニアリングソリューション フォーラム - TechForum │DigiKey
-
リレーが閉じるまでどのくらい時間がかかりますか? - エレクトロメカニカル / リレー - 電子部品およびエンジニアリングソリューション フォーラム - TechForum│DigiKey
MOSFETのゲート抵抗はどのように選択すればよいのでしょうか?
リレーコイルの性質が理解できたので、MOSFETゲートに適切な抵抗を選択することができます。ミリ秒単位で測定されるRLの時定数を扱うのですから、抵抗の値は特に重要ではありません。
高速MOSFETベースの回路では、MOSFETのゲート容量の急速な充放電に重点を置きます。高速回路では、100Ωの範囲の抵抗を選択することができます。これにより、MOSFETをリニア動作の範囲外へ素早く移行させ、鮮明なオン/オフ信号を提供することで、最大限の効率を得ることができます。難しいバランスは、MOSFETのゲート容量を駆動するマイクロコントローラのロジックにストレスを与えることなく、高速スイッチング速度のために抵抗値を低く保つことです。
この記事で取り上げた低速回路では、電流はリレーインダクタンスによって支配されます。1kから100kΩの範囲のほぼすべてのMOSFETゲート抵抗を使っても、ドレイン電流の変化よりかなり速いでしょう。例えば、データシートにはMOSFETの入力容量が22pFと記載されています。100kΩのゲート抵抗を使用して計算した時定数は約3uSとなり、コイルベースのRL時定数より1000倍速くなります。
技術的なヒント: 一見単純な回路は発振しやすいものです。リレー駆動回路も例外ではありません。その結果生じる高周波発振は干渉を引き起こし、極端な場合にはMOSFETを破壊することもあります。ゲート抵抗を適切に配置することは、この発振を緩和する1つの方法です。抵抗はできるだけ物理的にMOSFETの近くに置くようにしてください。図1では、抵抗をMOSFETのゲートのできるだけ近くに配置していることがわかります。
図4: オンコマンド(オレンジ色)とその結果のリレー電流波形(青色)。ディップは磁気特性の変化によって引き起こされ、アーマチュアが閉じてエアギャップがなくなります。
高度な省エネ運転
MOSFETベースのマイクロコントローラとリレーのインターフェースが機能するようになったので、高度な動作を探求することができます。パルス幅変調器(PWM:Pulse Width Modulator)ドライバを使用して、省エネを実現することができます。この記事を簡潔にするため、PWMの資料は以下をご覧ください。
おわりに
MOSFETは、5V DCマイクロコントローラによく適合します。これにより、マイクロコントローラは、より大きな電流要求とマイクロコントローラの5V DCレール以外の電圧を持つデバイスを駆動することができます。
この記事では、5V DCと3.3V DCのマイクロコントローラの間に明確な境界線を引きました。これには、今回取り上げたDMN67D8L-7などのMOSFETが3.3V DCマイクロコントローラとは相性が良くないという注意が含まれていました。おそらく将来的には、低い V_{GS} の能力を持つMOSFETが検討されるでしょう。中には1.5V DC、あるいは1.2V DCまで動作するものもあります。
ご健闘をお祈りします。
APDahlen
関連するArduino education contentについては、こちらのリンクをご参照ください。
著者について
Aaron Dahlen 氏、LCDR USCG(退役)は、DigiKeyでアプリケーションエンジニアを務めています。彼は、技術者およびエンジニアとしての27年間の軍役を通じて構築されたユニークなエレクトロニクスおよびオートメーションのベースを持っており、これは12年間(一部、軍での経験を織り交ぜて)教鞭をとったことによってさらに強化されました。ミネソタ州立大学Mankato校でMSEEの学位を取得したDahlen氏は、ABET認定EEプログラムで教鞭をとり、EETプログラムのプログラムコーディネーターを務め、軍の電子技術者にコンポーネントレベルの修理を教えてきました。彼はミネソタ州北部の自宅に戻り、このような記事のリサーチやエレクトロニクスとオートメーションに関する教育記事の執筆を楽しんでいます。
注目すべき経験
Dahlen氏は、幅広い読者向けに複雑な概念を分かりやすく説明した教育的なDigiKey TechForumの記事を100本以上執筆しています。このArduino Microcontroller Index pageで、Arduinoマイクロコントローラに関する記事をご活用ください。
LinkedInでAaron Dahlenとつながります。
問題
-
なぜArduinoマイクロコントローラと12V DC電源は共通グランドなのですか?ヒント: KVL(キルヒホッフの法則)の要件は何ですか?
-
提示されたソリューションをソリッドステートリレーと対比して比較してください。
-
MOSFETを扱う際の注意事項について、ウェブで検索してください。
-
誘導キック(フライバック電圧)について、その原因、潜在的な問題、緩和策を含めて説明してください。
-
「ニュースリリース、マイクロコントローラ」というキーワードで検索して、最初にヒットしたマイクロコントローラのデータシートを探してください。図3に示した回路は、この新しいマイマイクロコントローラで動作するでしょうか?
-
MOSFET DMN67D8L-7の定格電流は230mAです。この定格が今回のアプリケーションに不適当なのはなぜですか? ヒント: 17 mAのコイルを持つ図3のリレーを200mAのリレーに置き換えることはできますか?
-
17mAと図2に示すMOSFETオン抵抗を使用して、MOSFETの消費電力を計算してください。これはDMN67D8L-7 MOSFETの能力の範囲内でしょうか。 ヒント: 150°Cなどの高温を考慮しましたか?
-
このフォーラムの投稿に記載されているように、リレーの磁気エアギャップについて説明してください。
-
図3の回路を、このフォーラムの投稿にあるように、L/2R速度で動作するように変更してください。
-
3.3V DCのマイクロコントローラに適したMOSFETを探してください。
批判的思考を使う問題
-
図4に示すように、リレーの電流曲線がディップする原因は何でしょうか?
-
MOSFETベースのリレードライバのダイナミック動作は、いくつかの時定数によって支配されます。遅延に関連するコンポーネントとサブコンポーネントを特定し、時定数の推定値を示してください。
-
マイクロコントローラとリレー回路の間のガルバニック接続を除去するように回路を再設計してください。 ヒント: SSR(ソリッドステートリレー)のコンポーネントは何ですか?
-
MOSFETはBJTに比べてどのような利点がありますか?
-
リレー駆動回路の高周波発振を検出する方法を説明してください。
paulpickering678
これは非常に詳しく、よく書かれたガイドでした。どうもありがとうございました。
しかし、1つ混乱したことは、2、3箇所で「12Vソース」について言及していることです。MOSFETのソース端子ではなく、12Vの電圧源のことを指しているのだと気づくのに時間がかかりました。これは正しいですか?
APDahlen Applications Engineer
いい質問です、@paulpickering678 さん。
この具体例では、リレー(12V DCコイル)はMOSFETのハイサイドにあります。リレーには12V DC電源(ソース)が使用されています。MOSFETのゲートは、5V DCのマイクロコントローラから直接制御されます。
MOSFETのドレイン端子については、オフ時は12V DC、オン時は約0V DCとなります。
MOSFETの「ソース」端子とDC電源(マイナス端子)は、同じグランドを共有しています。
よろしくお願いします。
Aaron