• Arduino
  • Raspberry Pi
  • Raspberry Pi Pico
  • Micro:Bit

Contrôlé par des signaux PWM de différentes fréquences, le buzzer piézo passif peut être utilisé pour générer différents sons.

Affectation des broches

Exemple de code Arduino

Affectation des broches Arduino

Arduino Capteur
Pin 8 Signal
- +V
GND GND

Il s'agit d'un exemple de programme qui génère un signal d'alarme sur le buzzer au moyen d'une tension rectangulaire.

int buzzer = 8 ; // Déclaration de la broche de sortie vers le buzzer
 
void setup ()
{
  pinMode (buzzer, OUTPUT) ;// Initialisation comme broche de sortie
}
 
 
void loop ()
{
  unsigned char i;
  while (1)
  {
    // Dans ce programme, le buzzer est alimenté en alternance avec deux fréquences différentes.
    // Le signal a la forme d'une tension rectangulaire.
    // Le buzzer émet un son qui correspond alternativement à chaque fréquance.
     
    //Fréquence 1
    for (i = 0; i <80; i++) 
    {
      digitalWrite (buzzer, HIGH) ;
      delay (1) ;
      digitalWrite (buzzer, LOW) ;
      delay (1) ;
    }
    //Fréquence 2
    for (i = 0; i <100; i++) 
    {
      digitalWrite (buzzer, HIGH) ;
      delay (2) ;
      digitalWrite (buzzer, LOW) ;
      delay (2) ;
    }
  }
}

Télécharger l'exemple de programme

KY006-Arduino.zip

Contrôlé par des signaux PWM de différentes fréquences, le buzzer piézo passif peut être utilisé pour générer différents sons.

Affectation des broches

Exemple de code Raspberry Pi

Affectation des broches Raspberry Pi

Raspberry Pi Capteur
GPIO 24 [Pin 18] Signal
3,3V [Pin 1] * +V *
GND [Pin 6] GND

*Pour éviter une chute de la tension d'alimentation, le capteur sur le Raspberry Pi doit également être connecté à +3,3V car l'alimentation via la broche de signal peut ne pas être suffisante.

Exemple de programmation dans le langage de programmation Python.

Le programme d'exemple utilise le logiciel PWM pour créer une tension carrée avec une fréquence définissable sur la broche de sortie.

En l'allumant et en l'éteignant, un son est généré au niveau du buzzer, qui correspond approximativement à la fréquence de la tension rectangulaire.

from gpiozero import PWMOutputDevice

# On déclare ici la broche de sortie à laquelle le buzzer est connecté.
buzzer = PWMOutputDevice(24, frequency=500, initial_value=0.5)

# Le programme attend que l'utilisateur entre une nouvelle fréquence PWM.
# En attendant, le buzzer fonctionne à la fréquence précédemment introduite (valeur de départ 500Hz).
try:
    while True:
        print("----------------------------------------")
        aktuelle_frequenz = buzzer.frequency
        print(f"Fréquence actuelle : {aktuelle_frequenz:.0f}")
        neue_frequenz = int(input("Veuillez saisir une nouvelle fréquence (50-5000) : "))
        buzzer.frequency = neue_frequenz
         
# Nettoyage après la fin du programme
except KeyboardInterrupt:
    buzzer.close()
    print("Programme terminé")

Exemple de téléchargement de programme

KY006-RPi.zip

Pour commencer avec la commande :

sudo python3 KY006-RPi.py

Contrôlé par des signaux PWM de différentes fréquences, le buzzer piézo passif peut être utilisé pour générer différents sons.

Affectation des broches

Exemple de code Micro:Bit

Affectation des broches Micro:Bit :

Micro:Bit Sensor
Pin 0 Signal
3V +V
GND GND

Ceci est un exemple MakeCode pour Micro:Bit qui fait essentiellement la même chose que les exemples des deux autres variantes. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.

Comme ce capteur est contrôlé par PWM, il doit être connecté à la broche 0 du Micro:bit puisque c'est là que se trouve la broche PWM du Micro:bit.

Veuillez noter que le capteur ne doit être connecté qu'à la broche 0 du Micro:Bit.

Téléchargement d'un exemple de programme

microbit-KY-006.zip

Contrôlé par des signaux PWM de différentes fréquences, le buzzer piézo passif peut être utilisé pour générer différents sons.

Affectation des broches

Exemple de code Raspberry Pi Pico

Affectation des broches Raspberry Pi Pico

Raspberry Pi Pico Capteur
GPIO15 Signal
- +V
GND GND

Voici un exemple de programme qui joue une chanson au buzzer.

# Charger les bibliothèques
from machine import Pin, PWM
from utime import sleep

# Initialisation de GPIO15 comme broche PWM
buzzer = PWM(Pin(15))

# Définir les différents pitches
tones = {
"B0": 31,
"C1": 33,
"CS1": 35,
"D1": 37,
"DS1": 39,
"E1": 41,
"F1": 44,
"FS1": 46,
"G1": 49,
"GS1": 52,
"A1": 55,
"AS1": 58,
"B1": 62,
"C2": 65,
"CS2": 69,
"D2": 73,
"DS2": 78,
"E2": 82,
"F2": 87,
"FS2": 93,
"G2": 98,
"GS2": 104,
"A2": 110,
"AS2": 117,
"B2": 123,
"C3": 131,
"CS3": 139,
"D3": 147,
"DS3": 156,
"E3": 165,
"F3": 175,
"FS3": 185,
"G3": 196,
"GS3": 208,
"A3": 220,
"AS3": 233,
"B3": 247,
"C4": 262,
"CS4": 277,
"D4": 294,
"DS4": 311,
"E4": 330,
"F4": 349,
"FS4": 370,
"G4": 392,
"GS4": 415,
"A4": 440,
"AS4": 466,
"B4": 494,
"C5": 523,
"CS5": 554,
"D5": 587,
"DS5": 622,
"E5": 659,
"F5": 698,
"FS5": 740,
"G5": 784,
"GS5": 831,
"A5": 880,
"AS5": 932,
"B5": 988,
"C6": 1047,
"CS6": 1109,
"D6": 1175,
"DS6": 1245,
"E6": 1319,
"F6": 1397,
"FS6": 1480,
"G6": 1568,
"GS6": 1661,
"A6": 1760,
"AS6": 1865,
"B6": 1976,
"C7": 2093,
"CS7": 2217,
"D7": 2349,
"DS7": 2489,
"E7": 2637,
"F7": 2794,
"FS7": 2960,
"G7": 3136,
"GS7": 3322,
"A7": 3520,
"AS7": 3729,
"B7": 3951,
"C8": 4186,
"CS8": 4435,
"D8": 4699,
"DS8": 4978
}

# Définir la chanson à jouer dans une liste
song = ["E5","G5","A5","P","E5","G5","B5","A5","P","E5","G5","A5","P","G5","E5"]

# Fonction : Réglage de la fréquence à émettre
def playtone(frequency):
    buzzer.duty_u16(1000)
    buzzer.freq(frequency)

# Fonction : Désactiver le buzzer
def bequiet():
    buzzer.duty_u16(0)

# Fonction : Sortie de la chanson à jouer
def playsong(mysong):
    for i in range(len(mysong)):
        if (mysong[i] == "P"):
            bequiet()
        else:
            playtone(tones[mysong[i]])
        sleep(0.3)
    bequiet()

# Sortie sans fin de la chanson définie
playsong(song)

Exemple de téléchargement de programme

KY006-Pico.zip