.. note::
Bonjour et bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts sur Facebook ! Plongez dans le monde des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
**Pourquoi nous 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 & Partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux nouvelles annonces de produits et aux avant-goûts exclusifs.
- **Réductions spéciales** : Bénéficiez de remises exclusives sur nos derniers produits.
- **Promotions festives et concours** : Participez à des tirages au sort et des promotions spéciales pendant les fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [|link_sf_facebook|] pour nous rejoindre dès aujourd'hui !
1.2.1 Buzzer Actif
=====================
Introduction
---------------
Dans cette leçon, nous allons apprendre à utiliser un buzzer actif pour émettre un son avec un transistor PNP.
Composants
-----------
.. image:: img/list_1.2.1.png
Principe
----------
**Buzzer**
Le buzzer est un dispositif sonore électronique avec une structure intégrée,
alimenté par un courant continu (DC). Il est couramment utilisé dans les ordinateurs,
imprimantes, photocopieuses, alarmes, jouets électroniques, dispositifs électroniques
automobiles, téléphones, minuteries, et autres produits ou dispositifs sonores. Les
buzzers peuvent être classés en deux catégories : les buzzers actifs et passifs
(voir image ci-dessous). Si vous orientez le buzzer avec les broches vers le haut,
celui avec un circuit imprimé vert est un buzzer passif, tandis que celui entouré de
ruban noir est un buzzer actif.
Différence entre un buzzer actif et un buzzer passif :
.. image:: img/image101.png
:width: 400
:align: center
La différence réside dans le fait qu’un buzzer actif possède une source d’oscillation
intégrée, ce qui lui permet de produire un son dès qu’il est alimenté en électricité.
En revanche, un buzzer passif n’a pas de source d’oscillation intégrée et nécessite des
signaux carrés avec une fréquence comprise entre 2 kHz et 5 kHz pour émettre un son. Le
buzzer actif est généralement plus coûteux que le passif en raison de ses circuits
oscillants intégrés.
Le schéma ci-dessous montre le symbole électrique d’un buzzer. Il comporte deux broches,
avec une polarité positive et négative. La broche marquée d’un + sur la surface représente
l’anode, et l’autre représente la cathode.
.. image:: img/image102.png
:width: 150
:align: center
Vous pouvez identifier les broches du buzzer : la broche la plus longue est l’anode et la
plus courte est la cathode. Faites attention à ne pas les inverser lors du câblage, sinon
le buzzer ne produira pas de son.
Schéma de montage
---------------------
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 la
sortie GPIO17 du Raspberry Pi est alimentée avec un niveau bas (0V), le transistor conduit
en raison de la saturation du courant et le buzzer émet un son. Mais lorsque le GPIO du
Raspberry Pi est alimenté avec un niveau haut, le transistor est coupé et le buzzer n’émet
plus de son.
.. image:: img/image332.png
Procédures expérimentales
-----------------------------
**Étape 1 :** Montez le circuit. (Faites attention aux polarités du buzzer : la broche
marquée d’un + est le pôle positif et l’autre est le pôle négatif.)
.. image:: img/image104.png
:width: 800
**Étape 2 :** Ouvrez le fichier de code.
.. raw:: html
.. code-block::
cd ~/davinci-kit-for-raspberry-pi/c/1.2.1/
**Étape 3 :** Compilez le code.
.. raw:: html
.. code-block::
gcc 1.2.1_ActiveBuzzer.c -lwiringPi
**Étape 4 :** Exécutez le fichier compilé.
.. raw:: html
.. code-block::
sudo ./a.out
Une fois le code exécuté, le buzzer émet un bip.
.. note::
Si cela ne fonctionne pas après l'exécution, ou s'il y a un message d'erreur : \"wiringPi.h: Aucun fichier ou répertoire de ce type\", veuillez vous référer à :ref:`faq_c_nowork`.
**Code**
.. code-block:: c
#include
#include
#define BeepPin 0
int main(void){
if(wiringPiSetup() == -1){ //si l'initialisation de wiring échoue, affiche un message à l'écran
printf("setup wiringPi failed !");
return 1;
}
pinMode(BeepPin, OUTPUT); //définit GPIO0 comme sortie
while(1){
//beep on
printf("Buzzer on\n");
digitalWrite(BeepPin, LOW);
delay(100);
printf("Buzzer off\n");
//beep off
digitalWrite(BeepPin, HIGH);
delay(100);
}
return 0;
}
**Explication du Code**
.. code-block:: c
digitalWrite(BeepPin, LOW);
Nous utilisons un buzzer actif dans cette expérience, ce qui signifie qu’il émettra
automatiquement un son lorsqu’il est connecté au courant continu. Ce programme configure
le port I/O à un niveau bas (0V), ce qui permet de contrôler le transistor et de faire
émettre un son au buzzer.
.. code-block:: c
digitalWrite(BeepPin, HIGH);
Configurer le port I/O à un niveau haut (3,3V), de sorte que le transistor ne soit pas
alimenté, et que le buzzer reste silencieux.