「オーイ、なにバカなことやってんだ」って笑われそうな気もするけど
ATtiny13Aをマスターにして、複数のATtiny85をスレーブとしてコントロールすべく配線してみたけど、どうやら電流容量不足らしくて動作が不安定ってのが前々回の話。
それならATtiny13Aからの出力信号を増幅してATtiny85に入れてあげればいいのではないかと、手持ちのトランジスタ(S8050)が使えるかなって色々と検討してみたのが前回でした。
で、前回の中身を踏まえて回路を組んでみたのが以下の図です。
どうでしょうか?
根本的に間違っているような気もしなくはないけど、考え方としてはシンプルで、ATtiny85の電源ラインをATtiny13Aから引いてくると不安定なら、大元の電源から持ってこようと。
で、その出口側のGNDラインにトランジスタを接続し、ATtiny13Aの電気信号を増幅することでATtiny85に十分な電力を供給しようという意図です。
トランジスタのベースに流す電流の大きさを決めるために、R1の抵抗値を算出します。電源は4.5V(単三電池×3本)を想定し、負荷(ATtiny85)の電流を200mAとして計算します。
前回のS8050のデータシートから電流増幅率(hFE)を200倍として計算すると、
hFEにはかなり大きなバラツキがあるようなので、余裕を持たせベース電流を2mAとします。
S8050のベース・エミッタ間飽和電圧(半導体の壁)を1Vとすると、
となります。手持ちの抵抗でこの値に近いのは2.2kΩ なので、これを使うことに。
抵抗R2の役割は、もうひとつよく分かりませんが、回路を安定させるためには入れておいた方が良いらしいです。
ごく大雑把に言ってしまうと、ベースに電流を流さなくても「漏れ電流」(Icbo)なるものが存在し、そのお陰で(抵抗R2を入れないと)トランジスタが完全にOFFにならないって事らしい。
抵抗R2を入れると、コレクタから入った漏れ電流はエミッタへと流れず、抵抗R2を通ってGNDに逃げていくので、トランジスタが完全にOFFになると。
ところで、R2の大きさはR1と同じでOK?
従って、ATtiny13Aが起動すると [LED点灯/SP(1)音出] となり、この状態でタクトスイッチを押す度に、順次以下の様な動作を繰り返します(LEDは常に点灯)。
で、出来上がったのがこちら。
ATtiny85(1)には「エリーゼのために」、ATtiny85(2)には「ふるさと」が入っているので、タクトスイッチ長押しでATtiny13Aを起動させると、「エリーゼのために」から順次作動していきます。
再び、どうでしょうか?
素人考えで作っているので、もしかしたらどこかに大きな負荷がかかっているようなことがあるのかもしれませんが、取り敢えず、意図した通りの動きは(安定して)してくれています。
さて、回路図にある通り、2つのATtiny85からの出力は、それぞれ別のスピーカーに繋がれています(動画の中の手間側の茶色の円筒と、奥の白い円筒がスピーカー)。
次の課題は、これを1つのスピーカーで兼用できないかということ。シンプルに、2つのATtiny85からの出力を1つのスピーカーに接続してみたら、やはりというか当たり前というか、ダメでした。
どうすればいいんだろ? どなたか、今回の回路の良し悪し含め、スピーカーの兼用方法などを(優しく)教えてやろうという奇特な方がおりましたら、是非ともご教授願いたいのですが。
それならATtiny13Aからの出力信号を増幅してATtiny85に入れてあげればいいのではないかと、手持ちのトランジスタ(S8050)が使えるかなって色々と検討してみたのが前回でした。
で、前回の中身を踏まえて回路を組んでみたのが以下の図です。
どうでしょうか?
根本的に間違っているような気もしなくはないけど、考え方としてはシンプルで、ATtiny85の電源ラインをATtiny13Aから引いてくると不安定なら、大元の電源から持ってこようと。
で、その出口側のGNDラインにトランジスタを接続し、ATtiny13Aの電気信号を増幅することでATtiny85に十分な電力を供給しようという意図です。
R1の抵抗値を算出
トランジスタの位置がここで正しいのかも分からないのですが、トランジスタの使い方として「電流を引き込んでやるNPN型と流し込んでやるPNP型」との説明があったので、この配置にしています。トランジスタのベースに流す電流の大きさを決めるために、R1の抵抗値を算出します。電源は4.5V(単三電池×3本)を想定し、負荷(ATtiny85)の電流を200mAとして計算します。
前回のS8050のデータシートから電流増幅率(hFE)を200倍として計算すると、
200mA÷200=1mA
hFEにはかなり大きなバラツキがあるようなので、余裕を持たせベース電流を2mAとします。
S8050のベース・エミッタ間飽和電圧(半導体の壁)を1Vとすると、
R1=(4.5V-1V)÷0.002A=1750Ω(1.75kΩ)
となります。手持ちの抵抗でこの値に近いのは2.2kΩ なので、これを使うことに。
抵抗R2の役割は、もうひとつよく分かりませんが、回路を安定させるためには入れておいた方が良いらしいです。
ごく大雑把に言ってしまうと、ベースに電流を流さなくても「漏れ電流」(Icbo)なるものが存在し、そのお陰で(抵抗R2を入れないと)トランジスタが完全にOFFにならないって事らしい。
抵抗R2を入れると、コレクタから入った漏れ電流はエミッタへと流れず、抵抗R2を通ってGNDに逃げていくので、トランジスタが完全にOFFになると。
ところで、R2の大きさはR1と同じでOK?
SP(1)→SP(2)→消音(LEDはON)→SP(1)の繰り返し
さて、ATtiny13Aのプログラムは以下のようになっています。- スイッチ長押しでPB0のLEDが高速点滅し、電源のON/OFFトグル(実際は入眠/起床)
- 起きている状態(PB0のLED点灯)でスイッチを短押しで順に、PB2,3,4にHigh出力
従って、ATtiny13Aが起動すると [LED点灯/SP(1)音出] となり、この状態でタクトスイッチを押す度に、順次以下の様な動作を繰り返します(LEDは常に点灯)。
[SP(1)音出] → [SP(1)音消/SP(2)音出] → [SP(1)音消/SP(2)音消] → [SP(1)音出]
で、出来上がったのがこちら。
ATtiny85(1)には「エリーゼのために」、ATtiny85(2)には「ふるさと」が入っているので、タクトスイッチ長押しでATtiny13Aを起動させると、「エリーゼのために」から順次作動していきます。
再び、どうでしょうか?
素人考えで作っているので、もしかしたらどこかに大きな負荷がかかっているようなことがあるのかもしれませんが、取り敢えず、意図した通りの動きは(安定して)してくれています。
さて、回路図にある通り、2つのATtiny85からの出力は、それぞれ別のスピーカーに繋がれています(動画の中の手間側の茶色の円筒と、奥の白い円筒がスピーカー)。
次の課題は、これを1つのスピーカーで兼用できないかということ。シンプルに、2つのATtiny85からの出力を1つのスピーカーに接続してみたら、やはりというか当たり前というか、ダメでした。
どうすればいいんだろ? どなたか、今回の回路の良し悪し含め、スピーカーの兼用方法などを(優しく)教えてやろうという奇特な方がおりましたら、是非ともご教授願いたいのですが。
- 関連記事
-
- 4*4*4の LED CUBE 作りに挑戦してみようかな(2)
- 4*4*4の LED CUBE 作りに挑戦してみようかな(1)
- 「オーイ、なにバカなことやってんだ」って笑われそうな気もするけど
- この年になって初めて、トランジスタって何なのかが分かった!
- 1つのAVRで、複数のAVRをマスタースレーブ風に制御する?