
呼び鈴やアラームがどうやって音を出すのか、気になったことはありませんか?Arduinoが小さなブザーを短い間隔で鳴らし、音を出す、止める、を繰り返します。電気で音が生まれる仕組みを学び、メロディーを演奏するプロジェクトへの第一歩を踏み出せます。
動画
回路図

ソースコード
Arduino (C++)
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Using a Buzzer
4// ─────────────────────────────────────────
5// The buzzer beeps at 400 Hz for 0.3 s, stays silent for 0.3 s and keeps
6// repeating. Shows how to use tone() and noTone().
7//
8// Pins:
9// D7 -> Buzzer + (other leg to GND)
10
11int frequency = 400; // Tone frequency (Hz)
12int buzzerPin = 7; // Buzzer output pin
13
14void setup() {
15 // tone() sets the pin as an output itself
16}
17
18void loop() {
19 tone(buzzerPin, frequency); // Start the 400 Hz tone
20 delay(300);
21 noTone(buzzerPin); // Stop the sound
22 delay(300);
23}
24
よくある質問
アクティブブザーとパッシブブザーは何が違いますか?▾
アクティブブザーは発振器を内蔵しており、電圧をかけるだけで一定の音が出ます。パッシブブザーは外部から周波数信号を与える必要があり、`tone()`でさまざまな音程を鳴らせます。メロディーを演奏するプロジェクトにはパッシブブザーが必要です。
tone()はどのように使いますか?▾
tone(pin, frequency)は指定した周波数で音を鳴らし、noTone(pin)は音を止めます。tone(pin, frequency, duration)の形式で鳴らす時間も指定できます。例えば、440 Hzはラの音です。
音がとても小さいです。どうすれば大きくできますか?▾
Arduinoのピンからブザーに流せる電流には限りがあります。音を大きくするには、NPNトランジスタ(例:BC547)を介してブザーを駆動するか、ブザーの穴をふさがない配置にしてください。
`tone()`を使うと、ほかのピンに影響がありますか?▾
Unoでは`tone()`がTimer2を使うため、音を鳴らしている間は3番と11番のピンでPWM(analogWrite)が正しく動作しません。同時にPWMを使う必要がある場合は、別のピンを選んでください。
