I/OポートにLEDを繋ぐ

ポートの出力許容電流値

以前からH8とかにLEDを16個とか繋ぐたびに、電気屋さんからH8が可哀想と言われていました。
そこでハードウェアの資料を調べたら以下のような電気特性でした。

項目 max
出力 Low レベル許容電流(1端子あたり)ポート 1,2,5,B10mA
ポート 3,4,6,8,9,A2mA
出力Low レベル許容電流(総和)ポート 1,2,5,B 28端子の総和80mA
上記を含む全出力端子の総和120mA
出力 High レベル許容電流(1端子あたり)全出力端子2mA
出力 High レベル許容電流(総和)全出力端子の総和40mA

LEDは明るく光らせたいので15mA流し、Hで光らせていました。
1端子あたりの出力Highレベル許容電流が足らない上に総量が15mAx16=240mA。
1/6しか流せない。Lで光らせたとしても半分しか能力がない。やっぱりトランジスタが必要です。

トランジスタでポートを使う

トランジスタは以下のように2つのタイプがあります。
アクティブHigh(HighならON)で使うならNPN、
アクティブLow(LowならON)で使うならPNPを使用します。


LEDを繋ぐ場合の回路は以下のようになります。
IBから来るちょびっとの電流を増幅し、ICに流してやります。


トランジスタは手に入りやすく普及していて安い、2SC1815GRと 2SA1015GRを選びました。
ICの最大定格150mA、コレクタ・エミッタ間電圧50Vなので能力も十分です。
どちらのトランジスタもhFE(電流増幅度)は200~400です。
最低値200を元に計算します。(そういうものらしい)

H8やPICは5Vで使うので電圧は5V。LEDに流す電流は15mA~20mAなのでICは100mAあればよい。
IBはhFE=200で計算すると200=0.1/IB、IB=0.1/200=0.0005A=0.5mA。

R1はオームの法則から、R=V/I=5/0.0005=10000Ω=10KΩとなります。

R2はプルダウン抵抗で、起動時にポート値が不定になるのでLowに引っ張ってあげます。

R3はLEDの資料を元に計算します。私は面倒なので、テスタを電流計モードにし、半固定抵抗で
流して良い電流まで抵抗値を下げたあと、半固定抵抗の抵抗値を調べその値に近い抵抗を選びます。

これなら16個LEDを繋いでも、0.5mAx16=8mAと、H8やPICにやさしい作りになります。
っていうか、こう作らないといけないらしい。

デジタルトランジスタが良いらしい

上のようにトランジスタを使うと、ベースに入れる抵抗が増え半田付けが面倒です。
しかしデジタルトランジスタ(通称デジトラ)を使うと、この抵抗が不要になります。
デジトラは下図の様に、トランジスタと抵抗がセットになっていますので R1,R2 が不要になります。


前回の回路をデジトラに置き換えると以下のようになります。


NPNのDTC114(10KΩ)、DTC124(22KΩ)、PNPのDTA114(10KΩ)、DTA124(22KΩ)を持っていれば
ワンチップマイコンでは困らないでしょう。

トランジスタと LED の足

左からトランジスタ、デジトラ、LED。
tr00.jpg
E:エミッタ C:コレクタ B:ベース A:アノード K:カソード

ポートにLEDを繋ぐ

以上のことを踏まえてLED基板を設計すると以下のような回路になります。
回路はアクティブLowです。


デジトラのおかげで部品が少ないです。

led01.jpg

hobby/i_oポートにledを繋ぐ.txt · 最終更新: 2018/03/18 09:56 (外部編集)
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki