以前からH8とかにLEDを16個とか繋ぐたびに、電気屋さんからH8が可哀想と言われていました。
そこでハードウェアの資料を調べたら以下のような電気特性でした。
項目 | max | |
---|---|---|
出力 Low レベル許容電流(1端子あたり) | ポート 1,2,5,B | 10mA |
ポート 3,4,6,8,9,A | 2mA | |
出力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Ω)を持っていれば
ワンチップマイコンでは困らないでしょう。