エレキどシロートが考える
エレキや回路の理解が不十分な素人が、できるだけマイコンなどと組み合わせて何かすることを考える、、のその1。その2はあるが、いつまでネタが続くか不明。
トランジスタを用いてスピーカーの音量を変える(大きくする)
トランジスタといえば、何かしらを増幅するもの。若かりし頃の大学の実験か何かで扱って以来、まともに使ったことがなく、素人ながら、再度動作を確認する。ここでは、Arduinoにスピーカーを接続し、トランジスタで音量が増えることを試す。
用いるもの
トランジスタ
NPNトランジスタ2N3904を利用。スイッチサイエンスにて、ディスクリート部品詰め合わせキットとして、他の部品とパックで購入。
スピーカー
8オームスピーカーを用いた。秋月電子で50円。
ソースコード
こちらにあるソースコードをそのまま使う。一応、そのまま下記する。
/*macro definition of Speaker pin*/
# define SPEAKER 3
int BassTab[]={1911,1702,1516,1431,1275,1136,1012};//bass 1~7
void setup()
{
pinInit();
}
void loop()
{
/*sound bass 1~7*/
for(int note_index=0;note_index<7;note_index++)
{
sound(note_index);
delay(500);
}
}
void pinInit()
{
pinMode(SPEAKER,OUTPUT);
digitalWrite(SPEAKER,LOW);
}
void sound(uint8_t note_index)
{
for(int i=0;i<100;i++)
{
digitalWrite(SPEAKER,HIGH);
delayMicroseconds(BassTab[note_index]);
digitalWrite(SPEAKER,LOW);
delayMicroseconds(BassTab[note_index]);
}
}
Arduinoのピン3にスピーカーを接続、digitalWrite()のオンオフの周期を変えることで、音を変化させている。
まずはトランジスタ無し
回路は単純。
このとき、スピーカーに流れる電流値の最大値は、46mAくらいであった。
トランジスタ有り
ここなど、ネット上には参考となる回路は見つかる。今回の回路と実際の接続の様子は下記のとおり。トランジスタのコレクタのところに8オームスピーカーを接続、ベースとピン3の間にある抵抗値は1Kオーム、ベースとGNDとの間にある抵抗値は10Kオームである。抵抗値については、トランジスタの基本的な説明がされているサイトの情報から適当に選ぶ。
トランジスタ無しの時に比べて、確実に音が大きく、スピーカーに流れる電流値の最大値を測定すると、92mAくらいであった。
とりあえず成功。