Fiche de référence du module buzzer : différence entre buzzer actif et passif, brochage et pilotage depuis une XIAO ESP32S3.
Module buzzer
Fiche de référence du module buzzer : différence entre buzzer actif et passif, brochage et pilotage depuis une XIAO ESP32S3.
Un buzzer transforme un signal électrique en son. Il en existe deux familles, d’aspect presque identique, qui ne se pilotent pas de la même façon :
| Buzzer actif | Buzzer passif | |
|---|---|---|
| Contenu | Un oscillateur intégré | Un simple petit haut-parleur |
| Ce qu’il faut lui envoyer | Un niveau HIGH |
Un signal carré à la fréquence voulue |
| Son | Toujours la même note | La note que l’on veut |
| Fonction Arduino | digitalWrite() |
tone() |
| Avec le mauvais pilotage | tone() donne un son grésillant |
HIGH seul ne produit qu’un clic |
Un buzzer passif piloté par un signal carré est une application directe du PWM : la fréquence du signal devient la hauteur de la note (voir le concept ADC & PWM).
C’est le module buzzer de la mallette de l’atelier Microcontrôleurs. Il n’est pas présent sur la carte de la console.
| Paramètre | Valeur |
|---|---|
| Alimentation | 3,3 V à 5 V ; 3,3 V avec un ESP32 (le son est un peu moins fort) |
| Fréquences utiles (passif) | Quelques centaines de Hz à quelques kHz, avec un maximum de volume vers 2 à 4 kHz |
| Courant | Quelques mA à une trentaine de mA selon le modèle |
| Broche du module | Rôle |
|---|---|
GND ou - |
Masse |
VCC ou + |
Alimentation, sur les modules qui en ont besoin (vers le 3V3) |
S, I/O ou SIG |
Signal de commande |
Certains modules n’ont que deux broches (signal et masse). Les marquages varient d’un fabricant à l’autre : vérifier la sérigraphie avant de câbler.
| Module | XIAO ESP32S3 |
|---|---|
S |
D3 (GPIO4) |
VCC |
3V3 |
GND |
GND |
// Buzzer passif : une note de 440 Hz pendant 200 ms, sans bloquer le programme
tone(D3, 440, 200);
// Buzzer actif : un bip tant que la broche est à HIGH
digitalWrite(D3, HIGH);
tone(), puis met la broche à HIGH, révèle en quelques secondes s’il est actif ou passif.tone() et on ne l’attend pas : un delay() pour laisser jouer le son figerait tout le programme.