今回の目的
プラレールの発車ベルや車内メロディーを圧電スピーカーで再現できないか検証してみました。
方法
今回は圧電スピーカーをブレッドボードに付けて、ビープ音を鳴らしてみました。
ついでに音階を作って簡単なメロディを演奏できるようにしました。
ご存知の通り「音」は空気の振動によって発生します。
圧電スピーカーに出力させる音の周波数を変化させ、音階を作ります。
周波数対応表については、以下のサイトを参考にしました。
音階と周波数の対応表
周波数の指定にはtone関数が便利
tone関数は出力ピンに対して指定した周波数を、どの程度の長さで出力するか命令します。
#define ONPU 600//四分音符 #define ONPU2 800//二分音符 #define ONPU3 100 //三連符 #define SPEAKER 12 //スピーカーの出力ピン番号 void setup() { } void loop() { // tone (出力ピン番号,周波数(Hz),音の長さ(ミリセカンド)) tone(SPEAKER,523,ONPU3) ; // ド delay(200); tone(SPEAKER,523,ONPU3) ; // ド delay(200); tone(SPEAKER,523,ONPU3) ; // ド delay(200); tone(SPEAKER,523,ONPU2) ; // ド delay(600) ; tone(SPEAKER,415,ONPU) ; // ラb delay(600) ; tone(SPEAKER,466,ONPU) ; // シb delay(600) ; tone(SPEAKER,523,ONPU3) ; // ド delay(200); // 8分休符として付与 delay(200); tone(SPEAKER,466,ONPU) ; // シb delay(200); tone(SPEAKER,523,ONPU2) ; // ド delay(1200) ; // 省略 }
分かったこと
ただ、この作業は本当に地味すぎて、時間が掛かります。意外と根気が必要です。
ArduinoでMP3プレイヤーを作って、MP3音源を再生した方がおそらく楽かもしれません…トホホ(;^ω^)
ということで、メロディの出力方法については今後の課題として検討します。
今回は失敗に終わりましたが、何事も経験ですから試行錯誤しながらベストな方法を見つけます!
その他
見たままモードから「はてな記法」に変更
ソースコードを貼り付けるためには「はてな記法」に変更しないといけない。
でも、慣れたらこっちの方が楽かもしれないので試しに続けてみようと思います。
今回よりタイトル表記を変更
目的達成するまで道のりも長くなりそう。
当然更新も長くなりそうなので、エントリーのタイトル表記を変更しました。
沢山のエールに感謝します
応援して下さる皆さま、ありがとうございます!!
私自身、手先は本当に不器用なのでブレッドボードの作業がとても下手すぎてくじけそうなんですが、皆様のエールのお陰で諦めずに頑張れています。
本当に感謝<(_ _)>
そして、引き続き頑張っていきます!