関数“tone”を使うと圧電スピーカーから音を出すことができるので、オルゴールを作ってみました。
圧電スピーカーの周波数特性には色々なものがあるので、事前に確認しておきましょう。
今回必要な部品
- Arduino × 1
- USBケーブル( Aコネクタ – Bコネクタ )× 1
- ミニブレットボード × 1
- 圧電スピーカー × 1
- ジャンプワイヤー × 2
回路図
取りあえず、関数“tone”を使って圧電スピーカーを鳴らしてみます。関数“tone”は、引数として「出力ピン番号」,「出力周波数」,「出力時間(ミリ秒)」を指定できます。出力は、2 ~ 12番ピンに接続してください。
スケッチ(その1)
void setup() { tone(12, 440, 3000) ; } void loop() { }
音を出すのは書き込み後とArduinoのリセットボタンを押したときだけでいいので、処理はsetupに記述し、loopは空のままにしました。音は、調律に用いる音叉と同じ440Hzで、四分音符=80の場合の全音符と同じ60秒 ÷ 80 × 4= 3000ミリ秒で出力しました。
それでは、オルゴールを作ってみましょう。
スケッチ(その2)
void setup() { tone(12, 330) ; // 12番ピンにミ(330Hz)を出力する delay(750) ; // 四分音符(750ミリ秒) tone(12, 392) ; delay(750) ; tone(12, 440) ; delay(750) ; tone(12, 392) ; delay(750) ; tone(12, 330) ; delay(750) ; tone(12, 392) ; delay(750) ; tone(12, 523) ; delay(730) ; noTone(12) ; // 12番ピンの出力を停止する delay(20) ; // そのまま20ミリ秒待機する tone(12, 523) ; delay(750) ; tone(12, 440) ; delay(730) ; noTone(12) ; delay(20) ; tone(12, 440) ; delay(750) ; tone(12, 392) ; delay(750) ; tone(12, 330) ; delay(750) ; tone(12, 262) ; delay(750) ; tone(12, 294) ; delay(750) ; tone(12, 330) ; delay(750) ; noTone(12) ; } void loop() { }