2個のLEDを1ポートで制御

最小限の部品を使い、マイコンの1個の出力ポートで2個のLEDを個別に制御する回路です。
マイコンの空きポートが少なかったり、コスト要求が厳しい時に使えそうです。

Twitterでは、ギリセーフやら燃えるやら結構いろんな反応がありました。
一部のBluetoothレシーバーのICでも実績があるようです。

さて、この回路は実用的なのか?検証してみます。

どんな動きをするのか?

電源(Vdd)は5Vとします。
LED1は赤色で順方向電圧Vf=2.1V、LED2は青色でVf=3.1Vとしましょう。
この電圧を超えないとLEDは光りません。

マイコンのI/O端子はプログラムから
①入力設定、②出力Low、③出力High
の3モードが設定できるとします。
もちろんマイコンはLEDを駆動できるだけの能力があると仮定します。

①どっちも消灯

マイコンのI/O端子を入力設定にします。
ハイインピーダンスになるのでマイコンの存在を無視できます。
(pA、nAオーダーはこの際無視)
LEDを光らせるには、
LED1のVf 2.1V + LED2のVf 3.1V = 5.2Vが必要です。
しかし電源が5Vなので、ギリギリ電圧が足りず、2個のLEDには電流が流れないので光りません。

②LED1のみ点灯

マイコンのI/O端子を出力設定にしてLowにします。図のVoutが0Vになります。
LED1: 抵抗Rを介して電流が流れ、光ります。
LED2: 電源電圧VddからLED1のVfを差っ引いた2.9Vが掛かりますが、必要なVf=3.1Vより低いため光りません。

③LED2のみ点灯

マイコンのI/O端子を出力設定にしてHighにします。図のVoutが5Vになります。

LED1: 電源電圧VddからLED2のVfを差っ引いた1.9Vが掛かりますが、必要なVf=2.1Vより低いため光りません。
LED1: 抵抗Rを介して電流が流れ、光ります。

なおLED1とLED2の電流は抵抗Rで決まるので、それぞれの電流が異なります。
が、極限まで部品を減らしたいので妥協しましょう。

④どっちも点灯

LED1もLED2も点灯させるにはどうするか?
マイコンのI/O端子を高速でHigh/Lowにします。すると残像効果でどっちも光っているように見えるでしょう。(強引)


現実問題

さて上記のように適当に考えると、上手くいく感じがします。
しかし現実は甘くない……。
電源5Vの精度、LEDのバラツキ、温度特性等々、考慮するべき点が多数あります。

というか、既に①の時点で0.2Vしか余裕がありません。

マイコンの電源5Vに三端子レギュレータ、
定番のTOSHIBAのTA78L05Sを使ったとしたら、
出力電圧は最小4.8Vから最大5.2Vです。破綻しました。
また測定条件が異なると最大5.25Vとなっています。

 

 

LEDのほうは、例えば次のLEDを選んだとします。

データシートを見てみると、

赤色LEDの方はVfの最小値が1.8Vです。
青色LEDの方はVfの最小値が2.8Vです。
合計すると4.6Vです。これだと光りますねえ!

また、上の表の値は順方向電流Ifが20mAの時です。
LEDやダイオードは、順方向電流Ifが小さくなると
Vfも下がります。

赤色LEDのVfとIfのカーブを見てみます。

If=20mAではVfが2.1Vですが、
If=10mAではVfが下がり1.8Vぐらいになりそうです。

更に温度特性を見てみます。

温度が上がるとVfが下がります。
25℃上がると凡そ0.06V下がるようです。

青色LEDの場合、

赤色LEDの時と縦軸のレンジが違ってますが、
If=20mAではVfが3.1V、
If=10mAでは2.7Vぐらいになりそうです。

赤色LEDと同様、温度が上がるとVfが下がります。
25℃上がると凡そ0.06V下がるようです。

つまり・・・この回路は、そのまま使うには危険ですね。

実際に使うには

とまあ色々考えましたけど、そのまま使うのは厳しそうです。
ですが、次の解決策を考えてみました。
たぶん、イケるでしょう。

① 2個とも青色LEDにする

②LED1の上にダイオードを付ける

 


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です