5.4.7 Progetto 4.1 Suonare ‘Happy Birthday’

1. Descrizione
Sulla scheda di espansione per auto è presente un elemento amplificatore audio, che funge da dispositivo di amplificazione esterno per riprodurre musica.
In questo progetto useremo tale elemento per riprodurre un brano musicale.
2. Informazioni sul componente
Cicalino passivo: L’amplificatore audio (come il cicalino passivo) non ha oscillazione interna. Per controllarlo, è necessario fornire onde quadre di diverse frequenze al polo positivo del componente e collegare a massa il polo negativo per far emettere all’amplificatore suoni di diverse frequenze.
3. Pin di controllo
Cicalino passivo |
25 |
|---|---|
\ |
4. Codice di test
#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. Risultato del test
Il cicalino passivo suonerà ‘Happy Birthday’.