આ ટ્યુટોરિયલમાં, આપણે ESP32 માઇક્રોકંટ્રોલર સાથે LED ચાલુ અને બંધ કરવા માટે પુશ બટનનો ઉપયોગ કેવી રીતે કરવો તે શીખીશું. આ પ્રોજેક્ટ દર્શાવશે કે પુશ બટનની સ્થિતિ કેવી રીતે વાંચવી અને તે મુજબ LED ને કેવી રીતે નિયંત્રિત કરવી. જ્યારે બટન દબાવવામાં આવે છે, ત્યારે LED ચાલુ થશે, અને જ્યારે છોડવામાં આવે છે, ત્યારે તે બંધ થશે. આ ESP32 નો ઉપયોગ કરીને ઘણા ઇન્ટરેક્ટિવ પ્રોજેક્ટ્સ માટે મૂળભૂત ખ્યાલ છે.
ESP32 એ બિલ્ટ-ઇન Wi-Fi અને Bluetooth ક્ષમતાઓ સાથેનું શક્તિશાળી માઇક્રોકંટ્રોલર છે, જે તેને વિવિધ IoT એપ્લિકેશનો માટે યોગ્ય બનાવે છે. આ પાઠમાં, આપણે SunFounder ESP32 સ્ટાર્ટર કિટમાંથી ESP32 નો ઉપયોગ કરીશું, જેમાં રેઝિસ્ટર અને LED જેવા આવશ્યક ઘટકો શામેલ છે, એક સરળ સર્કિટ બનાવવા માટે. વાયરિંગ અને કોડની વિગતવાર સમજૂતી માટે, કૃપા કરીને વિડિઓનો સંદર્ભ લો (વિડિઓમાં 00:00 પર).
હાર્ડવેર સમજાવ્યું
આ પ્રોજેક્ટ માટેના મુખ્ય ઘટકોમાં ESP32 માઇક્રોકંટ્રોલર, પુશ બટન, LED અને રેઝિસ્ટર શામેલ છે. ESP32 પ્રોજેક્ટના મગજ તરીકે કાર્ય કરે છે, પુશ બટનની સ્થિતિના આધારે LED ને નિયંત્રિત કરે છે. પુશ બટન વપરાશકર્તાઓને સર્કિટ સાથે ક્રિયાપ્રતિક્રિયા કરવાની મંજૂરી આપે છે, જ્યારે LED બટન દબાવવામાં આવે ત્યારે દ્રશ્ય પ્રતિસાદ પ્રદાન કરે છે.
પુશ બટન દબાવવામાં આવે ત્યારે સર્કિટ બંધ કરીને કાર્ય કરે છે, જેનાથી વિદ્યુતપ્રવાહ વહે છે. આ ક્રિયા ESP32 ના નિયુક્ત ઇનપુટ પિન પર HIGH સિગ્નલ મોકલે છે, જે પછી કોડમાં વાંચી શકાય છે. બટન સાથે જોડાયેલ રેઝિસ્ટર ખાતરી કરે છે કે જ્યારે બટન દબાવવામાં ન આવે ત્યારે પિન પાસે વ્યાખ્યાયિત સ્થિતિ હોય, જે અસ્થિર વર્તનને અટકાવે છે.
રેઝિસ્ટર સાથે પુશ બટન
વાયરિંગ સૂચનાઓ
સર્કિટ વાયર કરવા માટે, LED ના લાંબા પિન (એનોડ) ને 220-ઓહ્મ રેઝિસ્ટર સાથે જોડીને શરૂ કરો. રેઝિસ્ટરના બીજા છેડાને ESP32 પર GPIO પિન 26 સાથે જોડો. LED નો ટૂંકો પિન (કેથોડ) ગ્રાઉન્ડ સાથે જોડાયેલો હોવો જોઈએ. આગળ, પુશ બટન લો અને એક બાજુ બોર્ડ પર 3.3V પાવર સપ્લાય સાથે જોડો. પુશ બટનની બીજી બાજુ GPIO પિન 14 સાથે જોડાય છે.
રેઝિસ્ટર વિના પુશ બટન
રેઝિસ્ટર વિના પુશ બટન
રેઝિસ્ટર સાથે પુશ બટન
રેઝિસ્ટર સાથે પુશ બટન
વધુમાં, GPIO પિન 14 થી ગ્રાઉન્ડ સુધી 10k-ઓહ્મ રેઝિસ્ટર મૂકો જેથી ખાતરી થાય કે જ્યારે બટન દબાવવામાં ન આવે ત્યારે પિન LOW વાંચે. છેલ્લે, ESP32 માંથી ગ્રાઉન્ડ વાયરને બ્રેડબોર્ડ પર સામાન્ય ગ્રાઉન્ડ સાથે જોડો. આ સેટઅપ ESP32 ને બટન સ્થિતિ વાંચવા અને તે મુજબ LED ને નિયંત્રિત કરવાની મંજૂરી આપશે.
કોડ ઉદાહરણો અને વોકથ્રુ
પ્રોગ્રામનો મુખ્ય ભાગ સ્થિરાંકોનો ઉપયોગ કરીને બટન અને LED માટે પિન નંબરો વ્યાખ્યાયિત કરીને શરૂ થાય છે. આ ખાતરી કરે છે કે પ્રોગ્રામના અમલ દરમિયાન પિન સોંપણીઓ યથાવત રહે.
// પિન નંબરો સેટ કરો
const int buttonPin = 14; // બટન પિન
const int ledPin = 26; // LED પિન
setup() ફંક્શનમાં, આપણે સીરિયલ મોનિટર શરૂ કરીએ છીએ અને બટન પિનને ઇનપુટ તરીકે સેટ કરીએ છીએ જ્યારે LED પિનને આઉટપુટ તરીકે ગોઠવીએ છીએ. આ ESP32 ને બટનમાંથી વાંચવા અને LED ને નિયંત્રિત કરવા માટે તૈયાર કરે છે.
loop() ફંક્શનની અંદર, પ્રોગ્રામ સતત બટન સ્થિતિ વાંચે છે અને તેને સીરિયલ મોનિટર પર છાપે છે. જો બટન દબાવવામાં આવે છે, તો LED ચાલુ થાય છે; અન્યથા, તે બંધ થાય છે. આ તર્ક બટનની સ્થિતિના આધારે LED ને ટૉગલ કરવા માટે આવશ્યક છે.
આ મૂળભૂત કાર્યક્ષમતા LED ને પુશ બટનને સીધો પ્રતિસાદ આપવાની મંજૂરી આપે છે. પ્રોજેક્ટ અને સંપૂર્ણ કોડ વિશે વધુ વિગતો માટે, કૃપા કરીને આપેલ વિડિઓનો સંદર્ભ લો (વિડિઓમાં 14:00 પર).
પ્રદર્શન / શું અપેક્ષા રાખવી
એકવાર વાયરિંગ પૂર્ણ થઈ જાય અને કોડ અપલોડ થઈ જાય, પુશ બટન દબાવવાથી LED ચાલુ થવું જોઈએ, અને તેને છોડવાથી LED બંધ થશે. આ વર્તન પુષ્ટિ કરે છે કે બટન સ્થિતિ યોગ્ય રીતે વાંચવામાં આવી રહી છે. જો LED અપેક્ષા મુજબ પ્રતિસાદ ન આપે, તો વાયરિંગ તપાસો અને ખાતરી કરો કે બટન યોગ્ય રીતે કાર્ય કરી રહ્યું છે.
પરીક્ષણ દરમિયાન, બટન સ્થિતિ રીડિંગ્સ માટે સીરિયલ મોનિટરનું અવલોકન કરવાનું સુનિશ્ચિત કરો. જ્યારે બટન દબાવવામાં આવે ત્યારે તમારે '1' જોવું જોઈએ અને જ્યારે તે છોડવામાં આવે ત્યારે '0' જોવું જોઈએ. જો રીડિંગ્સ અણધારી રીતે વધઘટ થાય છે, તો તે વાયરિંગ સમસ્યા અથવા કોડમાં વધારાના ડિબાઉન્સિંગ તર્કની જરૂરિયાત સૂચવી શકે છે.
// set pin numbers
const int buttonPin = 14; // Button pin
const int ledPin = 26; // LED pin
// variable for storing the button status
int buttonState = 0;
void setup() {
Serial.begin(115200);
// initialize the button pin as an input
pinMode(buttonPin, INPUT);
// initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the state of the button value
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
delay(100);
// if the button is pressed
if (buttonState == HIGH) {
// turn LED on
digitalWrite(ledPin, HIGH);
} else {
// turn LED off
digitalWrite(ledPin, LOW);
}
}
જાહેરાત: Amazon એસોસિયેટ તરીકે, અમે લાયક ખરીદીઓમાંથી કમાણી કરીએ છીએ. આનો અર્થ એ છે કે જો તમે લિંક પર ક્લિક કરીને ખરીદી કરો છો, તો અમને તમારા માટે કોઈ વધારાના ખર્ચ વિના નાનું કમિશન મળી શકે છે.