5.4.7 Project 4.1 Speel ‘Happy Birthday’

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.