Search Code

ኢኤስፒ32 ቱቶሪያል 14/55 - የሱንፋውንደር ኢኤስፒ32 አይኦቲ መማሪያ ኪት በመጠቀም ብጁ ሙዚቃ ኖት መጫወት

ኢኤስፒ32 ቱቶሪያል 14/55 - የሱንፋውንደር ኢኤስፒ32 አይኦቲ መማሪያ ኪት በመጠቀም ብጁ ሙዚቃ ኖት መጫወት

በዚህ ትምህርት ውስጥ፣ የSunFounder ESP32 ማይክሮኮንትሮለርን በመጠቀም የሙዚቃ ድምፆችን በፓሲቭ ባዘር እና በትራንዚስተር እንዴት መጫወት እንደምንችል እንማራለን። ፕሮጀክቱ ዓላማው የተወሰኑ ድግግሞሾች ያላቸውን ድምፆች በESP32 የGPIO ፒኖች በኩል ባዘሩን በመቆጣጠር እንዴት ማመንጨት እንደሚቻል ለማሳየት ነው።

ፓሲቭ ባዘርን ከESP32 ጋር እናገናኛለን፣ ይህም በምንሰጠው ድግግሞሽ መሠረት የተለያዩ የሙዚቃ ድምፆችን እንድናመርት ያስችለናል። ይህ ዝግጅት ባዘሩን በከፍተኛ ፍጥነት ለማብራት እና ለማጥፋት ትራንዚስተር መጠቀምን ያካትታል፣ ይህም የምንሰማቸውን የድምፅ ሞገዶች ይፈጥራል። ስለ ፕሮጀክቱ ተጨማሪ ማብራሪያ ለማግኘት፣ ቪዲዮውን (በቪዲዮው 00:30 ላይ) መመልከትዎን ያረጋግጡ።

ESP32-13-buzzer-schematic

የሃርድዌር ማብራሪያ

በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ የሚውሉት ዋና ዋና ክፍሎች የSunFounder ESP32 ማይክሮኮንትሮለር፣ ፓሲቭ ባዘር እና የNPN ትራንዚስተር (2N8050) ያካትታሉ። ESP32 አብሮ የተሰራ ዋይ-ፋይ እና ብሉቱዝ አቅም ያለው ኃይለኛ የልማት ቦርድ ነው፣ ይህም ለተለያዩ የIoT መተግበሪያዎች ሁለገብ ያደርገዋል። በዚህ ሁኔታ፣ ባዘሩን ለመቆጣጠር ምልክቶችን ያመነጫል።

ፓሲቭ ባዘር የሚሰራው ተለዋጭ ቮልቴጅ ሲተገበርበት ድምፅ በማመንጨት ነው። አብሮ የተሰራ oscillator ካላቸው አክቲቭ ባዘሮች በተለየ፣ ፓሲቭ ባዘሮች ድምፅ ለማመንጨት ውጫዊ ምልክት ያስፈልጋቸዋል። ትራንዚስተሩ እንደ መቀየሪያ ሆኖ ይሰራል፣ ይህም ESP32 ባዘሩን በቀጥታ ሳያብራ እንዲቆጣጠረው ያስችለዋል፣ ይህም የማይክሮኮንትሮለሩ የአሁኑ ደረጃ እንዳይበልጥ ያረጋግጣል።

S87050_transistor

የዳታሼት ዝርዝሮች

አምራች SunFounder
የክፍል ቁጥር ፓሲቭ ባዘር
የአሠራር ቮልቴጅ 3.3 ቮልት - 5 ቮልት
የሬዞናንስ ድግግሞሽ 2 kHz - 4 kHz
የአሁኑ ፍጆታ ≤ 30 mA
የድምፅ ግፊት ደረጃ ≥ 70 dB
ፓኬጅ በቀዳዳ የሚገጠም
ማስታወሻዎች / ልዩነቶች የለም

 

  • ባዘሩን ሲያገናኙ ትክክለኛውን የፖላሪቲ አቅጣጫ ያረጋግጡ።
  • ለትራንዚስተሩ ቤዝ የአሁኑን የሚገድብ ተቃዋሚ ይጠቀሙ።
  • ባዘሩን ከቮልቴጅ ደረጃው ጋር በሚስማማ የኃይል አቅርቦት ያገናኙ።
  • የትራንዚስተሩን ከፍተኛ የአሁኑ ደረጃ ከማለፍ ይጠንቀቁ።
  • የአጭር ዑደት ችግሮችን ለማስወገድ ሽቦዎቹን በጥሩ ሁኔታ ያስተካክሉ።
  • የክፍሎች ጉዳት ለማስወገድ ኮድ ከመጫንዎ በፊት ዑደቱን ይሞክሩ።
  • ለቀላል የክፍሎች ግንኙነት ብሬድቦርድ ይጠቀሙ።
  • አዝራሮችን የሚጠቀሙ ከሆነ ግብዓቶችን ዲባውንስ ማድረግዎን ያረጋግጡ።
  • ትራንዚስተሩን በከፍተኛ አሁኑ ላይ የሚጠቀሙ ከሆነ የሙቀት መስጫ (ሒት ሲንክ) ማከል ያስቡ።

የሽቦ መጫኛ መመሪያዎች

ESP32-13-buzzer-wriing

ክፍሎቹን ለማገናኘት፣ የፓሲቭ ባዘሩን አወንታዊ ተርሚናል በESP32 ላይ ካለው 3.3V ፒን ጋር በማገናኘት ይጀምሩ። የባዘሩ አሉታዊ ተርሚናል ከNPN ትራንዚስተሩ ኮሌክተር ጋር መገናኘት አለበት። የትራንዚስተሩ ኢሚተር ፒን ከESP32 መሬት (GND) ጋር መያያዝ አለበት።

በመቀጠል፣ ከትራንዚስተሩ ቤዝ ወደ ESP32 ላይ ወዳለው GPIO ፒን 14 የ1 kΩ ተቃዋሚ ያገናኙ። ይህ ተቃዋሚ ወደ ትራንዚስተሩ ቤዝ የሚፈሰውን አሁኑን ይገድባል። በመጨረሻም፣ ሁሉም የመሬት ግንኙነቶች ለዑደቱ የጋራ ማጣቀሻ እንዲሰጡ አንድ ላይ መታሰራቸውን ያረጋግጡ።

የኮድ ምሳሌዎች እና ማብራሪያ

const int buzzerPin = 14; // የባዘር ፒን

void setup()
{
  pinMode(buzzerPin, OUTPUT); // እንደ ውፅዓት አዘጋጅ
}

በኮዱ ውስጥ፣ ከትራንዚስተሩ ቤዝ ጋር የተገናኘውን GPIO ፒን የሚያመለክት buzzerPin የተባለ ቋሚ ተለዋዋጭ እንገልጻለን፣ እሱም ወደ 14 ተዋቅሯል። በsetup() ተግባር ውስጥ፣ ይህን ፒን እንደ OUTPUT እናዘጋጃለን፣ ይህም ESP32 ባዘሩን እንዲቆጣጠር ያስችለዋል።

void loop()
{
  for (int i = 0; i < 50; i++) // 50 ጊዜ ዙር አድርግ እና በእ প্রতিবారు አጭር ድምፅ አጫውት
  {
    digitalWrite(buzzerPin, HIGH); // ባዘሩ እንዲደወል HIGH አድርግ
    delay(3); // ለ3 ሚሊሰከንድ ጠብቅ
    digitalWrite(buzzerPin, LOW); // ባዘሩን ለማጥፋት LOW
    delay(3); // 
  }
  delay(1000); // ቀጣዩን ዙር ከመጀመር በፊት ለ1 ሰከንድ ጠብቅ
}

loop() ተግባር 50 ጊዜ የሚሰራ የፎር-ሉፕ ይዟል። እያንዳንዱ ድግግሞሽ ባዘሩን በፍጥነት ያበራና ያጠፋዋል፣ ድምፅ ይፈጥራል። የ3 ሚሊሰከንድ መዘግየቶች ባዘሩ ለምን ያህል ጊዜ እንደሚበራ እና እንደሚጠፋ ይቆጣጠራሉ፣ በሉፑ መጨረሻ ላይ ያለው የ1 ሰከንድ መዘግየት ከመድገም በፊት እረፍት ይሰጣል።

ማሳያ / ምን እንደሚጠበቅ

ሽቦው ከተጠናቀቀ እና ኮዱ ከተጫነ በኋላ፣ በባዘሩ የሚመረቱ ተከታታይ አጫጭር ድምፆች መስማት አለብዎት። ባዘሩ የማይደወል ከሆነ፣ ግንኙነቶችዎን ይፈትሹ፣ በተለይም የትራንዚስተሩን አቅጣጫ እና የተቃዋሚውን ዋጋ። ትክክለኛው ፒን በኮዱ ውስጥ መጠቀሙን እና ESP32 በትክክል መሞላሉን ያረጋግጡ።

በማሳያው ወቅት፣ ችግሮች ካጋጠሙዎት፣ በተሳሳተ ሽቦ ወይም ለባዘሩ የተሳሳተ ፒን በመጠቀም ሊሆን ይችላል። ሽቦውን ከመመሪያዎቹ ጋር ያረጋግጡ እና የኃይል አቅርቦቱ በቂ መሆኑን ያረጋግጡ (በቪዲዮው 08:15 ላይ)።

የቪዲዮ ጊዜ ምልክቶች

  • 00:00 መጀመሪያ
  • 1:52 ለፕሮጀክቱ መግቢያ
  • 4:11 የሽቦ ማብራሪያ
  • 8:11 በArduino IDE ላይ የESP32 ቦርድ እና COM ወደብ መምረጥ
  • 9:53 የArduino ኮድ ማብራሪያ
  • 13:17 የፕሮጀክት ማሳያ
  • 13:58 የፕሮጀክት 2 ኮድ እና ማሳያ

ምስሎች

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
ቋንቋ: 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
}

ምንጮች እና ምንጮች

ፋይሎች📁

የዳታ ማዕከል (pdf)