Arduinoでの圧電スピーカーの使い方(tone関数)

Arduinoで簡単な音楽を流してみたいと思う。
圧電スピーカーならオルゴール音みたいな感じにできると思うので使っていく。


圧電スピーカーの回路を作る

回路を作ると書いているが、作るのはいたってシンプル。
Arduinoのアナログピンに圧電スピーカーをつなげるだけ。
今回は「A0」ピンからGNDにつなげた。


圧電スピーカーは秋月電子より購入。

ArduinoIDEのプログラム

Arduinoには「tone()関数」というものがある。
簡単に説明すると、出力するピンと周波数、出力時間を引数として代入することが出来る関数になる。
周波数は音の音階によって異なってくる。
代表的なドレミ音の周波数はこのような感じになってくる。

音階ファ
周波数261Hz293Hz329Hz349Hz391Hz440Hz493Hz523Hz

今回は#音については除外させてもらった。
詳しい音階の周波数を知りたい人は自分で調べてほしい。

これを使って簡単なメロディを流すプログラムを作成した。

#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()関数みたいなものを作成していこうと思っている。






コメント

このブログの人気の投稿

STM32CubeIDEに日本語化プラグインを導入する

STM32F401でLチカをする(LED点灯)

STM32F401-Nucleoでシリアル通信をやってみる