ESP32 ટ્યુટોરિયલ 14/55 - SunFounder ESP32 IoT લર્નિંગ કિટનો ઉપયોગ કરીને કસ્ટમ મ્યુઝિક નોટ વગાડવું
આ ટ્યુટોરિયલમાં, આપણે શીખીશું કે SunFounder ESP32 માઇક્રોકંટ્રોલરનો ઉપયોગ કરીને પેસિવ બઝર અને ટ્રાન્ઝિસ્ટર દ્વારા સંગીતની નોટ્સ કેવી રીતે વગાડવી. આ પ્રોજેક્ટનો હેતુ ESP32 ના GPIO પિન દ્વારા બઝરને નિયંત્રિત કરીને ચોક્કસ ફ્રીક્વન્સી સાથે અવાજ કેવી રીતે ઉત્પન્ન કરવો તે દર્શાવવાનો છે.

આપણે ESP32 સાથે પેસિવ બઝર જોડીશું, જે આપણને આપેલી ફ્રીક્વન્સીના આધારે વિવિધ સંગીતની નોટ્સ ઉત્પન્ન કરવાની મંજૂરી આપશે. આ સેટઅપમાં ટ્રાન્ઝિસ્ટરનો ઉપયોગ બઝરને ઝડપથી ચાલુ અને બંધ કરવા માટે થાય છે, જે ધ્વનિ તરંગો બનાવે છે જે આપણે સાંભળી શકીએ છીએ. પ્રોજેક્ટ વિશે વધુ સ્પષ્ટતા માટે, વિડિયો (વિડિયોમાં 00:30 પર) ચોક્કસપણે જુઓ.
હાર્ડવેર સમજાવ્યું
આ પ્રોજેક્ટમાં વપરાતા મુખ્ય ઘટકોમાં SunFounder ESP32 માઇક્રોકંટ્રોલર, પેસિવ બઝર અને NPN ટ્રાન્ઝિસ્ટર (2N8050) નો સમાવેશ થાય છે. ESP32 એ બિલ્ટ-ઇન Wi-Fi અને બ્લૂટૂથ ક્ષમતાઓ સાથેનું શક્તિશાળી ડેવલપમેન્ટ બોર્ડ છે, જે તેને વિવિધ IoT એપ્લિકેશનો માટે બહુમુખી બનાવે છે. આ કિસ્સામાં, તે બઝરને નિયંત્રિત કરવા માટે સિગ્નલ ઉત્પન્ન કરશે.
પેસિવ બઝર જ્યારે તેના પર વૈકલ્પિક વોલ્ટેજ લાગુ કરવામાં આવે છે ત્યારે અવાજ ઉત્પન્ન કરીને કાર્ય કરે છે. સક્રિય બઝરથી વિપરીત, જેમાં બિલ્ટ-ઇન ઓસિલેટર હોય છે, પેસિવ બઝરને અવાજ ઉત્પન્ન કરવા માટે બાહ્ય સિગ્નલની જરૂર પડે છે. ટ્રાન્ઝિસ્ટર સ્વિચ તરીકે કાર્ય કરે છે, જે ESP32 ને બઝરને સીધું પાવર આપ્યા વિના નિયંત્રિત કરવાની મંજૂરી આપે છે, ખાતરી કરે છે કે માઇક્રોકંટ્રોલરની વર્તમાન રેટિંગ ઓળંગાઈ નથી.
ડેટાશીટ વિગતો
| ઉત્પાદક | SunFounder |
|---|---|
| ભાગ નંબર | પેસિવ બઝર |
| ઓપરેટિંગ વોલ્ટેજ | 3.3 V - 5 V |
| રેઝોનન્ટ ફ્રીક્વન્સી | 2 kHz - 4 kHz |
| વર્તમાન વપરાશ | ≤ 30 mA |
| ધ્વનિ દબાણ સ્તર | ≥ 70 dB |
| પેકેજ | થ્રુ-હોલ |
| નોંધો / વેરિઅન્ટ્સ | કોઈ નહીં |
- બઝર જોડતી વખતે યોગ્ય ધ્રુવીયતા સુનિશ્ચિત કરો.
- ટ્રાન્ઝિસ્ટર બેઝ માટે વર્તમાન-મર્યાદિત રેઝિસ્ટરનો ઉપયોગ કરો.
- બઝરને તેની વોલ્ટેજ રેટિંગ સાથે સુસંગત પાવર સપ્લાય સાથે જોડો.
- ટ્રાન્ઝિસ્ટરની મહત્તમ વર્તમાન રેટિંગ ઓળંગવાથી સાવધ રહો.
- શોર્ટ સર્કિટ ટાળવા માટે વાયરિંગ વ્યવસ્થિત રાખો.
- ઘટકોને નુકસાન ટાળવા માટે કોડ અપલોડ કરતા પહેલા સર્કિટનું પરીક્ષણ કરો.
- સરળ ઘટક જોડાણો માટે બ્રેડબોર્ડનો ઉપયોગ કરો.
- જો બટનોનો ઉપયોગ કરો તો ઇનપુટ્સ ડિબાઉન્સ કરવાનું સુનિશ્ચિત કરો.
- જો ઉચ્ચ વર્તમાનમાં ઉપયોગ કરો તો ટ્રાન્ઝિસ્ટર માટે હીટ સિંક ઉમેરવાનું વિચારો.
વાયરિંગ સૂચનાઓ

ઘટકોને વાયર કરવા માટે, પેસિવ બઝરના પોઝિટિવ ટર્મિનલને ESP32 પરના 3.3V પિન સાથે જોડીને શરૂ કરો. બઝરનું નેગેટિવ ટર્મિનલ NPN ટ્રાન્ઝિસ્ટરના કલેક્ટર સાથે જોડાયેલું હોવું જોઈએ. ટ્રાન્ઝિસ્ટરનો એમિટર પિન ESP32 ના ગ્રાઉન્ડ (GND) સાથે વાયર થયેલો હોવો જોઈએ.
આગળ, ટ્રાન્ઝિસ્ટરના બેઝથી ESP32 પરના GPIO પિન 14 સુધી 1 kΩ રેઝિસ્ટર જોડો. આ રેઝિસ્ટર ટ્રાન્ઝિસ્ટરના બેઝમાં વહેતા વર્તમાનને મર્યાદિત કરે છે. છેલ્લે, ખાતરી કરો કે બધા ગ્રાઉન્ડ જોડાણો સર્કિટ માટે સામાન્ય સંદર્ભ પ્રદાન કરવા માટે એકસાથે બાંધેલા છે.
કોડ ઉદાહરણો અને વોકથ્રુ
const int buzzerPin = 14; // બઝર પિન
void setup()
{
pinMode(buzzerPin, OUTPUT); // આઉટપુટ તરીકે સેટ કરો
}
કોડમાં, આપણે એક સ્થિર ચલ buzzerPin વ્યાખ્યાયિત કરીએ છીએ જે 14 પર સેટ છે, જે ટ્રાન્ઝિસ્ટરના બેઝ સાથે જોડાયેલ GPIO પિન દર્શાવે છે. 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() ફંક્શનમાં એક for-લૂપ છે જે 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 કોડ અને પ્રદર્શન
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
}
Common Course Links
Common Course Files
સંસાધનો અને સંદર્ભો
-
દસ્તાવેજીકરણESP32 Tutorial 14/55 - SunFounder Resources page for custom tonedocs.sunfounder.com
ફાઇલો📁
ડેટાશીટ (pdf)
-
Buzzer MB12A05 C96093 datasheet
Buzzer_MB12A05_C96093_datasheet.pdf0.97 MB -
NPN Epitaxial Silicon Transistor SS8050 datasheet
SS8050-datasheet.pdf0.19 MB