5.4.7 Project 4.1 Speel ‘Happy Birthday’

afbeelding43

1. Beschrijving

Op de car expansion board bevindt zich een audioversterkerelement, dat fungeert als externe versterking om muziek af te spelen.

In dit project gaan we een muziekstuk afspelen met behulp hiervan.

2. Componentkennis

Passieve zoemer: De audioversterker (zoals de passieve zoemer) heeft geen interne oscillatie. Bij het aansturen moeten we vierkante golven met verschillende frequenties naar de positieve pool van het component voeren en de negatieve pool aarden om de versterker tonen met verschillende frequenties te laten klinken.

3. Controlepin

Passieve zoemer

25

\

4. Testcode

#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. Testresultaat

De passieve zoemer zal ‘Happy Birthday’ afspelen.