関数“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() {
}
		


