tone()
名称
tone()
説明
指定した周波数の方形波(矩形波)をデューティー比50%で、指定したピンに生成する。方形波を生成する期間を指定することもできる。期間を指定しなければ、noTone()を呼び出すまで生成し続ける。ピンにピエゾブザーや他のスピーカーに接続して、音を鳴らすことができる。
同時に生成できるのは一つの方形波だけである。別のピンですでに方形波が生成されているときは、tone()を呼び出しても何も起こらない。方形波を生成しているピンを指定した時は、周波数を設定(変更)する。
tone()関数は(Mega以外のボードの)3番ピンと11番ピンのPWM出力に影響を与える。
31Hzより低いトーンを生成することはできない。技術的な詳細は、Brett Hagman’s notesを参照のこと。
書式
指定したピンに、期限なしあるいは指定した時間だけトーンを生成するには、以下の関数を使う。
tone(pin, frequency)tone(pin, frequency, duration)
C言語シグネチャ(avr)
void tone(uint8_t pin, unsigned int frequency);
void tone(uint8_t pin, unsigned int frequency, unsigned long duration);
引数
この関数は以下の引数を受け付ける。
| pin | 方形波を生成するピンの番号。 |
| frequency | 方形波の周波数(ヘルツ)。unsigned int型。データ型: unsigned int。 |
| duration | 方形波を生成する期間(ミリ秒)。unsigned long型。この引数はオプションである。データ型: unsigned long。 |
戻り値
なし
コード例
D0ピンに1秒毎に方形波を生成する。
|
|
注意
- 複数のピンで異なる周波数の方形波を生成したいときは、次のピンを指定してtone()を呼び出す前に、noTone()関数を呼び出す必要がある。
- この関数はノンブロッキングである。durationパラメータを指定したときに、tone()が終了していなくても、スケッチの実行は続行される。
参照
オリジナルのページ
https://docs.arduino.cc/language-reference/en/functions/advanced-io/tone/
実装の解析
最終更新日
July 12, 2026