Search Code

ESP32 ટ્યુટોરિયલ 26/55 - આર્ડુઇનો સાથે જોયસ્ટિકનો ઉપયોગ કરીને ક્રિયા લેવી | સનફાઉન્ડરનો ESP32 IoT કિટ

ESP32 ટ્યુટોરિયલ 26/55 - આર્ડુઇનો સાથે જોયસ્ટિકનો ઉપયોગ કરીને ક્રિયા લેવી | સનફાઉન્ડરનો ESP32 IoT કિટ

આ ટ્યુટોરિયલમાં, આપણે SunFounder તરફથી ESP32 માઇક્રોકંટ્રોલર સાથે XY જોયસ્ટિકને કેવી રીતે ઇન્ટરફેસ કરવું તે શીખીશું, જે આપણને તેની સ્થિતિ શોધવા અને તેના ઇનપુટના આધારે ક્રિયા કરવાની મંજૂરી આપે છે. જ્યારે જોયસ્ટિકને ચોક્કસ સ્થિતિમાં ખસેડવામાં આવે ત્યારે સક્રિય થતો બઝર પણ આપણે સંકલિત કરીશું. આ સંયોજન આપણને ઇન્ટરેક્ટિવ પ્રોજેક્ટ્સ બનાવવા સક્ષમ બનાવશે જે વપરાશકર્તા ઇનપુટને રીઅલ-ટાઇમમાં પ્રતિસાદ આપે છે.

ESP32-26-xy-joystick-main

XY જોયસ્ટિક X અને Y સ્થિતિઓને અનુરૂપ બે એનાલોગ આઉટપુટ અને એક સ્વિચ પ્રદાન કરે છે જે ક્રિયા શરૂ કરવા માટે દબાવી શકાય છે. જોયસ્ટિકમાંથી મૂલ્યો વાંચીને, આપણે આપણા પ્રોજેક્ટમાં વિવિધ ઘટકોને નિયંત્રિત કરી શકીએ છીએ, જેમ કે બઝર સક્રિય કરવું અથવા સ્ક્રીન પર મૂલ્યો પ્રદર્શિત કરવા. પ્રક્રિયાને સંપૂર્ણ રીતે સમજવા માટે, વધારાની સમજ માટે વિડિઓ તપાસવાનું ભૂલશો નહીં (વિડિઓમાં 00:00 પર).

હાર્ડવેર સમજાવ્યું

આ પ્રોજેક્ટના મુખ્ય ઘટકોમાં ESP32 માઇક્રોકંટ્રોલર, XY જોયસ્ટિક અને બઝરનો સમાવેશ થાય છે. ESP32 એક બહુમુખી બોર્ડ છે જે Wi-Fi અને Bluetooth ને સપોર્ટ કરે છે, જે તેને IoT પ્રોજેક્ટ્સ માટે આદર્શ બનાવે છે. XY જોયસ્ટિકમાં X અને Y અક્ષો માટે બે ચલ રેઝિસ્ટર અને વધારાના ઇનપુટ માટે પુશ બટન સ્વિચ હોય છે.

joystick_schematic
ESP32-26-xy-joystick-schematic

જોયસ્ટિક તેની સ્થિતિને અનુરૂપ એનાલોગ સિગ્નલો આઉટપુટ કરે છે, જે ESP32 ના એનાલોગ પિન દ્વારા વાંચવામાં આવે છે. પુશ બટન દબાવવામાં આવે ત્યારે ડિજિટલ સિગ્નલ પ્રદાન કરે છે. બઝર ESP32 પર ડિજિટલ આઉટપુટ પિન સાથે જોડાયેલ છે, જે તેને જોયસ્ટિકની સ્થિતિના આધારે સક્રિય અથવા નિષ્ક્રિય કરવાની મંજૂરી આપે છે.

ડેટાશીટ વિગતો

ઉત્પાદક SunFounder
ભાગ નંબર XY જોયસ્ટિક મોડ્યુલ
ઓપરેટિંગ વોલ્ટેજ 3.3 V – 5 V
રેઝિસ્ટર મૂલ્ય 10 kΩ (દરેક અક્ષ)
મહત્તમ વિદ્યુતપ્રવાહ 20 mA
સ્વિચ પ્રકાર ક્ષણિક પુશ બટન
પરિમાણો આશરે 50 mm x 50 mm

 

  • ESP32 સાથે સુસંગતતા માટે જોયસ્ટિકને 3.3 V સાથે પાવર કરવાની ખાતરી કરો.
  • ફ્લોટિંગ ઇનપુટ્સ ટાળવા માટે સ્વિચ માટે પુલ-અપ રેઝિસ્ટરનો ઉપયોગ કરો.
  • એનાલોગ આઉટપુટને ESP32 ના ADC પિન સાથે જોડો (X માટે 34, Y માટે 35).
  • ખોટા ટ્રિગરિંગને રોકવા માટે સ્વિચ માટે ડિબાઉન્સ મિકેનિઝમનો ઉપયોગ કરો.
  • વોલ્ટેજ સ્તરોનું નિરીક્ષણ કરો જેથી ખાતરી થાય કે તે સલામત ઓપરેટિંગ મર્યાદામાં રહે છે.

વાયરિંગ સૂચનાઓ

ESP32-26-xy-joystick-wiring

જોયસ્ટિકને ESP32 સાથે વાયર કરવા માટે, જોયસ્ટિકમાંથી ગ્રાઉન્ડ પિનને ESP32 પર ગ્રાઉન્ડ પિન સાથે જોડીને શરૂ કરો. આગળ, જોયસ્ટિકના VCC પિનને ESP32 પર 3.3 V પિન સાથે જોડો. જોયસ્ટિકમાં બે એનાલોગ આઉટપુટ પિન છે: X-અક્ષ આઉટપુટ (જેને VRX તરીકે લેબલ કરેલ છે) ને ESP32 પર પિન 34 સાથે અને Y-અક્ષ આઉટપુટ (જેને VRY તરીકે લેબલ કરેલ છે) ને પિન 35 સાથે જોડો.

સ્વિચ આઉટપુટ માટે, સ્વિચ પિનને ESP32 પર પિન 33 સાથે જોડો. આ પિન બટન દબાવવાને ડિજિટલ ઇનપુટ તરીકે વાંચશે. ખાતરી કરો કે વિક્ષેપિત સમસ્યાઓ ટાળવા માટે જોડાણો સુરક્ષિત છે. જો તમારી વાયરિંગ વિડિઓ (વિડિઓમાં 02:30 પર) કરતાં અલગ હોય, તો એનાલોગ અને ડિજિટલ જોડાણો માટે સમાન સિદ્ધાંતોનું પાલન કરીને તે મુજબ અનુકૂલન કરો.

કોડ ઉદાહરણો અને વોકથ્રુ

કોડમાં, આપણે જોયસ્ટિક પિન માટે સ્થિરાંકો વ્યાખ્યાયિત કરીને શરૂ કરીએ છીએ. ઓળખકર્તાઓ xAxis, yAxis, અને btn અનુક્રમે 34, 35, અને 33 પર સેટ કરેલા છે. આ પ્રોગ્રામ દરમિયાન આ પિનનો સંદર્ભ લેવાનું સરળ બનાવે છે.

#define xAxis 34
#define yAxis 35
#define btn 33

setup() ફંક્શનમાં, આપણે સીરિયલ કમ્યુનિકેશન શરૂ કરીએ છીએ અને બટન પિન મોડને ઇનપુટ પર સેટ કરીએ છીએ. આ ESP32 ને જોયસ્ટિકમાંથી ડેટા વાંચવા અને તેને સીરિયલ મોનિટર પર મોકલવા માટે તૈયાર કરે છે.

void setup() {
  Serial.begin(115200);
  pinMode(btn, INPUT);  
}

loop() ની અંદર, આપણે analogRead() નો ઉપયોગ કરીને જોયસ્ટિકના X અને Y અક્ષો માટે એનાલોગ મૂલ્યો વાંચીએ છીએ અને તેમને xValue અને yValue માં સંગ્રહિત કરીએ છીએ. બટન સ્થિતિ digitalRead() નો ઉપયોગ કરીને વાંચવામાં આવે છે અને btnValue માં સંગ્રહિત થાય છે. છેલ્લે, આપણે આ મૂલ્યોને સીરિયલ મોનિટર પર છાપીએ છીએ.

void loop() {
  int xValue = analogRead(xAxis);
  int yValue = analogRead(yAxis); 
  int btnValue = digitalRead(btn);
  
  Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
  delay(300);  // Delay between reads
}

આ લૂપ સતત મૂલ્યોને અપડેટ કરે છે, જોયસ્ટિક હલનચલન અને બટન દબાવવા પર રીઅલ-ટાઇમ પ્રતિસાદ પ્રદાન કરે છે. સંપૂર્ણ કોડ માટે, કૃપા કરીને લેખની નીચે લોડ કરેલા સંપૂર્ણ કોડનો સંદર્ભ લો.

પ્રદર્શન / શું અપેક્ષા રાખવી

જ્યારે સેટઅપ પૂર્ણ થાય અને કોડ અપલોડ થાય, ત્યારે સીરિયલ મોનિટરે X અને Y મૂલ્યો બટન સ્થિતિ સાથે પ્રદર્શિત કરવા જોઈએ. જેમ તમે જોયસ્ટિક ખસેડો છો, તેમ મૂલ્યો તે મુજબ બદલાશે, તેની સ્થિતિ દર્શાવે છે. બટન દબાવવાથી તેની સ્થિતિ ઉચ્ચ અને નીચી વચ્ચે ટૉગલ થશે.

સામાન્ય ભૂલોમાં ખોટું વાયરિંગ સામેલ છે, જેના કારણે ફ્લોટિંગ ઇનપુટ્સ અથવા જોયસ્ટિકમાંથી કોઈ પ્રતિસાદ ન મળે. ખાતરી કરો કે યોગ્ય પિન વપરાયેલ છે અને સ્વિચ માટે પુલ-અપ રેઝિસ્ટર લાગુ કરવામાં આવ્યા છે. આ વર્તણૂકોના વ્યવહારુ પ્રદર્શન માટે વિડિઓ જુઓ (વિડિઓમાં 13:00 પર).

વિડિઓ ટાઇમસ્ટેમ્પ્સ

  • 00:00 શરૂઆત
  • 1:47 XY જોયસ્ટિકનો પરિચય
  • 7:32 જોયસ્ટિક મૂલ્યો માપવા
  • 8:40 વાયરિંગ સમજાવ્યું
  • 11:06 ESP32 સાથે જોયસ્ટિક માટે Arduino કોડ સમજાવ્યો
  • 14:43 Arduino IDE માં ESP32 બોર્ડ અને COM પોર્ટ પસંદ કરવું
  • 16:24 જોયસ્ટિકના સરળ ઉપયોગનું પ્રદર્શન
  • 19:20 બઝર સાથે જોયસ્ટિકની સ્થિતિ શોધવાનો કોડ
  • 21:16 સ્થિતિ શોધવાનું પ્રદર્શન

Images

joystick_schematic
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick
Language: C++
// Define constants for the x and y axis and the button pins
#define xAxis 34
#define yAxis 35
#define btn 33


void setup() {
  // Initialize serial communication at 115200 bits per second:
  Serial.begin(115200);

  // Set the mode of the button pin to input
  pinMode(btn, INPUT);  
}

void loop() {
  // Read the analog value for x,y axis
  int xValue = analogRead(xAxis);
  int yValue = analogRead(yAxis); 

  // Read the digital value from the button pin
  int btnValue = digitalRead(btn);
  
  // print out the values
  Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
  
  delay(300);  // Delay between reads
}

Resources & references

Files📁

No files available.