.. 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 [|link_sf_facebook|] et rejoignez-nous dès aujourd'hui ! .. _1.2.1_py_pi5: 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 : .. image:: ../python_pi5/img/1.2.1_active_buzzer_list.png .. raw:: html
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 ============ ======== ======== === .. image:: ../python_pi5/img/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.) .. image:: ../python_pi5/img/1.2.1_ActiveBuzzer_circuit.png **Étape 2 :** Ouvrez le fichier de code. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/python-pi5 **Étape 3 :** Exécutez le script. .. raw:: html .. code-block:: sudo python3 1.2.1_ActiveBuzzer.py Lorsque le code s'exécute, le buzzer émet un bip. .. warning:: Si le message d'erreur ``RuntimeError: Cannot determine SOC peripheral base address`` apparaît, consultez :ref:`faq_soc`. **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. .. raw:: html .. code-block:: python #!/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``. .. code-block:: python #!/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. .. code-block:: python # 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. .. code-block:: python 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. .. code-block:: python except KeyboardInterrupt: # Gérer une interruption clavier (Ctrl+C) pour arrêter proprement le script pass