tone()
ピンに指定された周波数の方形波を生成します。
書式
void tone(uint32_t pin, uint32_t freq, uint32_t duration)
引数
pin :方形波出力ピン
freq :周波数(Hz)
duration :再生時間(ミリ秒)
説明
ピンに指定された周波数(50%のデューティ・サイクル)の方形波を生成します。
継続時間を引数durationにて指定することもできます。そうでなければ、方形波はnoTone()を呼び出すまで続きます。 ピンはピエゾブザーまたは他のスピーカーに接続して音を鳴らすことができます。
tone()はdurationにて再生時間を指定してた場合でも、直ちに即時復帰します。
再生時間が経過した時点で、生成を停止します。再生完了待ちを行いないことに注意して下さい。
本関数は2つの方法で方形波を生成します。
指定ピンがPWM出力が可能なピンである場合、PWMにて方形波を生成します。
指定したピンがPWM出力可能でない場合は、タイマー割り込みにてピンの出力をオン・オフすることで方形波を生成します。後者の方式の場合は割り込み処理の間、CPUを占有します。また、他の優先度の高い割り込みにより、タイミングがずれ、正確な周波数の音が再現できない(=濁った音)場合もあります。
本関数はタイマ資源を1つとその比較器(チャンネル)を1つ利用します。指定ピンがPWM出力が可能なピンである場合、そのPWM出力に対応するタイマと比較器(チャンネル)を利用します。指定したピンがPWM出力可能でない場合は、Timer4、比較器としてチャンネル4を利用します。
関連項目
このドキュメントはArduino ccが執筆し、たま吉が翻訳・一部加筆修正したものです。