Note

Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 sur Facebook ! Plongez dans l’univers du Raspberry Pi, de l’Arduino et de l’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 et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Bénéficiez d’un accès anticipé aux annonces de nouveaux produits et aux avant-premières.

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

  • Promotions festives et cadeaux : Participez à des concours et à des promotions festives.

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

3.2 Tonalité Personnalisée

Nous avons utilisé un buzzer actif dans le projet précédent, cette fois nous utiliserons un buzzer passif.

Comme le buzzer actif, le buzzer passif utilise également le phénomène d’induction électromagnétique pour fonctionner. La différence est qu’un buzzer passif n’a pas de source d’oscillation, il ne bipera donc pas si des signaux continus sont utilisés. Mais cela permet au buzzer passif d’ajuster sa propre fréquence d’oscillation et peut émettre différentes notes telles que « do, ré, mi, fa, sol, la, si ».

Faisons jouer une mélodie au buzzer passif !

Composants nécessaires

Pour ce projet, nous avons besoin des composants suivants.

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DANS CE KIT

LIEN

Kit de démarrage ESP32

320+

ESP32 Starter Kit

Vous pouvez également les acheter séparément aux liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

ESP32 carte

Acheter

Extension de caméra ESP32

ACHETER

Plaque d’essai

Acheter

Fils de connexion

Acheter

Résistance

Acheter

Buzzer

-

Transistor

Acheter

Broches disponibles

Voici une liste des broches disponibles sur la carte ESP32 pour ce projet.

Broches disponibles

IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

Schéma

../../_images/circuit_3.1_buzzer.png

Lorsque la sortie IO14 est haute, après la résistance de limitation de courant de 1K (pour protéger le transistor), le S8050 (transistor NPN) sera conducteur, de sorte que le buzzer sonnera.

Le rôle du S8050 (transistor NPN) est d’amplifier le courant et de rendre le buzzer plus fort. En fait, vous pouvez également connecter directement le buzzer à IO14, mais vous constaterez que le son du buzzer est plus faible.

Câblage

Deux types de buzzers sont inclus dans le kit. Nous devons utiliser le buzzer passif. Tournez-les, le PCB exposé est celui que nous voulons.

../../_images/buzzer.png

Le buzzer doit utiliser un transistor lorsqu’il fonctionne, ici nous utilisons le S8050 (transistor NPN).

../../_images/3.1_buzzer_bb.png

Code

Note

  • Ouvrez le fichier 3.2_custom_tone.ino sous le chemin esp32-starter-kit-main\c\codes\3.2_custom_tone.

  • Après avoir sélectionné la carte (ESP32 Dev Module) et le port approprié, cliquez sur le bouton Upload.

  • Toujours afficher « Unknown COMxx » ?

Après avoir téléchargé le code avec succès, vous entendrez le buzzer passif jouer une séquence de 7 notes musicales.

Comment ça marche ?

  1. Définir les constantes pour la broche du buzzer et la résolution PWM.

    const int buzzerPin = 14; // broche du buzzer
    const int resolution = 8;
    
  2. Définir un tableau contenant les fréquences des 7 notes musicales en Hz.

    int frequencies[] = {262, 294, 330, 349, 392, 440, 494};
    
  3. Créer une fonction pour jouer une fréquence donnée sur le buzzer pendant une durée spécifiée.

    void playFrequency(int frequency, int duration) {
        ledcWriteTone(buzzerPin, frequency); // Démarrer la tonalité
        delay(duration); // Attendre la durée spécifiée
        ledcWriteTone(buzzerPin, 0); // Arrêter le buzzer
    }
    
    • uint32_t ledcWriteTone(uint8_t pin, uint32_t freq); : Cette fonction est utilisée pour configurer la broche à 50 % de la tonalité PWM sur la fréquence sélectionnée.

      • pin sélectionner la broche LEDC.

      • freq sélectionner la fréquence du signal pwm.

    Cette fonction retournera frequency définie pour le canal. Si 0 est retourné, une erreur se produit et le canal LEDC n’a pas été configuré.

  4. Configurer le canal PWM et attacher la broche du buzzer dans la fonction setup().

    void setup() {
        ledcAttach(buzzerPin, 2000, resolution); // Configurer la broche PWM
    }
    
    • bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution); : Cette fonction est utilisée pour configurer la broche LEDC avec la fréquence et la résolution données. Le canal LEDC sera sélectionné automatiquement.

      • pin sélectionner la broche GPIO.

      • freq sélectionner la fréquence du pwm.

      • resolution_bits sélectionner la résolution pour le canal LEDC. La plage est de 1 à 14 bits (1-20 bits pour ESP32).

  5. Dans la fonction loop(), jouer la séquence de 7 notes avec une pause brève entre chaque note et une pause d’une seconde avant de répéter la séquence.

    void loop() {
        for (int i = 0; i < 7; i++) {
            playFrequency(frequencies[i], 300); // Jouer chaque note pendant 300ms
            delay(50); // Ajouter une pause brève entre les notes
        }
        delay(1000); // Attendre 1 seconde avant de rejouer la séquence
    }