Tafuta Msimbo

Mafunzo ya ESP32 14/55 - Kucheza Noti ya Muziki Maalum Kwa Kutumia Kifurushi cha Kujifunza cha SunFounder ESP32 IoT

Mafunzo ya ESP32 14/55 - Kucheza Noti ya Muziki Maalum Kwa Kutumia Kifurushi cha Kujifunza cha SunFounder ESP32 IoT

Katika mafunzo haya, tutajifunza jinsi ya kutumia microcontroller ya SunFounder ESP32 kucheza noti za muziki kwa kutumia buzzer pasi na transistor. Mradi huu unalenga kuonyesha jinsi ya kutoa sauti kwa masafa maalum kwa kudhibiti buzzer kupitia pini za GPIO za ESP32.

Tutaunganisha buzzer pasi kwenye ESP32, ambayo itaturuhusu kutoa noti tofauti za muziki kulingana na masafa tunayotoa. Mpangilio huu unajumuisha kutumia transistor kuwasha na kuzima buzzer kwa kasi kubwa, na hivyo kuunda mawimbi ya sauti tunayoweza kusikia. Kwa ufafanuzi zaidi kuhusu mradi huu, hakikisha umeangalia video (katika video saa 00:30).

ESP32-13-buzzer-schematic

Maelezo ya Vifaa

Vifaa vikuu vinavyotumika katika mradi huu vinajumuisha microcontroller ya SunFounder ESP32, buzzer pasi, na transistor ya NPN (2N8050). ESP32 ni bodi ya maendeleo yenye nguvu iliyo na uwezo wa Wi-Fi na Bluetooth uliojengewa ndani, na kuifanya kuwa hodari kwa matumizi mbalimbali ya IoT. Katika kesi hii, itazalisha ishara za kudhibiti buzzer.

Buzzer pasi hufanya kazi kwa kutoa sauti wakati voltage mbadala inapowekwa kwake. Tofauti na buzzer amilifu, ambazo zina oscillator iliyojengewa ndani, buzzer pasi zinahitaji ishara ya nje kutoa sauti. Transistor hufanya kama swichi, ikiruhusu ESP32 kudhibiti buzzer bila kuiwezesha moja kwa moja, kuhakikisha kwamba kiwango cha sasa cha microcontroller hakizidiwi.

S87050_transistor

Maelezo ya Datasheet

Mtengenezaji SunFounder
Nambari ya sehemu Buzzer Pasi
Voltage ya Uendeshaji 3.3 V - 5 V
Masafa ya Resonant 2 kHz - 4 kHz
Matumizi ya Sasa ≤ 30 mA
Kiwango cha Shinikizo la Sauti ≥ 70 dB
Kifurushi Through-hole
Vidokezo / lahaja Hakuna

 

  • Hakikisha polarity sahihi wakati wa kuunganisha buzzer.
  • Tumia resistor ya kuzuia sasa kwa msingi wa transistor.
  • Unganisha buzzer kwenye usambazaji wa nguvu unaoendana na kiwango cha voltage yake.
  • Jihadharini na kuzidi kiwango cha juu cha sasa cha transistor.
  • Weka wiring safi ili kuepuka mzunguko mfupi.
  • Jaribu mzunguko kabla ya kupakia msimbo ili kuepuka uharibifu wa vifaa.
  • Tumia breadboard kwa urahisi wa kuunganisha vifaa.
  • Hakikisha unafanya debounce kwa pembejeo ikiwa unatumia vifungo.
  • Fikiria kuongeza heat sink kwa transistor ikiwa inatumiwa kwa sasa kubwa.

Maagizo ya Wiring

ESP32-13-buzzer-wriing

Ili kuunganisha vifaa, anza kwa kuunganisha terminal chanya ya buzzer pasi kwenye pini ya 3.3V kwenye ESP32. Terminal hasi ya buzzer inapaswa kuunganishwa kwenye collector ya transistor ya NPN. Pini ya emitter ya transistor inapaswa kuunganishwa kwenye ardhi (GND) ya ESP32.

Ifuatayo, unganisha resistor ya 1 kΩ kutoka msingi wa transistor hadi pini ya GPIO 14 kwenye ESP32. Resistor hii inazuia sasa inayotiririka ndani ya msingi wa transistor. Hatimaye, hakikisha kwamba miunganisho yote ya ardhi imefungwa pamoja ili kutoa rejea ya kawaida kwa mzunguko.

Mifano ya Msimbo & Maelezo

const int buzzerPin = 14; // pini ya buzzer

void setup()
{
  pinMode(buzzerPin, OUTPUT); // Weka kama pato
}

Katika msimbo, tunafafanua kigezo cha mara kwa mara buzzerPin ambacho kimewekwa kuwa 14, kinachoonyesha pini ya GPIO iliyounganishwa kwenye msingi wa transistor. Katika kazi ya setup(), tunaweka pini hii kama OUTPUT, ikiruhusu ESP32 kudhibiti buzzer.

void loop()
{
  for (int i = 0; i < 50; i++) // Rudia mara 50 na cheza tone fupi kila wakati
  {
    digitalWrite(buzzerPin, HIGH); // Weka HIGH ili buzzer itoe sauti
    delay(3); // Subiri millisecond 3
    digitalWrite(buzzerPin, LOW); // LOW ili kuzima buzzer
    delay(3); // 
  }
  delay(1000); // Subiri sekunde 1 kabla ya kuanza kitanzi kinachofuata
}

Kazi ya loop() ina kitanzi cha for kinachoendesha mara 50. Kila marudio huwasha na kuzima buzzer haraka, na kutoa tone. Ucheleweshaji wa millisecond 3 unadhibiti muda ambao buzzer inawashwa na kuzimwa, wakati ucheleweshaji wa sekunde 1 mwishoni mwa kitanzi unatoa pause kabla ya kurudia.

Maonyesho / Nini cha Kutarajia

Mara tu wiring itakapokamilika na msimbo kupakiwa, unapaswa kusikia mfululizo wa toni fupi zinazotolewa na buzzer. Ikiwa buzzer haitoi sauti, angalia miunganisho yako, hasa mwelekeo wa transistor na thamani ya resistor. Hakikisha pini sahihi inatumiwa katika msimbo na kwamba ESP32 ina nguvu ya kutosha.

Wakati wa maonyesho, ikiwa unakumbana na matatizo, inaweza kuwa kutokana na wiring isiyo sahihi au kutumia pini isiyo sahihi kwa buzzer. Angalia wiring dhidi ya maagizo na uhakikishe kwamba usambazaji wa nguvu unatosha (katika video saa 08:15).

Vidokezo vya Muda wa Video

  • 00:00 Mwanzo
  • 1:52 Utangulizi wa mradi
  • 4:11 Maelezo ya Wiring
  • 8:11 Kuchagua bodi ya ESP32 na bandari ya COM kwenye Arduino IDE
  • 9:53 Maelezo ya msimbo wa Arduino
  • 13:17 Maonyesho ya mradi
  • 13:58 Msimbo wa Mradi 2 na maonyesho

Bilder

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
Språk: 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
}

Resurser och referenser

Filer📁

Datablad (pdf)