tone

説明

指定したピンに指定した周波数(および50%のデューティサイクル)の方形波を生成します。

発生時間を第三引数で指定することもできます。
発生時間を指定しない場合、音は noTone() が呼び出されるまで鳴り続きます。
音は、ピンを圧電ブザーに直接接続したり、オーディオアンプを通じてスピーカーから鳴らすことができます。

一度に生成できるトーンは1つだけの単音です。
tone()は、内部タイマーを使用している影響で、Arduino MEGA以外の3番ピンおよび11番ピンのPWM出力に影響します。

なお31Hz未満のトーンを生成することはできません。
技術的な詳細については、BrettHagmanのメモ を参照してください。

書き方 tone(pin番号,周波数(Hz))  / tone(pin番号,周波数(Hz),長さ)
戻り値 なし
引数 pin番号…I/OのArduinoピン番号
周波数(Hz)… unsigned int (0~65535)まで指定できますが31(Hz)未満は再生できません
長さ(ミリ秒)…unsigbned long(0~4294967295)

プログラム例

//7番ピンで440Hzを1秒間鳴らします
int Pin = 7;    // pushbutton connected to digital pin 7

void setup() {
}

void loop() {
  tone(Pin,440,1000);
  delay(2000);
}

実験

上記のプログラムをArduinoIDEで入力し鳴らしてみる場合、圧電式ブザーまたはオーディオアンプで増幅回路を通したスピーカが必要です。クムクムロボットで使ってみる

弊社の二足歩行プログラミングロボットクムクムロボットでは、予めオーディオアンプLM386によって増幅されおなかのスピーカで発生させることができます。
<<クムクムロボットロボットを使って音を鳴らしてみる>>