トランジスタのスイッチ回路|Arduinoでモーターや多くのLEDを動かす、ベース抵抗の決め方
データシートで確かめる数字
部品を選ぶときは、販売ページの説明だけでなく、データシートも確かめます。英語でも、見るところは決まっています。
| 項目 | 記号の例 | 意味 | 確かめること |
|---|---|---|---|
| コレクタ・エミッタ間電圧 | VCEO | オフのときに耐えられる電圧 | 負荷の電源より十分に大きい |
| コレクタ電流 | IC | 流せる電流の最大 | 負荷の電流より余裕がある |
| コレクタ損失 | PC、Pd | 発熱の上限 | 計算した発熱より十分に小さい |
| 電流増幅率 | hFE | 増幅のときの倍率 | スイッチでは倍率に頼らない |
| 飽和電圧 | VCE(sat) | 飽和時のCE間の電圧 | 発熱の計算に使う |
| ベース飽和電圧 | VBE(sat) | 飽和時のBE間の電圧 | ベース抵抗の計算に使う |
いずれも絶対最大定格の値ぎりぎりで使わないことが大切です。電流は定格の半分ほどまでを目安にすると、余裕が持てます。
足の並びを確かめる
同じ形のパッケージでも、足の並びは品番によって違います。E・C・Bの順のものもあれば、C・B・Eの順のものもあります。「文字の面を正面にして左から」など、データシートの図で必ず確かめます。テスターのダイオードの測定で確かめる方法もあります。使い方はテスターの基本を参考にしてください。
電流増幅率に頼らない
hFEは、同じ品番でも個体差が大きく、数倍の幅があることも珍しくありません。温度や電流によっても変わります。データシートに「hFE 200」とあっても、スイッチとして使うときは、その値をそのまま使いません。飽和を確実にするため、あとで説明するようにベース電流を多めに流します。
発熱を計算する
飽和したトランジスタの発熱は、コレクタ電流に飽和電圧を掛けて求められます。100mAの負荷で飽和電圧が0.2Vなら、0.1A × 0.2V = 0.02W、つまり20mWです。小型のトランジスタでも余裕のある値です。飽和せずに2Vの電圧が残れば、発熱は200mWと10倍になります。飽和させることがいかに大切か分かります。
ベース抵抗の決め方
ここが回路設計の中心です。手順は次の四つです。
手順
- 負荷の電流 IC を調べる。データシートの値、または実測値を使う。
- 目標のベース電流 IB を決める。スイッチでは IC ÷ 10 が基本で、負荷が軽いときは ÷ 20 も使う。
- ベース抵抗にかかる電圧を求める。ピンの電圧 − 0.7V。
- 抵抗値を計算する。R = (ピンの電圧 − 0.7V) ÷ IB。
「IC ÷ 10」というのは、飽和を確実にするためによく使われる目安です。データシートの飽和電圧も、この比率で測った値が載っていることが多くあります。hFEが100以上あるトランジスタでも、あえて倍率を10と考えてベース電流を多めに流します。ピンの負担を減らしたいときは、飽和電圧を実測で確かめる前提で20で割ることもあります。
計算の例
5VのArduinoで、100mAの負荷を動かす場合を考えます。
- 抵抗にかかる電圧は 5V − 0.7V = 4.3V。
- 基本の10分の1なら、IB = 10mA で、R = 4.3V ÷ 0.01A = 430Ω。標準の値から470Ωを選ぶと、IB は約9.1mAです。
- ピンの負担を抑える20分の1なら、IB = 5mA で、R = 860Ω。近い820Ωを選ぶと、IB は約5.2mAです。
どちらもピンの目安である20mAに収まります。迷ったら470Ωで作り、余裕があれば820Ωに替えて、飽和電圧が大きくならないかを測ると確実です。
なお、ピンの出力電圧は電流が増えると少し下がるので、計算は「おおよその目安」と考えます。大事なのは、ベース電流が足りて飽和していること、そしてピンに無理をさせないことです。
負荷の電流別の目安
ピンの電圧ごとの目安をまとめると、次のようになります。計算しやすいよう、hFEを10〜20として考えています。
| 負荷の電流 | 目標のベース電流 | 5Vのピン | 3.3Vのピン |
|---|---|---|---|
| 20mA | 約1〜2mA | 2.2kΩ〜4.7kΩ | 1.5kΩ〜2.2kΩ |
| 50mA | 約3〜5mA | 1kΩ前後 | 560Ω前後 |
| 100mA | 約5〜10mA | 470Ω〜820Ω | 270Ω〜510Ω |
| 200mA | 約10〜20mA | 220Ω〜470Ω | ピンの負担が大きい |
200mAを超える負荷では、ベース電流が大きくなり、ピンの負担が無視できません。このくらいの電流からは、後述するMOSFETを検討します。
抵抗が大きすぎるとき、小さすぎるとき
抵抗が大きすぎると、ベース電流が足りず、飽和しません。負荷が暗い、モーターが弱い、トランジスタが熱い、といった症状が出ます。
抵抗が小さすぎると、ベース電流が流れすぎ、ピンに負担がかかります。トランジスタ自体は飽和しているので症状が出にくく、気づきにくいところです。計算でベース電流の値を確かめておきましょう。

LEDをまとめて点ける例
5VでLEDを6本並列に
5V電源で、赤いLED(順方向電圧2.0V)を10mAずつ、6本同時に点ける場合を考えます。LEDは1本ずつ抵抗を付けて並列にします。
各LEDの抵抗は、トランジスタの飽和電圧を0.2Vとして、(5V − 2.0V − 0.2V) ÷ 0.01A = 280Ω です。近い値の300Ωを選ぶと、1本あたり約9.3mA、6本で約56mAになります。
ベース抵抗は、56mA ÷ 10 = 5.6mA を目標にして、4.3V ÷ 0.0056A = 約770Ω。820Ωを選ぶと、IB は約5.2mAで、倍率は11ほどです。飽和には十分な値と考えられます。
12VでLEDを直列につなぐ
12Vの電源が使えるなら、LEDを直列につなぐ方法があります。赤いLEDを4本直列にすれば、順方向電圧は合計8Vです。抵抗は (12V − 8V − 0.2V) ÷ 0.01A = 380Ω で、390Ωを選ぶと約9.7mAになります。
直列なら電流は10mAで済むので、並列より熱や電源の負担が小さくなります。ただしこの場合は、コレクタ側に12Vがかかることを忘れないでください。ピンに触れる配線を間違えると、Arduinoが壊れます。配線を確かめてから、電源を入れます。
計算の詳しい手順はLEDに付ける抵抗の計算を参照してください。
明るさを変える
トランジスタのスイッチは、後述するPWMと組み合わせると、LEDの明るさを変えられます。Arduinoで可変抵抗を読むの回路と組み合わせれば、つまみで複数のLEDの明るさを一度に変えることもできます。










