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 [Ici] 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
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 :
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.
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.
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.)
Étape 2 : Ouvrez le fichier de code.
cd ~/davinci-kit-for-raspberry-pi/c/1.2.1/
Étape 3 : Compilez le code.
gcc 1.2.1_ActiveBuzzer.c -lwiringPi
Étape 4 : Exécutez le fichier compilé.
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 à Le code C ne fonctionne pas ?.
Code
#include <wiringPi.h>
#include <stdio.h>
#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
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.
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.