Un buzzer est un élément électromécanique ou piézoélectrique qui produit un son caractéristique quand on lui applique une tension : le bip. Il est constitué d’une lame réagissant à l’effet piézoélectrique.
Celui-ci peut être contrôler par la carte Raspberry avec un signal carré qui représente la fréquence de la note.
Voici le schéma électronique pour relier le buzzer à la carte Raspberry Pi :
Pour la programmation du buzzer, on vous propose deux programmes, un pour obtenir un bip et l’autre pour avoir une mélodie provenant du buzzer.
Voici le programme pour obtenir plusieurs bips depuis le buzzer :
import RPi.GPIO as GPIO
import time
# Configuration de la broche du buzzer
buzzer_pin = 17 # Remplacez par le numéro de la broche GPIO à laquelle le buzzer est connecté
# Configuration initiale de la GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(buzzer_pin, GPIO.OUT)
try:
while True:
print("Bip!")
GPIO.output(buzzer_pin, GPIO.HIGH) # Allumer le buzzer
time.sleep(0.1) # Maintenir le buzzer allumé pendant 0.1 seconde
GPIO.output(buzzer_pin, GPIO.LOW) # Éteindre le buzzer
time.sleep(0.5) # Attendre 0.5 seconde avant le prochain bip
except KeyboardInterrupt:
pass
finally:
# Nettoyer les ressources GPIO
GPIO.cleanup()
Voici le programme pour obtenir une mélodie venant du buzzer :
import RPi.GPIO as GPIO
import time
# Configuration de la broche du buzzer
buzzer_pin = 17 # Remplacez par le numéro de la broche GPIO à laquelle le buzzer est connecté
# Configuration initiale de la GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(buzzer_pin, GPIO.OUT)
# Dictionnaire des fréquences des notes
notes = {
'C': 261.63,
'D': 293.66,
'E': 329.63,
'F': 349.23,
'G': 392.00,
'A': 440.00,
'B': 493.88,
'C_high': 523.25,
}
# Fonction pour jouer une note
def jouer_note(note, duree):
if note == ' ':
time.sleep(duree)
else:
GPIO.output(buzzer_pin, GPIO.HIGH)
time.sleep(duree)
GPIO.output(buzzer_pin, GPIO.LOW)
# Fonction pour jouer une mélodie
def jouer_melodie(melodie):
for note, duree in melodie:
jouer_note(note, duree)
try:
# Jouer la mélodie
melodie_exemple = [
('E', 0.5),
('D', 0.5),
('C', 0.5),
('D', 0.5),
('E', 0.5),
('E', 0.5),
('E', 0.5),
('D', 0.5),
('D', 0.5),
('D', 0.5),
('E', 0.5),
('E', 0.5),
('E', 0.5),
('E', 0.5),
('D', 0.5),
('C', 0.5),
('D', 0.5),
('E', 0.5),
('E', 0.5),
('E', 0.5),
('E', 0.5),
('D', 0.5),
('D', 0.5),
('E', 0.5),
('D', 0.5),
('C', 0.5),
]
jouer_melodie(melodie_exemple)
except KeyboardInterrupt:
pass
finally:
# Nettoyer les ressources GPIO
GPIO.cleanup()