文書の過去の版を表示しています。
音を鳴らす
このページではArduinoで音を鳴らす最もシンプルな方法を紹介します。楽器を作ってみたい、という場合は下記ページを参考にしてみてください。
最初の一歩
Arduinoにスピーカーをつないで、音を鳴らしてみましょう。スピーカーに流す電流のオンオフを高速に繰り返すことで、永久磁石と電磁石によって高速なオンオフがスピーカーコーンの振動になります。詳しくは下記のページを読んでみてください。
ArduinoのDigital Outピンをスピーカの片方につなぎ、スピーカーのもう一方をArduino のGNDに接続します。今回はDigital OutピンをD6ピンとします。下図を参照してください。
では実際にスピーカーのコイルにON/OFFの電流を高速に流してみます。
void setup() { pinMode(6, OUTPUT); } void loop() { digitalWrite(6, HIGH); delay(20); digitalWrite(6, LOW); delay(20); }
上のプログラムを参考に、440Hzの音を鳴らしてみましょう。
tone関数を使う
delay()のパラメータを変更することで任意の周波数の波形を出力することができました。ただし、決められた周波数を鳴らすために上記のようなコードを使っていると、たくさんの音を鳴らす場合少し面倒になります。そのため、Arduinoにはtone()関数が用意されています。
tone(pin, frequency)
tone(pin, frequency, duration)
1つ目の引数にはスピーカーにつながっている制御ピン番号を。2つ目の引数には鳴らしたい周波数を指定します。もし鳴らす音の長さ(音長)を指定したい場合、3番目の引数にmilli second単位で値を指定します。
音階で音を鳴らしてみる
ON/OFFの感覚を狭くすることで、高い音が、広くすることで低い音がなることが確認できました。ではこれをもう少しわかりやすく、音程にて再現できるようにしてみましょう。