Arduinoでの圧電スピーカーの使い方(tone関数)
Arduinoで簡単な音楽を流してみたいと思う。
圧電スピーカーならオルゴール音みたいな感じにできると思うので使っていく。
今回は#音については除外させてもらった。
詳しい音階の周波数を知りたい人は自分で調べてほしい。
これを使って簡単なメロディを流すプログラムを作成した。
普通にドレミ音を出すプログラムである。
delay()関数を使っている理由は、これがないと音が重ねって出力されてしまうからである。
次はMMLを使った音の出力に挑戦してみたい。
あとはSTM32でこのtone()関数みたいなものを作成していこうと思っている。
圧電スピーカーならオルゴール音みたいな感じにできると思うので使っていく。
圧電スピーカーの回路を作る
回路を作ると書いているが、作るのはいたってシンプル。
Arduinoのアナログピンに圧電スピーカーをつなげるだけ。
今回は「A0」ピンからGNDにつなげた。
圧電スピーカーは秋月電子より購入。
ArduinoIDEのプログラム
Arduinoには「tone()関数」というものがある。
簡単に説明すると、出力するピンと周波数、出力時間を引数として代入することが出来る関数になる。
周波数は音の音階によって異なってくる。
代表的なドレミ音の周波数はこのような感じになってくる。
音階 | ド | レ | ミ | ファ | ソ | ラ | シ | ド |
周波数 | 261Hz | 293Hz | 329Hz | 349Hz | 391Hz | 440Hz | 493Hz | 523Hz |
今回は#音については除外させてもらった。
詳しい音階の周波数を知りたい人は自分で調べてほしい。
これを使って簡単なメロディを流すプログラムを作成した。
#define PIN_SPK (A0)
void setup() {
pinMode(A0,OUTPUT);
delay(1000);
}
void loop() {
tone(PIN_SPK,261,500); //ド
delay(500);
tone(PIN_SPK,293,500); //レ
delay(500);
tone(PIN_SPK,329,500); //ミ
delay(500);
tone(PIN_SPK,349,500); //ファ
delay(500);
tone(PIN_SPK,391,500); //ソ
delay(500);
tone(PIN_SPK,440,500); //ラ
delay(500);
tone(PIN_SPK,493,500); //シ
delay(500);
tone(PIN_SPK,523,500); //ド
delay(5000);
}
普通にドレミ音を出すプログラムである。
delay()関数を使っている理由は、これがないと音が重ねって出力されてしまうからである。
次はMMLを使った音の出力に挑戦してみたい。
あとはSTM32でこのtone()関数みたいなものを作成していこうと思っている。
コメント
コメントを投稿