Note

Bonjour, bienvenue dans la communauté SunFounder dédiée aux passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez plus profondément dans l’univers de Raspberry Pi, Arduino et ESP32 aux côtés d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques grâce à l’aide de notre communauté et de notre équipe.

  • Apprendre & Partager : Échangez des astuces et des tutoriels pour développer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits.

  • Réductions spéciales : Profitez de remises exclusives sur nos derniers produits.

  • Promotions et cadeaux festifs : Participez à des tirages au sort et à des offres promotionnelles spéciales pendant les fêtes.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

1.2.1 Buzzer actif

Introduction

Dans ce projet, nous allons apprendre à activer un buzzer actif à l’aide d’un transistor NPN.

Composants requis

Dans ce projet, nous aurons besoin des composants suivants :

../_images/1.2.1_active_buzzer_list.png

Schéma de câblage

Dans cette expérience, on utilise un buzzer actif, un transistor NPN et une résistance de 1 kΩ. La résistance est placée entre la broche GPIO et la base du transistor afin de limiter le courant de base et de protéger le transistor. Lorsque la broche GPIO17 du Raspberry Pi fournit un niveau haut (3,3 V), le transistor entre en saturation, ce qui permet au courant de traverser le buzzer, produisant ainsi un son. Lorsque le GPIO17 fournit un niveau bas (0 V), le transistor est coupé et le buzzer reste silencieux.

T-Board Name

physical

wiringPi

BCM

GPIO17

Pin 11

0

17

../_images/1.2.1_active_buzzer_schematic.png

Procédures expérimentales

Étape 1 : Construisez le circuit. (Le buzzer actif possède une étiquette blanche sur la surface et un fond noir.)

../_images/1.2.1_ActiveBuzzer_circuit.png

Étape 2 : Ouvrez le fichier de code. .. raw:: html

<run></run>

cd ~/davinci-kit-for-raspberry-pi/python-pi5

Étape 3 : Exécutez le script. .. raw:: html

<run></run>

sudo python3 1.2.1_ActiveBuzzer.py

Lorsque le code s’exécute, le buzzer émet un bip.

Avertissement

Si le message d’erreur RuntimeError: Cannot determine SOC peripheral base address apparaît, consultez Si gpiozero ne fonctionne pas..

Code

Note

Vous pouvez modifier/réinitialiser/copier/exécuter/arrêter le code ci-dessous. Mais avant cela, assurez-vous de vous rendre dans le répertoire source comme davinci-kit-for-raspberry-pi/python-pi5. Après modification du code, vous pouvez l’exécuter directement pour observer le résultat.

#!/usr/bin/env python3
from gpiozero import Buzzer
from time import sleep

# Initialiser un objet Buzzer sur le GPIO 17
buzzer = Buzzer(17)

try:
    while True:
        # Activer le buzzer
        print('Buzzer On')
        buzzer.on()
        sleep(0.1)  # Laisser le buzzer activé pendant 0,1 seconde

        # Désactiver le buzzer
        print('Buzzer Off')
        buzzer.off()
        sleep(0.1)  # Laisser le buzzer désactivé pendant 0,1 seconde

except KeyboardInterrupt:
    # Gérer une interruption clavier (Ctrl+C) pour arrêter proprement le script
    pass

Explication du code

  1. Ces lignes importent la classe Buzzer de la bibliothèque gpiozero ainsi que la fonction sleep du module time.

    #!/usr/bin/env python3
    from gpiozero import Buzzer
    from time import sleep
    
  2. Cette ligne crée un objet Buzzer connecté au GPIO 17 du Raspberry Pi.

    # Initialiser un objet Buzzer sur le GPIO 17
    buzzer = Buzzer(17)
    
  3. Dans une boucle infinie (while True), le buzzer est activé et désactivé toutes les 0,1 secondes. Les instructions print fournissent un retour d’information dans la console pour chaque action.

    try:
        while True:
            # Activer le buzzer
            print('Buzzer On')
            buzzer.on()
            sleep(0.1)  # Laisser le buzzer activé pendant 0,1 seconde
    
            # Désactiver le buzzer
            print('Buzzer Off')
            buzzer.off()
            sleep(0.1)  # Laisser le buzzer désactivé pendant 0,1 seconde
    
  4. Ce segment assure que le programme peut être interrompu proprement à l’aide d’une interruption clavier (Ctrl+C) sans générer d’erreurs.

    except KeyboardInterrupt:
    # Gérer une interruption clavier (Ctrl+C) pour arrêter proprement le script
    pass