5.4.7 プロジェクト 4.1 ハッピーバースデーを演奏する

画像43

1. 説明

車載拡張ボードには音声パワーアンプ素子があり、これは音楽を再生するための外部増幅装置として機能します。

このプロジェクトでは、それを使って楽曲を演奏します。

2. コンポーネントの知識

Passive Buzzer: 音声パワーアンプ(passive buzzerのような)は内部発振を持ちません。制御する際は、部品の正極に異なる周波数の方形波を入力し、負極を接地してアンプを異なる周波数で鳴らす必要があります。

3. 制御ピン

Passive Buzzer

25

\

4. テストコード

#include <BuzzerESP32.h>

BuzzerESP32 buzzer(25); // Initialize buzzer on GPIO25

void setup()
{
  buzzer.setTimbre(30); // Set timbre (sound quality)
  birthday();          // Play birthday melody
}

void loop()
{
  // Empty loop as melody plays only once at startup
}

void birthday()
{
  // Play birthday melody - parameters are (frequency, duration)
  buzzer.playTone(294, 250);  // D4
  buzzer.playTone(440, 250);  // A4
  buzzer.playTone(392, 250);  // G4
  buzzer.playTone(532, 250);  // C5 (slightly sharp)
  buzzer.playTone(494, 250);  // B4
  buzzer.playTone(392, 250);  // G4
  buzzer.playTone(440, 250);  // A4
  buzzer.playTone(392, 250);  // G4
  buzzer.playTone(587, 250);  // D5
  buzzer.playTone(532, 250);  // C5 (slightly sharp)
  buzzer.playTone(392, 250);  // G4
  buzzer.playTone(784, 250);  // G5
  buzzer.playTone(659, 250);  // E5
  buzzer.playTone(532, 250);  // C5 (slightly sharp)
  buzzer.playTone(494, 250);  // B4
  buzzer.playTone(440, 250);  // A4
  buzzer.playTone(698, 250);  // F5
  buzzer.playTone(659, 250);  // E5
  buzzer.playTone(532, 250);  // C5 (slightly sharp)
  buzzer.playTone(587, 250);  // D5
  buzzer.playTone(532, 500);  // C5 (slightly sharp) - longer duration
  buzzer.playTone(0, 0);      // Turn off buzzer
}

5. テスト結果

passive buzzerは「Happy Birthday」の曲を演奏します。