NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

NPNダーリントントランジスタアレイの使い方(STA301A)

 

 ArduinoUNO常時出力出来る電流は20mA程度と少ないです。LED(15mA程度)1個を光らせるくらいなら出来ますが、それ以上の電流を必要とする電子部品を動かすには力が足りません。そこで登場するのがトランジスタです。

今回使用するNPN・ダーリントントランジスタ・アレイは、その長い名前に相応しい普通のNPNトランジスタを上回る機能がギュッと小型に詰め込まれています!
 そんなNPNダーリントントランジスタアレイを使ってLEDを3つ光らせてみました
 

1.NPN・ダーリントントランジスタ・アレイとは?

1.1 NPNとは?
 トランジスタにはNPN型とPNP型が有ります。
 NPN型トランジスタ代表的な物が2SC1815で、PNP型トランジスタの代表的な物が2SA1015です。
 イメージとしてNPN型はマイコン出力HighでトランジスタがONし(LowはOFF)、PNP型はマイコン出力LowでトランジスタがON(HighはOFF)します。

1.2 トランジスタとは?
 トランジスタは電流を増幅する部品です。
 ベース(図1のB)に入った電流を①式で表されるhFE(hybrid forward emitter)倍に増幅された電流がコレクタ(図1のC)からエミッタ(図1のE)間に流れます。

直流電流増幅率(hFE)=コレクタ電流(Ic) ÷ ベース電流(IB)・・・①式
交流電流増幅率(hfe)=コレクタ電流(⊿ic) ÷ ベース電流(⊿ib)・・・②式
 
イメージ 6
図1:NPNトランジスタ模式図
 
1.3 ダーリントンとは?
 図2左のように複数のトランジスタを直結したものを「ダーリントン接続」と言い、このようなトランジスタを「ダーリントントランジスタ」と言います。
 トランジスタを複数繋ぐと、繋いだ分だけhFEが掛け算的に大きな値となる利点があります

例:Q1のhFE=31.6倍、Q2のhFE=31.6倍、
  Q1,Q2ダーリントン接続トランジスタのhFE=約1,000倍

 つまりダーリントン接続する事でトランジスタに求められる僅かな電流で大きな電流を制御するという性能があがります。
 
イメージ 4
図2:トランジスタダーリントン接続(左)と、通常の接続(右)例
プルダウン抵抗は省略しています。

1.4 アレイとは?
 アレイとは、配列(する)、整列(させる)、大群などの意味を持つ英単語です。
 同種のものが整然と並んでいる様を表す事から、図3端子図の様に「STA301A」は同じダーリントントランジスタが3つ並んでいる事からダーリントントランジスタアレイと呼ばれます。 

イメージ 5
図3:STA301A外観(左上)、寸法()、端子図(左下)
※SIP8Pin:SIP(Single Inline Package)パッケージの片側一列に足を8本出したもの

1.5 STA301Aの使い方
 図3端子図より、2,3ピンと4,5ピンと6,7ピンはそれぞれ独立したダーリントントランジスタで2つでセットです。
 3つのダーリントントランジスタのGNDは共通なので1,8ピンをGNDに接続します。
 また+側に接続した負荷(今回はLED)の-側を3,5,7ピンに接続します。
 最後に2,4,6ピンにArduinoUNO等の制御信号を入力しますが、そのまま繋ぐとLEDはほぼ光らないので、図4の様に電流制限抵抗を入れる必要が有ります。
 電流制限抵抗の値は以下の式で求める事が出来ます。

○電流制限抵抗の算出方法
 図2中の電流制限抵抗を選択する際には STA301AArduinoUNOの仕様書より、
V:Arduino出力がベースに与える電圧(Highで5V)
VBE:ベースエミッタ間飽和電圧(1.7V)※STA301AのSDSIC-VBE温度特性」より
Ic:コレクタ電流(4A)
hFE:直流電流増幅率(1000)
 電流制限抵抗(Ω) = ( V - VBE ÷ ( Ic ÷ hFE ) = 825Ω

 と計算できましたが、実際にはコレクタ電流の定格4Aを超えない程度に余裕を見て、1kΩにしておきました。

図4:電流制限抵抗の入れる場所

2. プログラム

 ArduinoUNOからSTA301Aを介してLEDを点滅するプログラムは下記の通りです。回路を接続する前にプログラムを書き込んでおきます。
 プログラムの内容としては、0.5秒周期で2~4番ピンが順番にHIGH(その他はLOW)となります
 
void setup() {
  for (int i = 2; i <= 4; i = i + 1) {
    pinMode(i, OUTPUT);
  }
}

void loop() {
  for (int i = 2; i <= 4; i = i + 1) {
    digitalWrite(i, HIGH);
    delay(500);
    digitalWrite(i, LOW);
  }
  digitalWrite(3, HIGH);
  delay(500);
  digitalWrite(3, LOW);
}
イメージ 1
図1:プログラム例

 

3. 実験!

 ArduinoUNOの2,3,4デジタル出力ピンをSTA301Aの2,4,6ベースピンに接続し、LEDが順番に点灯するか確認してみます
 ※STA301Aには図3端子図の通り、既に2つのプルダウン抵抗が内蔵されておりますので回路がシンプルに作れて便利です。

3.1 回路図
  fritzingでSTA301Aを介してLED3個を光らせる回路を以下の通り作りました
イメージ 7
図5:STA301Aを使ったLチカ回路図

3.2 実際に回路を組んでみた
 図5を元に実際に接続した回路です。
イメージ 2
図6:実際の回路

3.3 Lチカ!
 図6回路でArduinoUNOに電源を供給すると、無事ブレッドボード上のLED3個が順番に点灯しました!
イメージ 3
図5:STA301AでLチカ!
 

4. まとめ

 非力なマイコンで直接複数の光源や動力源をスイッチ的に制御する場合に、ダーリントントランジスタアレイは最適です
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【トランジスタ・FETの使い方!】目次に戻る