Search Code

Tutoriel ESP32 14/55 - Jouer une note de musique personnalisée à l'aide du kit d'apprentissage IoT SunFounder ESP32

Tutoriel ESP32 14/55 - Jouer une note de musique personnalisée à l'aide du kit d'apprentissage IoT SunFounder ESP32

Na boyekoli oyo, tokoyekola ndenge ya kosalela SunFounder ESP32 microcontroller mpo na kobeta ba notes ya miziki na kopesa buzzer passive mpe transistor. Proje oyo ezali na likebi ya kolakisa ndenge ya kobimisa makelele na ba fréquences spécifiques na kotala buzzer na nzela ya ba GPIO pins ya ESP32.

Tokokangisa buzzer passive na ESP32, oyo ekolakisa biso kobimisa ba notes ya miziki ndenge na ndenge kolandana na fréquence oyo tokopesa. Configuration oyo ezali na kosalela transistor mpo na kofungola mpe kokanga buzzer na vitesse ya likolo, mpe kobimisa ba ondes ya makelele oyo tokoyoka. Mpo na koyeba makambo mingi na tina ya proje oyo, tala vidéo (na vidéo na 00:30).

ESP32-13-buzzer-schematic

Hardware Explicado

Ba composants ya minene oyo basalelami na proje oyo ezali na SunFounder ESP32 microcontroller, buzzer passive, mpe transistor ya NPN (2N8050). ESP32 ezali board ya développement ya makasi oyo ezali na Wi-Fi mpe Bluetooth ya kati, mpe ezali malamu mpo na ba applications ndenge na ndenge ya IoT. Na likambo oyo, ekobimisa ba signaux mpo na kotala buzzer.

Buzzer passive esalaka na kobimisa makelele ntango voltage ya alternatif epesami na yango. Na kokeseni na ba buzzer actifs, oyo bazali na oscillator ya kati, ba buzzer passifs basengaka signal ya libanda mpo na kobimisa makelele. Transistor ezali lokola commutateur, mpe epesaka ESP32 nzela ya kotala buzzer na kopesa yango courant te, mpe ebatelaka ete courant ya microcontroller eleka te na ndelo na yango.

S87050_transistor

Ba Détails ya Datasheet

Fabricant SunFounder
Numéro ya partie Buzzer Passive
Voltage ya Fonctionnement 3.3 V - 5 V
Fréquence ya Résonance 2 kHz - 4 kHz
Consommation ya Courant ≤ 30 mA
Niveau ya Pression ya Makelele ≥ 70 dB
Paquet Through-hole
Ba Notes / ba Variantes Moko te

 

  • Keba na polarité ya malamu ntango okokangisa buzzer.
  • Salela résistor ya kokitisa courant mpo na base ya transistor.
  • Kangisa buzzer na source ya courant oyo ekokani na voltage na yango.
  • Keba ete okoleka te na ndelo ya courant ya transistor.
  • Bomba ba fils na ndenge ya malamu mpo na kokitisa risque ya court-circuit.
  • Meka circuit liboso ya ko uploader code mpo na kobatela ba composants.
  • Salela breadboard mpo na kokangisa ba composants na mpiko.
  • Keba na debounce ba entrées soki ozali kosalela ba boutons.
  • Tika kokanisa na kosalela heat sink mpo na transistor soki esalelami na courant ya makasi.

Ba Instructions ya Câblage

ESP32-13-buzzer-wriing

Mpo na kokangisa ba composants, banda na kokangisa terminal ya malamu ya buzzer passive na pin ya 3.3V na ESP32. Terminal ya mabe ya buzzer esengeli kokangama na collecteur ya transistor ya NPN. Pin ya émetteur ya transistor esengeli kokangama na terre (GND) ya ESP32.

Na sima, kangisa résistor ya 1 kΩ longwa na base ya transistor na pin ya GPIO 14 na ESP32. Résistor oyo ekitisaka courant oyo ekotaka na base ya transistor. Na suka, tika ete ba connexions ya terre nyonso ekangama mpo na kopesa référence commune mpo na circuit.

Ba Exemples ya Code & Explication

const int buzzerPin = 14; // pin ya buzzer

void setup()
{
  pinMode(buzzerPin, OUTPUT); // Tia lokola sortie
}

Na code, tozali kokabola variable constante buzzerPin oyo ezali na 14, oyo elakisi pin ya GPIO oyo ekangami na base ya transistor. Na fonction setup(), tozali kotia pin oyo lokola OUTPUT, mpe epesaka ESP32 nzela ya kotala buzzer.

void loop()
{
  for (int i = 0; i < 50; i++) // Loop mbala 50 mpe beta note ya mokuse mbala na mbala
  {
    digitalWrite(buzzerPin, HIGH); // Tia na HIGH mpo na kobimisa makelele ya buzzer
    delay(3); // Zelaki mwa secondes 3
    digitalWrite(buzzerPin, LOW); // LOW mpo na kokanga buzzer
    delay(3); // 
  }
  delay(1000); // Zelaki secondes 1 liboso ya kobanda loop ya sika
}

Fonction loop() ezali na boucle for oyo ezali kosala mbala 50. Mbala na mbala, efungolaka mpe ekangaka buzzer na lombangu, mpe ebimisaka note. Ba délais ya 3 millisecondes etalaka ndenge buzzer efungolami mpe ekangami, mpe délai ya seconde moko na suka ya boucle epesaka pemi liboso ya kozongela.

Démonstration / Nini Okokanela

Ntango câblage esili mpe code euploader, okoyoka ba notes ya mokuse oyo buzzer ebimisaka. Soki buzzer ezali kobimisa makelele te, tala ba connexions na yo, mingi na mingi orientation ya transistor mpe valeur ya résistor. Tika ete pin ya malamu esalelami na code mpe ESP32 ezali na courant ya malamu.

Na ntango ya démonstration, soki ozali na ba problèmes, ekoki kozala na tina na câblage ya mabe to kosalela pin ya mabe mpo na buzzer. Tala câblage na ba instructions mpe tika ete source ya courant ezali ya kokoka (na vidéo na 08:15).

Ba Timestamps ya Vidéo

  • 00:00 Ebandeli
  • 1:52 Introduction na proje
  • 4:11 Câblage Explicado
  • 8:11 Kopona board ya ESP32 mpe port ya COM na Arduino IDE
  • 9:53 Code ya Arduino explicado
  • 13:17 Démonstration ya proje
  • 13:58 Code ya proje 2 mpe démonstration

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++
const int buzzerPin = 14; //buzzer pin
const int resolution = 8; 

// Frequencies of the 7 musical notes (in Hz)
int frequencies[] = {262, 294, 330, 349, 392, 440, 494};


// Function to play a frequency on the buzzer for a given duration
void playFrequency(int frequency, int duration) {
  ledcWriteTone(buzzerPin, frequency); // Start the tone
  delay(duration); // Wait for the specified duration
  ledcWriteTone(buzzerPin, 0); // Stop the buzzer
}

void setup() {
  ledcAttach(buzzerPin, 2000, 8); // Set up the PWM pin
}

void loop() {
  for (int i = 0; i < 7; i++) {
    playFrequency(frequencies[i], 300); // Play each note for 300ms
    delay(50); // Add a brief pause between the notes
  }
  delay(1000); // Wait for 1 second before replaying the sequence
}

Mokili na bisika

Fichiers📁

Fiche technique (pdf)