Arudinoでファンファーレを鳴らそう
今回はAmazonで購入した Arudino Nano(互換) を使用して圧電スピーカで遊びます!
ただ音を鳴らすのではつまらないので、
FF(ファイナルファンタジー)というゲームのファンファーレの一部を抜粋して鳴らします。
楽譜に書き出すと、次のようになります。
次に楽譜の音をArudinoのプログラムに起こします。
#define BEATTIME 500 //音を出している時間(msec) #define SPEAKER 12 //スピーカーの出力ピン番号 void setup() {} //音の名前(変数)と周波数を設定 float z (){tone(SPEAKER,0,BEATTIME);} //無音(音が連続しないようにする) float ra (){tone(SPEAKER,415.3,BEATTIME) ;} //ラ♭ float si (){tone(SPEAKER,466.2,BEATTIME) ;} //シ♭ float do (){tone(SPEAKER,523.23,BEATTIME) ;} //ド void loop() { do();delay(BEATTIME/3) ;z();delay(BEATTIME/100) ; //BEATTIME÷3で3連符を表現 do();delay(BEATTIME/3) ;z();delay(BEATTIME/100) ; //BEATTIME÷100で音と音の間に間隔をあける do();delay(BEATTIME/3) ;z();delay(BEATTIME/100) ; do();delay(BEATTIME) ;z();delay(BEATTIME/100) ; //4分音符はBEATTIMEそのまま ra();delay(BEATTIME) ;z();delay(BEATTIME/100) ; si();delay(BEATTIME) ;z();delay(BEATTIME/100) ; do();delay(BEATTIME/3) ;z();delay(BEATTIME/100) ; z();delay(BEATTIME/3) ;z();delay(BEATTIME/100) ; si();delay(BEATTIME/3) ;z();delay(BEATTIME/100) ; do();delay(BEATTIME*3) ;z();delay(BEATTIME/100) ; //付点2分音符はBEATTIME×3で表現 delay(BEATTIME*10) ; //ループ再生の間隔をあける }
これをArudinoのマイコンに書き込んでください。
Arudinoの12ピンに圧電スピーカの+端子を差し込み、-端子はGNDに差し込んでください。
これで完了です!Arudinoに電源を入れると音楽が流れます!
音量調整をしたい場合は、12ピンとスピーカの+端子の間に抵抗を入れてください。
可変抵抗を入れると音量の調整がしやすいと思います。
以上です。最後までお読みいただきありがとうございました!