説明
指定したピンに指定した周波数(および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によって増幅されおなかのスピーカで発生させることができます。
<<クムクムロボットロボットを使って音を鳴らしてみる>>