トランジスタ(BJT)とMOSFETをArduinoに接続する方法

問題を排除するために楽器を試してください





BJTなどのパワーデバイスやMOSFETとArduino出力のインターフェースは、Arduinoの低電力出力を介して高電力負荷を切り替えることができる重要な構成です。

この記事では、BJTやMOSFETなどのトランジスタをマイクロコントローラやArduinoで使用または接続する正しい方法について詳しく説明します。



このような段階は、 「レベルシフター」 このステージは、関連する出力パラメータの電圧レベルを低いポイントから高いポイントに変更するためです。たとえば、ここでは、選択した12V負荷に対してArduino5V出力からMOSFET12V出力へのレベルシフトが実装されています。

Arduinoがどれほど適切にプログラミングまたはコーディングされていても、トランジスタまたは外部ハードウェアと正しく統合されていないと、システムの非効率的な動作や、システムに関連するコンポーネントの損傷につながる可能性があります。



したがって、最終的な結果が効果的、スムーズ、効率的になるように、MOSFETやBJTなどの外部アクティブコンポーネントをマイクロコントローラーで使用する正しい方法を理解して学習することが非常に重要になります。

トランジスタとArduinoのインターフェース方法について説明する前に、BJTとMOSFETの基本的な特性と動作を学習しておくと役に立ちます。

トランジスタの電気的特性(バイポーラ)

BJTはバイポーラ接合トランジスタの略です。

BJTの基本的な機能は、外部電圧トリガーに応答して、接続された負荷をオンにすることです。負荷は、入力トリガーと比較して、電流がほとんど大きいと想定されています。

したがって、BJTの基本機能は、低電流入力トリガーに応答して高電流負荷をオンにすることです。

技術的には、これは トランジスタのバイアス 、これは、電流と電圧を使用して目的の機能のためにトランジスタを動作させることを意味し、このバイアスは最適な方法で実行する必要があります。

BJTには、3つのリードまたは3つのピン、つまりベース、エミッタ、コレクタがあります。

ベースピンは、小さな電圧と電流の形で外部入力トリガーに給電するために使用されます。

エミッタピンは常にグランドまたは負の電源ラインに接続されています。

コレクターピンは、正の電源を介して負荷に接続されています。

BJTは、NPNとPNPの2種類の極性で見つけることができます。基本的なピン構成は、DC電源の極性が正反対になることを除いて、上記で説明したようにNPNとPNPの両方で同じです。

ザ・ BJTのピン配列を理解できた 次の画像を介して:

上の画像では、NPNおよびPNPトランジスタ(BJT)の基本的なピン配置構成を見ることができます。 NPNの場合、エミッタはグランドラインになり、負の電源に接続されます。

通常、DC回路で「グラウンド」という言葉が使用されている場合、それは負の電源ラインであると想定されます。
ただし、トランジスタの場合、エミッタに関連付けられたグランドラインは、そのベース電圧とコレクタ電圧を基準にしており、エミッタの「グランド」は必ずしも負の電源ラインを意味するわけではありません。

はい、NPN BJTの場合、グラウンドは負の供給ラインになる可能性がありますが、 PNPトランジスタ 上の図に示すように、「グラウンド」は常に正の供給ラインを基準としています。

両BJTのON / OFF切り替え機能は基本的に同じですが、極性が異なります。

BJTのエミッタは、ベースとコレクタを通過する電流の「出口」通路であるため、ベース/コレクタ入力で使用される電圧と反対の電源ラインに「接地」する必要があります。そうしないと、回路が完成しません。

NPN BJTの場合、ベース入力とコレクタ入力は正のトリガーまたはスイッチング電圧に関連付けられているため、エミッタは負のラインを基準にする必要があります。

これにより、ベースとコレクタに入る正の電圧がエミッタを介して負のラインに到達し、回路を完成させることができます。

PNP BJTの場合、ベースとコレクタは負の電圧入力に関連付けられているため、当然、PNPのエミッタは正のラインを基準にして、正の電源がエミッタから入り、ベースからの移動を終了できるようにする必要があります。とコレクターピン。

NPNの電流はベース/コレクターからエミッターに向かって流れますが、PNPの場合はエミッターからベース/コレクターに向かって流れることに注意してください。

どちらの場合も、目的はBJTのベースにある小さな電圧入力を介してコレクタ負荷をオンにすることであり、極性が変わるだけです。

次のシミュレーションは、基本的な操作を示しています。

トランジスタが外部電圧とどのように導通するか

上記のシミュレーションでは、ボタンを押すとすぐに、外部電圧入力がBJTのベースに入り、エミッタを介してグランドラインに到達します。

これが発生している間、BJT内のコレクター/エミッター通路が開き、上からの正の電源が電球に入り、エミッターを通過してアースに到達し、電球(負荷)をオンにします。

両方の切り替えは、押しボタンの押下に応答してほぼ同時に発生します。

ここでのエミッタピンは、両方の入力フィード(ベースとコレクタ)の共通の「出口」ピン配列になります。

また、エミッタ供給ラインは、入力供給トリガーと負荷の共通接地ラインになります。

つまり、BJTエミッタに接続する電源ラインも、外部トリガーソースのグランドと負荷に厳密に接続する必要があります。

BJTのベースに抵抗を使用する理由

BJTのベースは低電力入力で動作するように設計されており、このピンは大電流入力を取り込むことができないため、ベースに大電流が流れないようにするために抵抗を使用しています。

抵抗器の基本的な機能は、負荷仕様に従って、電流を正しい指定値に制限することです。

ご注意ください つまり、BJTの場合、この抵抗はコレクタ側の負荷電流に応じた寸法にする必要があります。

どうして?

BJTは電流に依存する「スイッチ」であるため。

つまり、コレクタ側の負荷電流仕様に合わせてベース電流を増減または調整する必要があります。

ただし、BJTのベースに必要なスイッチング電圧は0.6Vまたは0.7Vまで低くすることができます。つまり、BJTコレクタ負荷は、BJTのベース/エミッタ間で1Vという低い電圧でオンに切り替えることができます。
ベース抵抗を計算するための基本的な式は次のとおりです。

R =(Us-0.6)Hfe /負荷電流、

ここで、R =トランジスタのベース抵抗、

Us =ベース抵抗へのソースまたはトリガー電圧、

Hfe =トランジスタの順方向電流ゲイン(BJTのデータシートから確認できます)。

式はきれいに見えますが、ベース抵抗をそれほど正確に構成する必要は必ずしもありません。

なぜなら、BJTベースの仕様は許容範囲が広く、抵抗値の大きな違いを簡単に許容できるからです。

例えば、 リレーを接続するには 30mAのコイル抵抗を持っているので、式は12V電源入力でBC547に対しておよそ56Kの抵抗値を提供するかもしれません....しかし私は通常10Kを使用することを好みます、そしてそれは完璧に動作します。

ただし、最適なルールに従わない場合は、結果に問題がある可能性があります。

技術的にはそれは理にかなっていますが、計算に費やされた労力に比べて損失は非常に小さいため、無視することができます。

たとえば、56Kの代わりに10Kを使用すると、トランジスタがわずかに多くのベース電流で動作するようになり、わずかにウォームアップする可能性があります。数度高くなる可能性があります...これはまったく問題ではありません。

BJTをArduinoに接続する方法

では、実際のポイントに行きましょう。

これまで、BJTを3つのピン配置にバイアスして構成する必要があることを包括的に学習したので、Arduinoなどのマイクロコントローラーとのインターフェースに関する詳細をすばやく把握できます。

BJTをArduinoに接続する主な目的は、通常、Arduino出力ピンの1つからのプログラムされた出力に応答して、コレクタ側で負荷または何らかのパラメータをオンにすることです。

ここでは、BJTベースピンのトリガー入力はArduinoからのものであると想定されています。これは、ベース抵抗の端をArduinoからの関連する出力に接続するだけでよく、BJTのコレクターに負荷または目的の外部パラメーターを接続する必要があることを意味します。

BJTは効果的なスイッチングのために0.7Vから1Vをほとんど必要としないため、Arduino出力ピンからの5Vは、BJTを駆動し、妥当な負荷を動作させるのに完全に適切になります。
構成例は、次の画像を参照してください。

Arduinoとトランジスタリレードライバーのインターフェースまたは接続

この画像では、プログラムされたArduinoを使用して、BJTドライバーステージを介したリレーの形で小さな負荷を操作する方法を確認できます。リレーコイルがコレクタ負荷になり、選択したArduino出力ピンからの信号がBJTベースの入力スイッチング信号のように機能します。

Arduinoを高出力LEDに接続する

トランジスタドライバを介して高負荷を動作させるにはリレーが最適ですが、機械的なスイッチングが望ましくない要因になる場合は、以下に示すように、BJTをアップグレードすることで大電流DC負荷を動作させることができます。

上記の例では、リレーに依存せずに、示された高電流100ワットの負荷を処理するように構成されたダーリントントランジスタネットワークを見ることができます。これにより、外乱を最小限に抑えてLEDをシームレスに切り替えることができ、すべてのパラメーターの長寿命が保証されます。

それでは、さらに進んで、ArduinoでMOSFETを構成する方法を見てみましょう。

MOSFETの電気的特性

ArduinoでMOSFETを使用する目的は、通常、前述のBJTの目的と似ています。

ただし、通常から MOSFETは設計されています BJTと比較してより高い電流仕様を効率的に処理するために、これらは主に高電力負荷のスイッチングに使用されます。

MOSFETとArduinoのインターフェースを理解する前に、基本を知ることは興味深いでしょう BJTとMOSFETの違い

以前の議論で、私たちはそれを理解しました BJTは電流に依存するデバイスです 、それらのベーススイッチング電流はコレクタ負荷電流に依存するためです。より高い負荷電流はより高いベース電流を要求し、逆もまた同様です。

MOSFETの場合、これは当てはまりません。つまり、BJTベースに相当するMOSFETゲートは、ドレイン電流に関係なく、スイッチをオンにするために最小限の電流しか必要としません(MOSFETのドレインピンはBJTのコレクタピンに相当します)。

そうは言っても、電流はMOSFETゲートを切り替えるための決定要因ではありませんが、 電圧はです。

したがって、MOSFETは電圧依存デバイスと見なされます

MOSFETの健全なバイアスを作成するために必要な最小電圧は5Vまたは9Vであり、12VがMOSFETを完全にオンにするための最適な範囲です。

したがって、MOSFETをオンにし、そのドレインに負荷をかけるために、ゲート全体に10V電源を使用して最適な結果を得ることができると想定できます。

MOSFETとBJTの同等のピン

次の画像は、MOSFETとBJTの補完ピンを示しています。

ベースはゲートに対応します-コレクターはドレインに対応します-エミッターはソースに対応します。

ArduinoでのBJTMOSFETピン配置置換

MOSFETゲートに使用する抵抗器

以前のチュートリアルから、BJTのベースにある抵抗が重要であり、それがないとBJTが即座に損傷する可能性があることがわかりました。

MOSFETの場合、MOSFETはゲートでの電流差の影響を受けないため、これはそれほど重要ではない可能性があります。代わりに、より高い電圧は危険であると見なされる可能性があります。通常、20Vを超えるものはMOSFETゲートに悪影響を与える可能性がありますが、電流は重要ではない場合があります。

このため、抵抗は電流を制限するために使用され、MOSFETゲートは電流に依存しないため、ゲートの抵抗は関係ありません。

そうは言っても、MOSFETは 突然のスパイクやトランジェントに対して非常に脆弱 BJTと比較して、ゲートで。

このため、MOSFETのゲートには低い値の抵抗が一般的に好まれます。これは、突然の電圧スパイクがMOSFETゲートを通過して、内部で引き裂かれないようにするためです。

通常、 10〜50オームの抵抗 予期しない電圧スパイクからゲートを保護するために、MOSFETゲートで使用できます。

MOSFETとArduinoのインターフェース

上記の段落で説明したように、MOSFETは適切にオンに切り替えるために約10Vから12Vを必要としますが、Arduinosは5Vで動作するため、その出力をMOSFETで直接構成することはできません。

Arduinoは5V電源で動作するため、そのすべての出力はロジックハイ電源信号として5Vを生成するように設計されています。この5VにはMOSFETをオンにする機能があるかもしれませんが、デバイスのスイッチングが非効率になり、加熱の問題が発生する可能性があります。

効果的なMOSFETスイッチングのために、そしてArduinoからの5V出力を12V信号に変換するために、次の画像に示すように中間バッファステージを構成することができます。

MOSFETをArduinoに接続する方法

この図では、MOSFETが2つのBJTバッファ段で構成されていることがわかります。これにより、MOSFETは電源から12Vを使用し、それ自体と負荷を効果的にオンにすることができます。

ここでは2つのBJTが使用されています。これは、1つのBJTにより、すべての正のArduino信号に応答してMOSFETが逆に導通するためです。

1つのBJTが使用され、BJTが正のArduino信号でオンになっている間、MOSFETのゲートはBJTコレクターによって接地されるため、MOSFETはオフになり、Arduinoがオフのときに負荷がオンになります。

基本的に、1つのBJTはMOSFETゲートのArduino信号を反転し、反対のスイッチング応答をもたらします。

この状況を修正するために、2つのBJTが使用され、2番目のBJTが応答を反転し、Arduinoからのすべての正の信号に対してMOSFETがオンに切り替わるようにします。

最終的な考え

これで、BJTとMOSFETをマイクロコントローラーまたはArduinoに接続する正しい方法を包括的に理解できたはずです。

統合には主にNPNBJTとNチャネルMOSFETを使用し、PNPデバイスとPチャネルデバイスの使用を避けていることに気付いたかもしれません。これは、NPNバージョンがスイッチのように理想的に機能し、構成時に理解しやすいためです。

これは、後ろを振り返って後進するのではなく、通常は前方向に車を運転するようなものです。どちらの方法でも、車は動作して移動しますが、後進ギアでの運転は非常に非効率的であり、意味がありません。ここでも同じアナロジーが当てはまり、NPNまたはNチャネルデバイスを使用する方が、PNPまたはPチャネルMOSFETよりも優先されます。

疑問がある場合、または私がここで何かを見逃した可能性があると思われる場合は、下のコメントボックスを使用してさらに議論してください。




前:2つの単純な双方向モーターコントローラー回路の調査 次へ:オートバイのボタンがロック回路を開始します