.. note::
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l'univers des Raspberry Pi, Arduino et ESP32 avec d'autres passionnés.
**Pourquoi rejoindre ?**
- **Support d'experts** : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
- **Réductions spéciales** : Profitez de réductions exclusives sur nos produits les plus récents.
- **Promotions festives et cadeaux** : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [|link_sf_facebook|] et rejoignez-nous aujourd'hui !
.. _1.2.1_py:
1.2.1 Buzzer Actif
=======================
Introduction
---------------
Dans ce projet, nous allons apprendre à faire biper un buzzer actif avec
un transistor PNP.
Composants Nécessaires
--------------------------------
Pour ce projet, nous avons besoin des composants suivants.
.. image:: ../img/list_1.2.1.png
Il est certainement pratique d'acheter un kit complet, voici le lien :
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nom
- ARTICLES DANS CE KIT
- LIEN
* - Kit Raphael
- 337
- |link_Raphael_kit|
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUCTION AUX COMPOSANTS
- LIEN D'ACHAT
* - :ref:`cpn_gpio_extension_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_buzzer`
- \-
* - :ref:`cpn_transistor`
- |link_transistor_buy|
Schéma de Principe
----------------------
Dans cette expérience, un buzzer actif, un transistor PNP et une résistance de 1k sont utilisés
entre la base du transistor et le GPIO pour protéger le transistor. Lorsque le GPIO17 du
Raspberry Pi est programmé pour fournir un niveau bas (0V), le transistor se met à conduire
en raison de la saturation du courant et le buzzer émet des sons. Mais lorsqu'un niveau haut
est fourni au GPIO du Raspberry Pi, le transistor se coupe et le buzzer ne produit aucun son.
.. image:: ../img/image332.png
Procédures Expérimentales
-------------------------------
**Étape 1 :** Construisez le circuit. (Le buzzer actif a un autocollant blanc sur la surface et un dos noir.)
.. image:: ../img/image104.png
**Étape 2 :** Ouvrez le fichier de code.
.. raw:: html
.. code-block::
cd ~/raphael-kit/python
**Étape 3 :** Exécutez.
.. raw:: html
.. code-block::
sudo python3 1.2.1_ActiveBuzzer.py
Le code s'exécute, le buzzer émet des bips.
**Code**
.. note::
Vous pouvez **Modifier/Réinitialiser/Copier/Exécuter/Arrêter** le code ci-dessous. Mais avant cela, vous devez vous rendre dans le chemin du code source comme ``raphael-kit/python``. Après avoir modifié le code, vous pouvez l'exécuter directement pour voir l'effet.
.. raw:: html
.. code-block:: python
import RPi.GPIO as GPIO
import time
# Set GPIO17 as buzzer pin
BeepPin = 17
def setup():
GPIO.setmode(GPIO.BCM)
GPIO.setup(BeepPin, GPIO.OUT, initial=GPIO.HIGH)
def main():
while True:
# Buzzer on (Beep)
print ('Buzzer On')
GPIO.output(BeepPin, GPIO.LOW)
time.sleep(0.1)
# Buzzer off
print ('Buzzer Off')
GPIO.output(BeepPin, GPIO.HIGH)
time.sleep(0.1)
def destroy():
# Turn off buzzer
GPIO.output(BeepPin, GPIO.HIGH)
# Release resource
GPIO.cleanup()
# If run this script directly, do:
if __name__ == '__main__':
setup()
try:
main()
# When 'Ctrl+C' is pressed, the program
# destroy() will be executed.
except KeyboardInterrupt:
destroy()
**Explication du Code**
.. code-block:: python
GPIO.output(BeepPin, GPIO.LOW)
Définir la broche du buzzer au niveau bas pour faire biper le buzzer.
.. code-block:: python
time.sleep(0.1)
Attendre 0,1 seconde. Modifier la fréquence de commutation en
changeant ce paramètre.
.. note::
Ce n'est pas la fréquence sonore. Le buzzer actif ne peut pas changer de fréquence sonore.
.. code-block:: python
GPIO.output(BeepPin, GPIO.HIGH)
Arrêter le buzzer.
Image du Phénomène
---------------------
.. image:: ../img/image105.jpeg