આ ટ્યુટોરિયલમાં, આપણે ESP32 માઇક્રોકંટ્રોલર અને ટ્રાન્ઝિસ્ટરનો ઉપયોગ કરીને એક્ટિવ બઝરને કેવી રીતે નિયંત્રિત કરવું તે શીખીશું. આ પ્રોજેક્ટમાં બઝરને ચાલુ અને બંધ કરવાનો સમાવેશ થાય છે, જે બીપ અવાજ ઉત્પન્ન કરે છે. ESP32 ની બિલ્ટ-ઇન Wi-Fi અને Bluetooth ક્ષમતાઓ સાથે, તમે ભવિષ્યમાં આ પ્રોજેક્ટને વધુ જટિલ IoT એપ્લિકેશન્સમાં વિસ્તૃત કરી શકો છો.
આપણે જે ઘટકોનો ઉપયોગ કરીશું તેમાં ESP32 બોર્ડ, એક એક્ટિવ બઝર, એક ટ્રાન્ઝિસ્ટર (S8050), અને એક રેઝિસ્ટરનો સમાવેશ થાય છે. આ ઘટકોને યોગ્ય રીતે વાયર કરીને, આપણે ESP32 દ્વારા બઝરના અવાજને નિયંત્રિત કરી શકીએ છીએ. વધુમાં, અમે આ પ્રોજેક્ટને ચાલુ કરવા માટે જરૂરી વાયરિંગ અને કોડની સંક્ષિપ્ત ઝાંખી પ્રદાન કરીશું. વધુ સ્પષ્ટતા માટે, આ ટ્યુટોરિયલ સાથેના વિડિયોને ચોક્કસપણે તપાસો (વિડિયોમાં 00:00 પર).
S87050_transistor
હાર્ડવેર સમજાવ્યું
આ પ્રોજેક્ટના મુખ્ય ઘટકોમાં ESP32 માઇક્રોકંટ્રોલર, એક્ટિવ બઝર અને S8050 ટ્રાન્ઝિસ્ટરનો સમાવેશ થાય છે. ESP32 એક શક્તિશાળી માઇક્રોકંટ્રોલર છે જેમાં Wi-Fi અને Bluetooth બંને છે, જે IoT પ્રોજેક્ટ્સની વિશાળ શ્રેણીને મંજૂરી આપે છે. જ્યારે વોલ્ટેજ લાગુ કરવામાં આવે ત્યારે એક્ટિવ બઝર અવાજ ઉત્પન્ન કરે છે, જ્યારે S8050 ટ્રાન્ઝિસ્ટર ESP32 થી ઓછા વોલ્ટેજ સિગ્નલ સાથે બઝરને નિયંત્રિત કરવા માટે સ્વિચ તરીકે કાર્ય કરે છે.
ટ્રાન્ઝિસ્ટરમાં ત્રણ પિન છે: કલેક્ટર, બેઝ અને એમિટર. જ્યારે રેઝિસ્ટર દ્વારા બેઝ પિન પર વોલ્ટેજ લાગુ કરવામાં આવે છે, ત્યારે તે કલેક્ટરથી એમિટર સુધી વિદ્યુતપ્રવાહને વહેવા દે છે, આમ બઝરને પાવર મળે છે. આ સેટઅપ સુનિશ્ચિત કરે છે કે આપણે ESP32 ના GPIO પિનને ઓવરલોડ કર્યા વિના બઝરને સુરક્ષિત રીતે નિયંત્રિત કરી શકીએ છીએ.
ESP32-13-buzzer-schematic
ડેટાશીટ વિગતો
ઉત્પાદક
SunFounder
ભાગ નંબર
TMBB 12 A05
ઓપરેટિંગ વોલ્ટેજ
3–8 V
રેટેડ વોલ્ટેજ
5 V
મહત્તમ વિદ્યુતપ્રવાહ
30 mA
ઓસિલેટિંગ આવર્તન
2700 ± 300 Hz
ટ્રાન્ઝિસ્ટરના બેઝ પર વિદ્યુતપ્રવાહ મર્યાદિત કરવા માટે 1 kΩ રેઝિસ્ટરનો ઉપયોગ કરો.
ખાતરી કરો કે એક્ટિવ બઝર પોઝિટિવ અને નેગેટિવ ટર્મિનલ સાથે યોગ્ય રીતે જોડાયેલ છે.
શોર્ટ સર્કિટ અટકાવવા માટે પિન કનેક્શન્સ બે વાર તપાસો.
સરળ કનેક્શન અને ગોઠવણો માટે બ્રેડબોર્ડનો ઉપયોગ કરો.
બઝર 3.3V અને 5V બંને પર કાર્ય કરી શકે છે, પરંતુ તમારા સર્કિટની જરૂરિયાતો અનુસાર તેને પાવર કરો.
વાયરિંગ સૂચનાઓ
ESP32-13-buzzer-wriing
ઘટકોને વાયર કરવા માટે, બ્રેડબોર્ડમાં એક્ટિવ બઝર દાખલ કરીને શરૂ કરો. બઝરના પોઝિટિવ ટર્મિનલને ESP32 પરના 3.3V પિન સાથે જોડો. બઝરનું નેગેટિવ ટર્મિનલ S8050 ટ્રાન્ઝિસ્ટરના કલેક્ટર પિન સાથે જોડાયેલું હોવું જોઈએ. આગળ, S8050 ટ્રાન્ઝિસ્ટરને બ્રેડબોર્ડમાં દાખલ કરો, ખાતરી કરો કે સપાટ બાજુ તમારી સામે છે. ડાબી પિન (કલેક્ટર) બઝરના નેગેટિવ ટર્મિનલ સાથે જોડાય છે, મધ્યમ પિન (બેઝ) 1 kΩ રેઝિસ્ટર સાથે જોડાય છે, અને જમણી પિન (એમિટર) ગ્રાઉન્ડ સાથે જોડાય છે.
હવે, 1 kΩ રેઝિસ્ટરનો બીજો છેડો લો અને તેને ESP32 પરના GPIO પિન 14 સાથે જોડો. છેલ્લે, ટ્રાન્ઝિસ્ટરના એમિટર પિનને બ્રેડબોર્ડ પરના ગ્રાઉન્ડ રેલ સાથે જોડો. ખાતરી કરો કે બધા કનેક્શન સુરક્ષિત છે અને સર્કિટને પાવર આપતા પહેલા પિનની ગોઠવણી બે વાર તપાસો.
કોડ ઉદાહરણો અને વોકથ્રુ
બઝરને નિયંત્રિત કરતા કોડની સંક્ષિપ્ત ઝાંખી અહીં છે. પ્રથમ, આપણે બઝર સાથે જોડાયેલ પિન વ્યાખ્યાયિત કરીએ છીએ:
const int buzzerPin = 14; // બઝર પિન
આ લાઇન ESP32 પર પિન 14 નો સંદર્ભ આપવા માટે buzzerPin ચલ સેટ કરે છે, જેનો ઉપયોગ બઝરને નિયંત્રિત કરવા માટે થાય છે.
આ સુનિશ્ચિત કરે છે કે ESP32 ને ખબર છે કે બઝરને ચાલુ અને બંધ કરવા માટે સિગ્નલ મોકલવા પિન 14 નો ઉપયોગ કરવો.
loop() ફંક્શનમાં, આપણે બઝરને ઘણી વખત સક્રિય કરવા માટે for લૂપ બનાવીએ છીએ:
for (int i = 0; i < 50; i++) // 50 વખત લૂપ કરો અને દરેક વખતે ટૂંકો સ્વર વગાડો
{
digitalWrite(buzzerPin, HIGH); // બઝરને અવાજ કરવા માટે HIGH સેટ કરો
delay(3); // 3 મિલિસેકન્ડ રાહ જુઓ
digitalWrite(buzzerPin, LOW); // બઝર બંધ કરવા માટે LOW
delay(3); //
}
આ લૂપ બઝરને 50 વખત બીપ કરશે, દરેક બીપ 3 મિલિસેકન્ડ સુધી ચાલશે. લૂપ પૂર્ણ થયા પછી, પુનરાવર્તન કરતા પહેલા 1-સેકન્ડનો વિલંબ થાય છે.
પ્રદર્શન / શું અપેક્ષા રાખવી
જ્યારે વાયરિંગ અને કોડ યોગ્ય રીતે સેટ થાય છે, ત્યારે ESP32 ને પાવર આપવાથી બઝર સક્રિય થવું જોઈએ, જે બીપની શ્રેણી ઉત્પન્ન કરે છે. જો બઝર અવાજ ન કરે, તો કનેક્શન્સ તપાસો, ખાસ કરીને ટ્રાન્ઝિસ્ટર અને રેઝિસ્ટરની દિશા. ખાતરી કરો કે કોડમાં યોગ્ય GPIO પિનનો ઉપયોગ થઈ રહ્યો છે અને પાવર સપ્લાય પર્યાપ્ત છે (વિડિયોમાં 01:30 પર).
812-ESP32 Tutorial 13/55- Arduino code for controlling buzzer
ભાષા: C++
const int buzzerPin = 14; // the buzzer pin
void setup()
{
pinMode(buzzerPin, OUTPUT); // Set as output
}
void loop()
{
for (int i = 0; i < 50; i++) // Loop 50 times and play a short tone each time
{
digitalWrite(buzzerPin, HIGH); // Set to HIGH to make the buzzer sound
delay(3); // Wait for 3 milliseconds
digitalWrite(buzzerPin, LOW); // LOW to turn off the buzzer
delay(3); //
}
delay(1000); // Wait for 1s before starting the next loop
}
જાહેરાત: Amazon એસોસિયેટ તરીકે, અમે લાયક ખરીદીઓમાંથી કમાણી કરીએ છીએ. આનો અર્થ એ છે કે જો તમે લિંક પર ક્લિક કરીને ખરીદી કરો છો, તો અમને તમારા માટે કોઈ વધારાના ખર્ચ વિના નાનું કમિશન મળી શકે છે.