Arduinoの勉強　第11弾：LED (3) - 高輝度LEDの点灯・制御（トランジスタ制御）

# #高輝度LEDの点灯・制御（トランジスタ制御）
##はじめに
ハードウェアの勉強のためにArduinoを復習も兼ねて参考教材に沿って，勉強する．細かな部分の理解までして，自在に扱えるようになることが目的である．その第11弾として，「高輝度LEDの点灯・制御（トランジスタ制御）」を扱う
## デジタル入出力端子の制限を超えるLEDの点灯
Arduinoの標準制限値を考慮すると，何の工夫もなしに，複数のLEDを用いると点灯できないことが生じる．
![slide1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/c844649a-68e8-7773-0cfc-9dcb7db00e1f.png)

ここで，トランジスタを用いた工夫について学んでいく．

## トランジスタとは？（役割）
そもそもトランジスタというのは，どういったものでどのようなときに用いるのかをまとめておく．
![slide2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/f1cc62e2-3913-11e1-d19f-6f4c6b6e551a.png)

このように，スイッチングとしても増幅回路としても用いることができる．電源不足に関する問題はこれで解決ができる．（他にもリレーなるものがあるらしいが，それはまたの機会に学ぶこととする）

## トランジスタの種類
トランジスタにもいくつか種類がある．ほんの一部ではあるとは思うが，大きなくくりで2つ以下に示す．
![slide3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/50f41b7b-9d98-8fb0-19d5-9bef004f16bb.png)

また，トランジスタは「P型半導体」と「n型半導体」を3つつなぎ合わせた構造をしており，そこでも2つに分かれる．

- PNP型トランジスタ（P, N, P）
- NPN型トランジスタ（N, P, N）

この違いによって動作原理が変わることはないため，以下ではNPN型トランジスタを例に動作原理を見ていく．

##### 動作原理
以下に，それぞれトランジスタの電流制御部分ににおいてOFF，ONの状態の動作原理を示す．
![video1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/7611e2ee-9106-1799-490d-e74711b8f062.gif)
![video2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/723cc768-b668-c2e6-962f-9519f6e7411c.gif)
ONの状態では，ベース部分に電源マークがついているが，これはマイコンからの信号を表している．つまりは，ここの電源は小さな電源ととらえる．外側にある電源マークは外部電源で，大きな電源供給ができるものとする．
動作原理（ON）では，P型半導体が非常に薄いことを利用して，ベースで操作することでどんどん電子がエミッタからコレクタに流れていき，電流がコレクタからエミッタに流れる．**ベースに流す電流を大きくすればするほど，大きな電流をコレクタ-エミッタ間で流すことができる．**

## トランジスタの図
### 回路図
<img width="400" alt="slide4" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/5900ce59-b6c5-c3d9-e7dc-e8581187c585.png">

### 外見
<img width="400" alt="slide5" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/a3d2d21c-5a68-5860-a779-5dd00cb38082.png">
その他の形状も存在する．

## トランジスタの選択
トランジスタを使うにあたって，どのようなパラメータを気にする必要があるのかについて学んでおく必要がある．

### 最大電圧
- トランジスタにかけられる最大電圧
- コレクタ-エミッタ間電圧（**$V_{CED}$**）を参照

※実際に利用する場合には安全を考慮して，最大電圧を**$V_{CED}$**の半分程度の電圧までにとどめておく

### 最大電流
- 被制御側の回路に流せる最大値：直流コレクタ電流（**$I_{C}$**）を参照

※最大電圧と同様，最大電流を**$I_{C}$**の半分程度の電流までにとどめておく

### 最大電力
- トランジスタは電流を流すと発熱する
- 熱くなりすぎると半導体が壊れて動作しなくなる
- コレクタ損失は発熱がどの程度まで対応できるかを電力で表す

※ただし，十分に放熱している場合の値であるため，放熱板を搭載しなかったり，風通しが悪かったりすると，$P_{C}$よりも低い電力で壊れることもある．

(最大電流)=$P_{C} / V_{CED}$

例） $P_{C} = 400mW, V_{CED}=5V$
　　 $400mW ÷ 5V = 80mA$
しかし，ここでもやはり安全を考慮して半分の40mA程度におさえるようだ．

以上のことから，最大電流もしくは最大電圧は最大電力が分かっておれば，$V_{CED}$もしくはI_{C}のどちらかの情報から求められる．

### ベース電流によって増幅される割合
◎トランジスタはベースに流れる電流を何倍かに増幅して，**コレクタ**に電流を流すことができる．

- 直流電流増幅率（$h_{FE}$）：どの程度増幅されるのかを表す

例）$h_{FE=100}$ → ベース電流を100倍に増幅できる

　　 $1 mA \times 100 = 100 mA$
　　 $ベース　h_{FE}　コレクタ$

※もちろん，先ほどの最大電流を超えるような増幅をして，流すことはできない

### 対応する周波数
トランジスタでは，切り替えに対応できる周波数を**トランジション周波数（$f_{r}$）**で表す．データ通信のようなオン・オフを高速で切り替える信号でも増幅やスイッチングできる．
ただし，その切り替えが速すぎると，トランジスタ機器の切り替えが間に合わない．$f_{r}$の値以上の周波数の信号は切り替えが間に合わない恐れがある．

### ベースとエミッタ間の電圧
**ベース-エミッタ間電圧$V_{BE}$**：トランジスタがオンの状態でのベースとエミッタ間の電圧
※ベースに流れる電流によって多少の変化はあるが，ほぼ一定の電流を保つ．

例）2SC1815の場合，$V_{BE}\approx0.7V$
この値を利用して，ベースに抵抗を接続し，ベースに流れる電流を調整する．



### トランジスタの型番
![slide4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/c6ffbc3e-ae22-058b-3733-fcc1f09e2b58.png)
型番はこのような意味を指しているが，トランジスタ「2S」については，「2N」など製造するところによって他のものも存在するらしい．

## 高輝度LEDの点灯を制御
最後に，応用例として，高輝度LEDの点灯を制御する方法について学ぶ．まず，使う電子部品を以下に示す．

- 高演色性高輝度白色LED「OSWR4356D1A」
- トランジスタ「2SC1815-Y」
- 抵抗33Ω
- 抵抗22kΩ
- ブレッドボード
- 外部電源（9V）

#### 光らせるだけに必要な抵抗値を求める
OSWR4356D1Aは3つのLEDを点灯しているため，順電圧が「8.5V」，順電流が「20mA」となっている．
まず単純に光らせるだけなら，9Vの電源を利用すればよい．電流を制御するための抵抗はオームの法則から25Ωと求められる．ただし，25Ωの抵抗は一般的ではないため，33Ωの抵抗を使う．これによりLEDには15mAの電流が流れることになる．

<img width="400" alt="just_led" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/ea86e492-49c5-91fe-40dd-9c454caec562.png">


#### Arduinoから制御する
まず，点灯に必要な順電圧がArduinoの出力電圧の限界値（5V）を超えていることから，外部から電源供給が必要であることが分かる．そこで，トランジスタを用いることを考える．ここでは，NPN型トランジスタ「2SC1815-Y」を利用する．

##### ベースに接続する抵抗を求める
トランジスタの直流電流増幅率（$h_{FE}$）は100．先ほどの結果からLEDには15mAの電流を流す．ただし，トランジスタには余裕をもって20mAまで流せるように計算しておく．20mAの電流を流すには，ベース電流（$I_{B}$）は100分1の0.2mAを流せばよいことになる．ベース-エミッタ間電圧（$V_{BE}$）は約0.7V，デジタル入出力端子からのHIGH出力は5Vであるから，ベースとマイコン間に挟む抵抗は以下のようにして求められる．

$(5V - V_{BE})÷I_{B} = (5V-0.7V)÷0.2mA = 21.5k\Omega$

つまり，21.5kΩの抵抗に接続すればよいが，例によって一般的な抵抗でないため，近い値の22kΩを選択．


<img width="400" alt="just_led" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/c5298eec-6f79-f619-1851-8ce528384a10.png">


## 感想
トランジスタは増幅回路やスイッチングに使えるということは授業では学んだことがあったものの，しっかりと使えるほどの理解ではなかったと痛感した．今回の学習を通して，トランジスタとは何たるものかということが少しはつかめたのではないかと思う．改めて，授業で学んできた電子回路での計算がなぜ必要なのかを理解することができた．今までは，電子部品のデータシートを見てもさっぱりわからなかったが，このような学習を積み重ねて，理解し，自分で回路設計までできるようにまで成長できれば，またモノづくりの幅が広がり，可能性が広がり，より楽しいものになるのだろうと妄想が膨らむ．少し時間がうまく取れていないが，今後の学習も楽しみである．

## 参考文献
- 電子部品ごとの制御を学べる！Arduino電子工作実践講座 改訂第2版 福田和宏 著 ソーテック社