Raadi Koodka

Tutorial ESP32 14/55 - Ciyaarista Muusiko Qaabaysan Iyadoo La Isticmaalayo Qalabka Barashada ESP32 IoT ee SunFounder

Tutorial ESP32 14/55 - Ciyaarista Muusiko Qaabaysan Iyadoo La Isticmaalayo Qalabka Barashada ESP32 IoT ee SunFounder

Casharkaani waxaan ku baran doonaa sida loo isticmaalo kontoroolka SunFounder ESP32 si aan ugu ciyaarno qoobab muusik ah iyadoo la isticmaalayo buzzer passive ah iyo transistor. Mashruucani wuxuu ujeedkiisu yahay inuu muujiyo sida loo soo saaro dhawaq leh soo noqnoqosho gaar ah iyadoo la xakameynayo buzzer-ka iyada oo loo marayo GPIO pins-ka ESP32.

Waxaan ku xidhi doonaa buzzer passive ah ESP32-ka, kaas oo noo oggolaanaya inaan soo saarno qoobab muusik oo kala duwan iyadoo ku xiran soo noqnoqoshada aan bixinno. Qaabkani wuxuu ku lug leeyahay isticmaalka transistor si loo beddelo buzzer-ka oo la shido oo la damiyo xawaare sare, taasoo abuuraysa mowjado dhawaq ah oo aan maqli karno. Si aad uga hesho caddayn dheeri ah mashruuca, hubi inaad daawato fiidiyowga (fiidiyowga 00:30).

ESP32-13-buzzer-schematic

Qalabka La Sharaxay

Qaybaha ugu muhiimsan ee mashruucan lagu isticmaalo waxaa ka mid ah kontoroolka SunFounder ESP32, buzzer passive ah, iyo transistor NPN ah (2N8050). ESP32 waa loox horumarineed oo xoog badan oo leh awood Wi-Fi iyo Bluetooth oo ku dhex dhisan, taasoo ka dhigaysa mid u adeegsan kara codsiyo IoT oo kala duwan. Kiiskan, waxay soo saari doontaa calaamado si ay u xakameyso buzzer-ka.

Buzzer-ka passive wuxuu u shaqeeyaa isagoo soo saaraya dhawaq marka koronto beddelan lagu marsiiyo. Si ka duwan buzzer-yada firfircoon, kuwaas oo leh oscillator ku dhex dhisan, buzzer-yada passive waxay u baahan yihiin calaamad dibadeed si ay u soo saaraan dhawaq. Transistor-ku wuxuu u shaqeeyaa sidii fure, isagoo u oggolaanaya ESP32 inuu xakameeyo buzzer-ka isagoon si toos ah u shidin, isagoo hubinaya in qiimaha hadda ee kontoroolka aan laga gudbin.

S87050_transistor

Faahfaahinta Xogta

Soo saaraha SunFounder
Nambarka qaybta Buzzer Passive
Korantada Shaqada 3.3 V - 5 V
Soo noqnoqoshada Resonance 2 kHz - 4 kHz
Isticmaalka Hadda ≤ 30 mA
Heerka Cadaadiska Dhawaqa ≥ 70 dB
Baakad Through-hole
Qoraallo / noocyo Midna

 

  • Hubi jihada saxda ah markaad ku xidhayso buzzer-ka.
  • Isticmaal resistor xaddidaya hadda ee saldhigga transistor-ka.
  • Ku xidh buzzer-ka koronto ku habboon qiimaha korantada.
  • Ka digtoonow inaad ka gudubto qiimaha ugu badan ee hadda ee transistor-ka.
  • Ka ilaali fiilooyinka inay nadiif ahaadaan si looga fogaado gaabiska.
  • Tijaabi wareegga ka hor intaadan soo gelin koodka si looga fogaado dhaawaca qaybaha.
  • Isticmaal loox rooti ah si fudud loogu xidho qaybaha.
  • Hubi inaad debounce gasho inputs-ka haddii aad isticmaalayso badhamada.
  • Tixgeli ku darista heat sink transistor-ka haddii lagu isticmaalo hadda sare.

Tilmaamaha Xidhiidhka

ESP32-13-buzzer-wriing

Si aad u xidho qaybaha, ku bilow adigoo ku xidhaya terminal-ka togan ee buzzer-ka passive ee pin-ka 3.3V ee ESP32. Terminal-ka taban ee buzzer-ka waa inuu ku xidhmaa collector-ka transistor-ka NPN. Pin-ka emitter-ka ee transistor-ka waa inuu ku xidhmaa dhulka (GND) ee ESP32.

Marka xigta, ku xidh resistor 1 kΩ ah oo ka yimaada saldhigga transistor-ka ilaa GPIO pin 14 ee ESP32. Resistor-kani wuxuu xaddidayaa hadda ku qulqulaya saldhigga transistor-ka. Ugu dambeyntii, hubi in dhammaan xidhiidhada dhulka ay isku xidhan yihiin si loo bixiyo tixraac guud oo wareegga ah.

Tusaalooyinka Koodka & Sharaxaad

const int buzzerPin = 14; // pin-ka buzzer-ka

void setup()
{
  pinMode(buzzerPin, OUTPUT); // U qor sidii output
}

Koodka, waxaan ku qeexaynaa doorsoome joogto ah buzzerPin kaas oo loo qoray 14, isagoo tilmaamaya GPIO pin-ka ku xidhan saldhigga transistor-ka. Shaqada setup(), waxaan u qoraynaa pin-kan sidii OUTPUT, taasoo u oggolaanaysa ESP32 inuu xakameeyo buzzer-ka.

void loop()
{
  for (int i = 0; i < 50; i++) // Ku wareeji 50 jeer oo ciyaar cod gaaban mar kasta
  {
    digitalWrite(buzzerPin, HIGH); // U qor HIGH si buzzer-ku u dhawaqo
    delay(3); // Sug 3 milliseconds
    digitalWrite(buzzerPin, LOW); // LOW si loo damiyo buzzer-ka
    delay(3); // 
  }
  delay(1000); // Sug 1s ka hor intaadan bilowgin wareegga xiga
}

Shaqada loop() waxay ka kooban tahay for-loop oo socota 50 jeer. Wareeg kastaa wuxuu si dhakhso leh u shidaa oo u damiyaa buzzer-ka, isagoo soo saaraya cod. Dib-u-hakinta 3 milliseconds waxay xakameysaa inta uu buzzer-ku shidan yahay oo uu damiyay, halka dib-u-hakinta 1-ilbidhiqsi ee dhamaadka loop-ku ay bixiso nasasho ka hor inta aan la celin.

Muuujin / Waxa Lagu Filan Karaa

Marka xidhiidhku dhammaystiro oo koodka la soo geliyo, waa inaad maqashaa taxane codad gaaban ah oo uu soo saaro buzzer-ku. Haddii buzzer-ku uusan dhawaqin, hubi xidhiidhadaada, gaar ahaan jihada transistor-ka iyo qiimaha resistor-ka. Hubi in pin-ka saxda ah lagu isticmaalay koodka iyo in ESP32 si habboon loo shido.

Inta lagu jiro muujinta, haddii aad la kulanto dhibaatooyin, waxaa laga yaabaa inay ugu wacan tahay xidhiidh qalad ah ama isticmaalka pin-ka qaldan ee buzzer-ka. Hubi xidhiidhka marka loo eego tilmaamaha oo hubi in korontadu ku filan tahay (fiidiyowga 08:15).

Waqtiyada Fiidiyowga

  • 00:00 Bilow
  • 1:52 Hordhaca mashruuca
  • 4:11 Xidhiidhka la sharaxay
  • 8:11 Doorashada looxa ESP32 iyo COM port ee Arduino IDE
  • 9:53 Koodka Arduino la sharaxay
  • 13:17 Muujinta mashruuca
  • 13:58 Koodka mashruuca 2aad iyo muujintiisa

Sawirro

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
Luqadda: 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
}

Kheyraadka & Tixraacyada

Faylasha📁

Waraaqa xogta (pdf)