- आवश्यक सामग्री
- सर्किट आरेख
- जॉयस्टिक मॉड्यूल
- कोड और स्पष्टीकरण
- Arduino के साथ जॉयस्टिक का उपयोग करके एलईडी को नियंत्रित करना
जोस्टिक शब्द सुनते ही हमारे दिमाग में सबसे पहली चीज आती है गेम कंट्रोलर। हां, यह बिल्कुल वैसा ही है और इसका उपयोग गेमिंग उद्देश्य के लिए किया जा सकता है। गेमिंग के अलावा, इसमें DIY इलेक्ट्रॉनिक्स में कई अन्य एप्लिकेशन हैं। यह जॉयस्टिक क्रमशः एक्स और वाई विमान के लिए दो पोटेंशियोमीटर के संयोजन के अलावा कुछ भी नहीं है। यह पोटेंशियोमीटर के माध्यम से वोल्टेज को पढ़ता है और Arduino को एनालॉग मूल्य देता है, और जब हम जॉयस्टिक शाफ्ट (जो केवल पोटेंशियोमीटर पॉइंटर है) को स्थानांतरित करते हैं, तो एनालॉग मूल्य बदल जाता है।
इस सर्किट में, हम जॉयस्टिक के आंदोलन के अनुसार चार एल ई डी को नियंत्रित करके जॉयस्टिक को अरुडिनो के साथ जोड़ रहे हैं । हमने 4 एल ई डी को इस तरह से रखा है कि यह जॉयस्टिक शाफ्ट आंदोलन की दिशा का प्रतिनिधित्व करता है। इस जॉयस्टिक में एक पुश बटन भी है जिसे विभिन्न अन्य उद्देश्यों के लिए इस्तेमाल किया जा सकता है या इसे बेकार छोड़ा जा सकता है। जॉयस्टिक के स्विच के साथ एक सिंगल एलईडी भी लगी हुई है, क्योंकि जॉयस्टिक बटन दबाया गया है कि सिंगल एलईडी चालू हो जाएगा।
आवश्यक सामग्री
- Arduino UNO
- जॉयस्टिक मॉड्यूल
- एल ई डी -5
- रेज़िस्टर: 100ohm-3
- तारों को जोड़ना
- ब्रेड बोर्ड
सर्किट आरेख
जॉयस्टिक मॉड्यूल
जॉयस्टिक विभिन्न आकारों और आकारों में उपलब्ध हैं। एक ठेठ जॉयस्टिक मॉड्यूल नीचे दिए गए आंकड़े में दिखाया गया है। यह जॉयस्टिक मॉड्यूल आमतौर पर एनालॉग आउटपुट प्रदान करता है और इस मॉड्यूल द्वारा प्रदान किए गए आउटपुट वोल्टेज उस दिशा के अनुसार बदलते रहते हैं जिसमें हम इसे स्थानांतरित करते हैं। और हम कुछ माइक्रोकंट्रोलर का उपयोग करके इन वोल्टेज परिवर्तनों की व्याख्या करके आंदोलन की दिशा प्राप्त कर सकते हैं। पहले हमने AVR और रास्पबेरी पाई के साथ जॉयस्टिक को बाधित किया था।
इस जॉयस्टिक मॉड्यूल में दो अक्ष हैं जैसा कि आप देख सकते हैं। वे एक्स-एक्सिस और वाई-एक्सिस हैं। जॉयस्टिक का प्रत्येक अक्ष एक पोटेंशियोमीटर या पॉट पर आरूढ़ है। इन बर्तनों के मध्य बिंदु को Rx और Ry के रूप में बाहर निकाला जाता है। तो Rx और Ry इन बर्तनों के लिए चर अंक हैं। जब जॉयस्टिक स्टैंडबाय में होता है, तो Rx और Ry वोल्टेज विभक्त के रूप में कार्य करते हैं।
जब जॉयस्टिक को क्षैतिज अक्ष के साथ स्थानांतरित किया जाता है, तो Rx पिन पर वोल्टेज बदल जाता है। इसी तरह, जब इसे ऊर्ध्वाधर अक्ष के साथ स्थानांतरित किया जाता है, तो Ry पिन पर वोल्टेज बदल जाता है। तो हम दो एडीसी आउटपुट पर जॉयस्टिक की चार दिशाएं हैं । जब छड़ी को स्थानांतरित किया जाता है, तो प्रत्येक पिन पर वोल्टेज दिशा के आधार पर उच्च या निम्न जाती है।
यहां, हम इस जॉयस्टिक मॉड्यूल को Arduino UNO के साथ जोड़ रहे हैं जो एक इनबिल्ट एडीसी (एनालॉग से डिजिटल कनवर्टर) तंत्र के साथ आता है जैसा कि वीडियो में अंत में दिखाया गया है । यहाँ Arduino के ADC का उपयोग करने के बारे में अधिक जानें।
कोड और स्पष्टीकरण
पूरा Arduino कोड अंत में उल्लिखित है।
नीचे दिए गए कोड में, हमने एनालॉग पिन A0 और A1 के लिए क्रमशः जॉयस्टिक मॉड्यूल के एक्स और वाई अक्ष को परिभाषित किया है।
#define joyX A0 #define joyY A १
अब, नीचे दिए गए कोड में, हम जॉयस्टिक मॉड्यूल के स्विच (पुश बटन) के लिए Arduino के पिन 2 को इनिशियलाइज़ कर रहे हैं और बटनस्टैट और बटनस्टेट 1 का मान शुरू में 0 होगा।
int बटन = 2; int buttonState = 0; int buttonState1 = 0;
नीचे दिए गए कोड में, हम बॉड दर को 9600 पर सेट कर रहे हैं और पिन 7 को आउटपुट पिन और बटन पिन को इनपुट पिन के रूप में परिभाषित किया है। प्रारंभ में, बटन पिन उच्च रहेगा जब तक स्विच दबाएगा।
शून्य सेटअप () {pinMode (7, OUTPUT); पिनमोड (बटन, INPUT); digitalWrite (बटन, उच्च); सीरियल.बेगिन (9600); }
यहां, इस कोड में हम एनालॉग पिन A0 और A1 से मूल्यों को पढ़ रहे हैं और क्रमिक रूप से छपाई कर रहे हैं।
int xValue = analogRead (joyX); int yValue = analogRead (joyY); सीरियल.प्रिंट (xValue); Serial.print ("\ t"); सीरीयल.प्रिंट (yValue);
जॉयस्टिक शाफ्ट के आंदोलन के अनुसार एलईडी चालू और बंद करने के लिए स्थितियां नीचे दिए गए कोड में परिभाषित की गई हैं। यहाँ हम Arduino के पिन A0 और A1 में वोल्टेज के अनुरूप मान ले रहे हैं। जैसे ही हम जॉयस्टिक को आगे बढ़ाएंगे ये एनालॉग वैल्यू बदल जाएंगे और जॉयस्टिक के मूवमेंट के अनुसार एलईडी चमक जाएगी।
यह स्थिति जॉयस्टिक शाफ्ट इन-द एक्सिस दिशा के संचलन के लिए है
अगर (xValue> = 0 && yValue <= 10) {digitalWrite (10, उच्च); } और {digitalWrite (10, LOW);;
यह स्थिति जोस्टिक शाफ्ट इन-एक्स अक्ष दिशा के संचलन के लिए है
अगर (xValue <= 10 && yValue> = 500) {digitalWrite (11, उच्च); } और {digitalWrite (11, LOW);;
यह स्थिति + एक्स अक्ष दिशा में जॉयस्टिक शाफ्ट के संचलन के लिए है
if (xValue> = 1020 && yValue> = 500) {digitalWrite (9, उच्च); } और {digitalWrite (9, LOW);;
यह स्थिति + वाई अक्ष दिशा में जॉयस्टिक शाफ्ट के संचलन के लिए है
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, High); } और {digitalWrite (8, LOW);;
जब हम जॉयस्टिक शाफ्ट को तिरछे स्थानांतरित करते हैं तो एक स्थिति आती है जब एक्स और वाई का एनालॉग मूल्य क्रमशः 1023 और 1023 होगा, पिन 9 और पिन 8 एलईडी दोनों चमकेंगे। क्योंकि यह एलईडी की स्थिति को संतुष्ट करता है। इसलिए, उस बेमेल को हटाने के लिए हमने एक शर्त दी है कि यदि (X, Y) का मान (1023, 1023) है तो दोनों LED ऑफ स्थिति में रहेंगे।
if (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, LOW); }
नीचे की स्थिति का उपयोग पुशबटन स्विच से जुड़े एलईडी को संचालित करने के लिए किया जाता है । जैसा कि हम जॉयस्टिक स्विच दबाते हैं एलईडी चालू हो जाएगी और बटन जारी होने तक कुंडी लगाएगा। जॉयस्टिक मॉड्यूल पर पुश बटन स्विच का उपयोग करने के लिए इसका वैकल्पिक।
if (buttonState == LOW) {Serial.println ("स्विच = हाई"); digitalWrite (7, उच्च); } और {digitalWrite (7, LOW);;
Arduino के साथ जॉयस्टिक का उपयोग करके एलईडी को नियंत्रित करना
Arduino पर कोड अपलोड करने और सर्किट आरेख के अनुसार घटकों को जोड़ने के बाद, हम अब जॉयस्टिक के साथ एल ई डी को नियंत्रित कर सकते हैं। हम जॉयस्टिक शाफ्ट आंदोलन के अनुसार प्रत्येक दिशा में चार एलईडी चालू कर सकते हैं। जोस्टिक इसके अंदर दो पोटेंशियोमीटर है, एक एक्स-एक्सिस मूवमेंट के लिए है और दूसरा वाई-एक्सिस मूवमेंट के लिए है। प्रत्येक पोटेंशियोमीटर Arduino से 5v हो रहा है। तो जैसा कि हम जॉयस्टिक को आगे बढ़ाते हैं, वोल्टेज मान बदल जाएगा और एनालॉग पिन ए 0 और ए 1 पर एनालॉग मूल्य भी बदल जाएगा।
तो, Arduino से, हम X और Y अक्ष के लिए एनालॉग मूल्य पढ़ रहे हैं और जॉयस्टिक के अक्ष आंदोलन के अनुसार एल ई डी चालू कर रहे हैं। जोस्टिक मॉड्यूल पर एक पुश बटन स्विच का उपयोग सर्किट में एकल एलईडी को नियंत्रित करने के लिए किया जाता है जैसा कि नीचे दिए गए वीडियो में दिखाया गया है।