この年になって初めて、トランジスタって何なのかが分かった!
1つのATtiny13Aで、複数のATtiny85をコントロールする(っていっても、電源ラインのON/OFFだけですが)という試みの続き。
前回、ATtiny13Aの出力ピン(本来はLEDへと電源供給)からATtiny85への電源を供給することで、ATtiny85内の電子オルゴールを奏でようとしましたが、うまく機能しませんでした。
根本的に「やってはいけないこと」なのかもしれませんが、ここまで来たら何とか動かしてみたい。
どんなに頑張っても40mAしか出力できない(出してはいけない?)ピンの先に、(場合によっては)200mA必要とするデバイスを接続してしまったってことですよね。
それは電流不足になるわけだわ。極端な言い方をすれば、同じ12Vだからといって乾電池で自動車のエンジンを動かせるのか(極端過ぎ?)って話ですからね。

さて、どうするか?
思いついたのはトランジスタを使うってこと。電流が足りないなら増幅してあげればいいかと。
でも、これってどうなんでしょ? トランジスタの使い方として正しいのかどうか、あるいは少しでも知識のある人なら最初からこういうやり方をするのが当たり前なのかも、正直分かりません。
トランジスタって、これまでどういうところに、どういう目的で使うのか、さっぱり分かりませんでした。
弱い電気信号を強い信号に増幅したり、電気信号の流れを高速にON/OFFするスイッチとしての役割を果たすなんてのは、言葉としては分かるんだけど、実際には???
それが、「電流が足りないから増幅したい」という “目的” が先にあって、「ああ、そう言えばトランジスタってそういう働きをするって聞いたことがあるな」って流れで、パズルがピタッと嵌った感じ。
でも、どんな規格のトランジスタを使えばいいんだ? その手の記事を読んでいてよく目にするのは2SC1815という東芝製のトランジスタ。いわゆる汎用トランジスタとしての地位を得ている?
ところで手元には、メロディICから音を出すために買ったS8050というトランジスタが大量にあります。これを使えると好都合なんだけどなーってことで、双方の規格を調べてみました。
トランジスタのデータシートの見るポイントは表のような感じらしいです。
表のデータを比べてみると、S8050でもまったく問題ないような気がします。返って、負荷となる電流(コレクタ電流)では、S8050の方が今回の用途には適しているのではないかと。
で、色んな解説記事を参考にさせて頂きながら、下記のような回路にしてみようと思います。

ATtiny13Aからの電流をトランジスタのベースに流してあげれば、その hFE倍の電流がコレクタ電流としてATtiny85に流れる仕組みです(多分)。
で、必要とするコレクタ電流を流すために、その1/hFEの電流がベースにかかるような抵抗(R1)を設定することになります。
この疑問に答えてくれる「トランジスタをスイッチとして使う」という、トランジスタの解説をしてくれているサイト(PDF)を見つけました。
この解説がすごく分かり易くて勉強になりました。以下、少し引用させて頂きます。
「いくらコレクタ電流がベース電流の hFE倍流れるといっても、その大きさには限界がある」
なるほど、疑問氷解。
「トランジスタは、ベース電流によってコレクタ電流が制御される素子ではあるものの、電流発生器ではないため、どんなにがんばってもコレクタとエミッタをショートした状態と同じ以上の電流は流れません」
とのこと。この「トランジスタのコレクタとエミッタが短絡したのと同じ状態」(それ以上大きなベース電流を流してもコレクタ電流に変化の無い状態)にあるのを飽和状態と言うそうです。
「トランジスタを飽和させることが、負荷と電源を直結した状態、すなわちスイッチONの状態。逆に、ベースに電流を流さなければコレクタ電流は流れないので、これはスイッチ OFFとなる」
このように、「トランジスタに電流を流さない状態」と「トランジスタを飽和させた状態」を作り出すことによって、トランジスタをスイッチとして使うことが出来るんですね。
上の方で書いた、「弱い電気信号を強い信号に増幅したり、電気信号の流れを高速にON/OFFするスイッチとしての役割」ってのが、1つの同じ機能だということが良く分かりました。
いやー、勉強になったなー(って感想が出るくらいのレベルだってことです←私がね)。
さて、次回はATtiny13A、ATtiny85とトランジスタを回路に組み込んで、動作を見てみる予定。
前回、ATtiny13Aの出力ピン(本来はLEDへと電源供給)からATtiny85への電源を供給することで、ATtiny85内の電子オルゴールを奏でようとしましたが、うまく機能しませんでした。
根本的に「やってはいけないこと」なのかもしれませんが、ここまで来たら何とか動かしてみたい。
乾電池で自動車のエンジンを回そうとしてた、みたいな感じ?
考えられる原因は、やっぱり電流容量が足りないんでしょうね。ATtiny85のデータシートには、以下のように記載されています。- 消費電流は200mA
- 入出力ピン出力電流 40mA
どんなに頑張っても40mAしか出力できない(出してはいけない?)ピンの先に、(場合によっては)200mA必要とするデバイスを接続してしまったってことですよね。
それは電流不足になるわけだわ。極端な言い方をすれば、同じ12Vだからといって乾電池で自動車のエンジンを動かせるのか(極端過ぎ?)って話ですからね。

さて、どうするか?
思いついたのはトランジスタを使うってこと。電流が足りないなら増幅してあげればいいかと。
でも、これってどうなんでしょ? トランジスタの使い方として正しいのかどうか、あるいは少しでも知識のある人なら最初からこういうやり方をするのが当たり前なのかも、正直分かりません。
トランジスタって、これまでどういうところに、どういう目的で使うのか、さっぱり分かりませんでした。
弱い電気信号を強い信号に増幅したり、電気信号の流れを高速にON/OFFするスイッチとしての役割を果たすなんてのは、言葉としては分かるんだけど、実際には???
それが、「電流が足りないから増幅したい」という “目的” が先にあって、「ああ、そう言えばトランジスタってそういう働きをするって聞いたことがあるな」って流れで、パズルがピタッと嵌った感じ。
数あるトランジスタの中から、どこを見て選定すればいいんだろ?
前置きが長くなりましたが、ATtiny13Aからの出力を増幅してATtiny85に供給するために、回路にトランジスタを組み入れてみることにしました。でも、どんな規格のトランジスタを使えばいいんだ? その手の記事を読んでいてよく目にするのは2SC1815という東芝製のトランジスタ。いわゆる汎用トランジスタとしての地位を得ている?
ところで手元には、メロディICから音を出すために買ったS8050というトランジスタが大量にあります。これを使えると好都合なんだけどなーってことで、双方の規格を調べてみました。
トランジスタのデータシートの見るポイントは表のような感じらしいです。
2SC1815GR | S8050 | |
何倍まで増幅できるか? 直流電流増幅率(hFE) | 200~400 | 240~270 |
負荷は最大何ボルトまで接続できるか? コレクタ・エミッタ間電圧(Vceo) | 50V | 25V |
負荷は最大何アンペアまで流せるか? コレクタ電流(Ic) | 150mA | 500mA |
マイコン側の電流は最大何アンペアまで流せるか? ベース電流(Ib) | 50mA | ? |
表のデータを比べてみると、S8050でもまったく問題ないような気がします。返って、負荷となる電流(コレクタ電流)では、S8050の方が今回の用途には適しているのではないかと。
で、色んな解説記事を参考にさせて頂きながら、下記のような回路にしてみようと思います。

ATtiny13Aからの電流をトランジスタのベースに流してあげれば、その hFE倍の電流がコレクタ電流としてATtiny85に流れる仕組みです(多分)。
で、必要とするコレクタ電流を流すために、その1/hFEの電流がベースにかかるような抵抗(R1)を設定することになります。
トランジスタは電流発生器ではない → 一安心した
ところで、ベース電流の100倍、200倍の電流がコレクタ電流として流れるってことは、この抵抗値を間違えてしまうと、とんでもない電流が流れてマイコンを壊してしまうんじゃないの?って。この疑問に答えてくれる「トランジスタをスイッチとして使う」という、トランジスタの解説をしてくれているサイト(PDF)を見つけました。
この解説がすごく分かり易くて勉強になりました。以下、少し引用させて頂きます。
「いくらコレクタ電流がベース電流の hFE倍流れるといっても、その大きさには限界がある」
なるほど、疑問氷解。
「トランジスタは、ベース電流によってコレクタ電流が制御される素子ではあるものの、電流発生器ではないため、どんなにがんばってもコレクタとエミッタをショートした状態と同じ以上の電流は流れません」
とのこと。この「トランジスタのコレクタとエミッタが短絡したのと同じ状態」(それ以上大きなベース電流を流してもコレクタ電流に変化の無い状態)にあるのを飽和状態と言うそうです。
「トランジスタを飽和させることが、負荷と電源を直結した状態、すなわちスイッチONの状態。逆に、ベースに電流を流さなければコレクタ電流は流れないので、これはスイッチ OFFとなる」
このように、「トランジスタに電流を流さない状態」と「トランジスタを飽和させた状態」を作り出すことによって、トランジスタをスイッチとして使うことが出来るんですね。
上の方で書いた、「弱い電気信号を強い信号に増幅したり、電気信号の流れを高速にON/OFFするスイッチとしての役割」ってのが、1つの同じ機能だということが良く分かりました。
いやー、勉強になったなー(って感想が出るくらいのレベルだってことです←私がね)。
さて、次回はATtiny13A、ATtiny85とトランジスタを回路に組み込んで、動作を見てみる予定。
- 関連記事
-
-
4*4*4の LED CUBE 作りに挑戦してみようかな(1)
-
「オーイ、なにバカなことやってんだ」って笑われそうな気もするけど
-
この年になって初めて、トランジスタって何なのかが分かった!
-
1つのAVRで、複数のAVRをマスタースレーブ風に制御する?
-
AVRマイコンの電源スイッチとスリープモードと
-