Tutoriel ESP32 14/55 - Lecture d'une note de musique personnalisée avec le kit de apprentissage IoT SunFounder ESP32

Tutoriel ESP32 14/55 - Lecture d'une note de musique personnalisée avec le kit de apprentissage IoT SunFounder ESP32

Dans ce tutoriel, nous apprendrons comment utiliser le microcontrôleur SunFounder ESP32 pour jouer des notes musicales en utilisant un buzzer passif et un transistor. Le projet vise à démontrer comment générer des sons à des fréquences spécifiques en contrôlant le buzzer via les broches GPIO de l'ESP32.

Nous connecterons un buzzer passif à l'ESP32, ce qui nous permettra de produire différentes notes musicales en fonction de la fréquence que nous fournissons. Ce montage comprend l'utilisation d'un transistor pour activer et désactiver le buzzer à grande vitesse, créant des ondes sonores que nous pouvons entendre. Pour plus de précisions sur le projet, assurez-vous de consulter la vidéo (dans la vidéo à 00:30).

ESP32-13-schema-de-buzzer

Matériel expliqué

Les principaux composants utilisés dans ce projet incluent le microcontrôleur SunFounder ESP32, un buzzer passif et un transistor NPN (2N8050). L'ESP32 est une carte de développement puissante avec des capacités Wi-Fi et Bluetooth intégrées, ce qui la rend polyvalente pour diverses applications IoT. Dans ce cas, elle générera des signaux pour contrôler le buzzer.

Le buzzer passif fonctionne en générant du son lorsqu'une tension alternative lui est appliquée. Contrairement aux buzzers actifs, qui ont un oscillateur intégré, les buzzers passifs nécessitent un signal externe pour produire du son. Le transistor agit comme un interrupteur, permettant à l'ESP32 de contrôler le buzzer sans l'alimenter directement, garantissant que l'intensité maximale du microcontrôleur n'est pas dépassée.

S87050_transistor

Détails de la fiche technique

Fabricant SunFounder
Numéro de pièce Buzzer passif
Tension de fonctionnement 3,3 V - 5 V
Fréquence de résonance 2 kHz - 4 kHz
Consommation actuelle ≤ 30 mA
Niveau de pression acoustique ≥ 70 dB
Colis Trou à travers
Remarques / variantes None

  • Assurez-vous de la polarité correcte lors de la connexion du buzzer.
  • Utilisez une résistance limitant le courant pour la base du transistor.
  • Connectez le buzzer à une source d'alimentation compatible avec sa tension nominale.
  • Attention à ne pas dépasser la valeur maximale de courant du transistor.
  • Gardez le câblage bien en ordre pour éviter les courts-circuits.
  • Testez le circuit avant de télécharger le code pour éviter d'endommager les composants.
  • Utilisez une plaque à pain pour des connexions de composants faciles.
  • Assurez-vous de dénaviguer les entrées si vous utilisez des boutons.
  • Envisagez d'ajouter un dissipateur thermique pour le transistor s'il est utilisé à des courants élevés.

Instructions de câblage

ESP32-13-buzzer-wriing

Pour câbler les composants, commencez par connecter la borne positive du buzzer passif à la broche 3,3V de l'ESP32. La borne négative du buzzer doit être connectée au collecteur du transistor NPN. La broche d'émetteur du transistor doit être câblée à la masse (GND) de l'ESP32.

Ensuite, connectez une résistance de 1 kΩ de la base du transistor au pin GPIO 14 sur l'ESP32. Cette résistance limite le courant circulant vers la base du transistor. Enfin, assurez-vous que toutes les connexions à la terre sont reliées ensemble pour fournir une référence commune pour le circuit.

Exemples de code et guide étape par étape

const int buzzerPin = 14; // the buzzer pin

void setup()
{
  pinMode(buzzerPin, OUTPUT); // Set as output
}

Dans le code, nous définissons une variable constante.buzzerPinqui est réglé sur 14, indiquant la broche GPIO connectée à la base du transistor. Dans lesetup()fonction, nous définissons cette broche comme une SORTIE, permettant à l'ESP32 de contrôler le buzzer.

void loop()
{
  for (int i = 0; i < 50; i++) // Loop 50 times and play a short tone each time
  {
    digitalWrite(buzzerPin, HIGH); // Set to HIGH to make the buzzer sound
    delay(3); // Wait for 3 milliseconds
    digitalWrite(buzzerPin, LOW); // LOW to turn off the buzzer
    delay(3); // 
  }
  delay(1000); // Wait for 1s before starting the next loop
}

Leloop()La fonction contient une boucle for qui s'exécute 50 fois. À chaque itération, le buzzer est activé et désactivé rapidement, produisant un son. Les délais de 3 millisecondes contrôlent la durée pendant laquelle le buzzer est activé et désactivé, tandis qu'un délai d'une seconde à la fin de la boucle offre une pause avant de répéter.

Démonstration / Ce à quoi s'attendre

Une fois le câblage terminé et le code téléchargé, vous devriez entendre une série de courtes tonalités produites par le buzzer. Si le buzzer ne sonne pas, vérifiez vos connexions, en particulier l'orientation du transistor et la valeur de la résistance. Assurez-vous que la bonne broche est utilisée dans le code et que l'ESP32 est correctement alimenté.

Lors de la démonstration, si vous rencontrez des problèmes, cela peut être dû à un câblage incorrect ou à l'utilisation du mauvais broche pour le buzzer. Vérifiez le câblage par rapport aux instructions et assurez-vous que l'alimentation est adéquate (dans la vidéo à 08:15).

Horodatages vidéo

  • 00:00 Début
  • 1:52 Introduction au projet
  • 4:11 Câblage expliqué
  • 8:11 Sélection de la carte ESP32 et du port COM dans l'IDE Arduino
  • 9:53 Code Arduino expliqué
  • 13:17 Démonstration de projet
  • 13:58 Code et démonstration du projet 2

Images

ESP32-13-buzzer-wriing
ESP32-13-buzzer-wriing
ESP32-13-buzzer-schematic
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
S87050_transistor
S87050_transistor
813-ESP32 Tutorial 14/55- Arduino code for custom music tone
Langue: C++
Copié !

Ressources et références

Fichiers📁

Fiche technique (pdf)