====== I/OポートにLEDを繋ぐ ====== ===== ポートの出力許容電流値 ===== 以前から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を使用します。\\ {{tr01.gif}}\\ LEDを繋ぐ場合の回路は以下のようになります。\\ IBから来るちょびっとの電流を増幅し、ICに流してやります。\\ {{tr02.gif}}\\ トランジスタは手に入りやすく普及していて安い、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 が不要になります。\\ {{tr03.gif}}\\ 前回の回路をデジトラに置き換えると以下のようになります。\\ {{tr04.gif}}\\ NPNのDTC114(10KΩ)、DTC124(22KΩ)、PNPのDTA114(10KΩ)、DTA124(22KΩ)を持っていれば\\ ワンチップマイコンでは困らないでしょう。\\ ===== トランジスタと LED の足 ===== 左からトランジスタ、デジトラ、LED。\\ {{tr00.jpg}}\\ E:エミッタ C:コレクタ B:ベース A:アノード K:カソード ===== ポートにLEDを繋ぐ ===== 以上のことを踏まえてLED基板を設計すると以下のような回路になります。\\ 回路はアクティブLowです。\\ {{led00.gif}}\\ デジトラのおかげで部品が少ないです。\\ {{led01.jpg}}\\