Arduino के साथ सर्वो मोटर को कैसे नियंत्रित करें

Arduino Ke Satha Sarvo Motara Ko Kaise Niyantrita Karem



सर्वो मोटर्स एक प्रकार का विद्युत उपकरण है जो किसी वस्तु की स्थिति को बड़ी सटीकता के साथ बदल या घुमा सकता है। शुरू में उनका उपयोग आरसी विमान के पंखों को नियंत्रित करने के लिए किया गया था, बाद में उन्होंने रोबोटिक्स, ह्यूमनॉइड रोबोट और कई स्वचालन परियोजनाओं के लिए अपना रास्ता बना लिया। स्टेपर मोटर्स के विपरीत उनकी गति 0o से 180o के बीच सीमित होती है।

आमतौर पर, सर्वो मोटर्स में हथियार होते हैं जिन्हें Arduino का उपयोग करके नियंत्रित किया जा सकता है। सर्वो मोटर्स में एक नियंत्रण प्रणाली होती है जो प्रदान करती है प्रतिक्रिया मोटर शाफ्ट की वर्तमान स्थिति के बारे में यह प्रतिक्रिया बड़ी सटीकता से आगे बढ़ने की अनुमति देती है।

सर्वो मोटर पिनआउट

आमतौर पर, अधिकांश सर्वो मोटर्स में तीन पिन होते हैं:







  • वीसीसी पिन (आम तौर पर लाल 5वी)
  • GND पिन (सामान्यतः काला 0V)
  • इनपुट सिग्नल पिन (Arduino से PWM सिग्नल प्राप्त करें)



सर्वो मोटर का कार्य

हम Vcc पिन को 5V और GND पिन को 0V से जोड़कर सर्वो मोटर को नियंत्रित कर सकते हैं। पीले रंग के टर्मिनल पर, हम प्रदान करते हैं a पीडब्लूएम सिग्नल जो सर्वो मोटर के घूर्णन कोण को नियंत्रित करता है। PWM सिग्नल की चौड़ाई हमें वह कोण देती है जिस पर मोटर अपनी भुजा को घुमाएगी।



यदि हम सर्वो मोटर्स के डेटाशीट को देखें, तो हमें निम्नलिखित पैरामीटर मिलते हैं:





  • पीडब्लूएम सिग्नल समय अवधि
  • पीडब्लूएम के लिए न्यूनतम चौड़ाई
  • पीडब्लूएम के लिए अधिकतम चौड़ाई

ये सभी पैरामीटर Arduino Servo लाइब्रेरी में पूर्वनिर्धारित हैं।

Arduino के साथ सर्वो मोटर्स

Arduino के साथ सर्वो मोटर्स को नियंत्रित करना बहुत आसान है, इसके लिए धन्यवाद सर्वो पुस्तकालय जो हमें जरूरत के अनुसार हमारे कोड को अनुकूलित करने में मदद करता है और हमें अपने वांछित कोण पर सर्वो आर्म को घुमाने की अनुमति देता है।



ऊपर बताए गए तीनों पैरामीटर सर्वो लाइब्रेरी में तय किए गए हैं। इन मापदंडों का उपयोग करके, हम निम्नलिखित तरीके से सर्वो मोटर के कोण को नियंत्रित कर सकते हैं:

  • यदि PWM सिग्नल की चौड़ाई = WIDTH_MAX, सर्वो 180o . तक घूमेगा
  • यदि PWM सिग्नल की चौड़ाई = WIDTH_MIIN, सर्वो 0o . तक घूमेगा
  • यदि PWM सिग्नल की चौड़ाई बीच में है WIDTH_MAX और WIDTH_MIN , सर्वो मोटर 0o और 180o . के बीच घूमेगी

हम कुछ Arduino पिन पर वांछित PWM सिग्नल उत्पन्न कर सकते हैं। PWM सिग्नल सर्वो मोटर के इनपुट सिग्नल पिन पर दिया जाएगा। सर्वो के शेष दो पिनों को 5v और Arduino के GND से जोड़ना।

Arduino का उपयोग करके सर्वो मोटर को कैसे नियंत्रित करें

यहां मैं समझाऊंगा कि कैसे हम Arduino का उपयोग करके अपनी सर्वो मोटर को कनेक्ट और प्रोग्राम कर सकते हैं। जो तुम्हे चाहिए वो है:

  • अरुडिनो यूएनओ
  • यूएसबी बी केबल
  • सर्वो मोटर
  • जम्पर तार

Arduino के साथ सर्वो प्रोग्राम कैसे करें

निम्नलिखित कुछ सरल कदम हैं:

स्टेप 1: पूर्वनिर्धारित सर्वो पुस्तकालय शामिल करें:

# शामिल < सर्वो.एच >

चरण दो: सर्वो ऑब्जेक्ट बनाएं:

सर्वो मायसर्वो;

युक्ति: यदि आप एक से अधिक सर्वो मोटर्स को नियंत्रित कर रहे हैं, तो आपको अधिक सर्वो ऑब्जेक्ट बनाने होंगे:

सर्वो myservo1;
सर्वो myservo2;

चरण 3: Arduino Uno पर कंट्रोल पिन (9) सेट करें जो सर्वो के इनपुट सिग्नल पोर्ट को PWM सिग्नल भेजता है:

myservo.attach ( 9 ) ;

चरण 4: सर्वो मोटर कोण को वांछित मान पर घुमाएं उदाहरण के लिए 90o:

myservo.write ( स्थिति ) ;

Arduino कोड

से सर्वो मोटर उदाहरण कार्यक्रम खोलें फ़ाइल>उदाहरण>सर्वो>स्वीप , एक नई विंडो खुलेगी जो हमें हमारा सर्वो स्केच दिखाएगी:

#शामिल करें <सर्वो.एच>

सर्वो मायसर्वो; // सर्वो वस्तु बनाई गई है के लिये सर्वो मोटर को नियंत्रित करना
इंट पॉज़ = 0 ; // सर्वो स्थिति को स्टोर करने के लिए एक नया चर बनाया जाता है
व्यर्थ व्यवस्था ( ) {
myservo.attach ( 9 ) ; // यह करेगा समूह अरुडिनो पिन 9 के लिये पीडब्लूएम आउटपुट
}
शून्य लूप ( ) {
के लिये ( स्थिति = 0 ; स्थिति = 0 ; स्थिति -= 1 ) { // से चला जाता है 180 प्रति 0 डिग्री
myservo.write ( स्थिति ) ; // सर्वो को 'स्थिति' स्थिति में जाने के लिए कहें
देरी ( 5 ) ; // वेट्स के लिये 5 एमएस तो सर्वो स्थिति तक पहुंच सकता है
}
}

एक बार प्रोग्राम संकलित और अपलोड हो जाने के बाद, सर्वो मोटर धीरे-धीरे शुरुआती स्थिति से 0 डिग्री से 180 डिग्री तक घूमना शुरू कर देगी, चरणों की तरह एक समय में एक डिग्री। जब मोटर 180 डिग्री रोटेशन पूरा कर लेता है, तो यह विपरीत दिशा में अपने शुरुआती बिंदु यानी 0 डिग्री की ओर घूमना शुरू कर देगा।

schematics

पोटेंशियोमीटर का उपयोग करके सर्वो मोटर को कैसे नियंत्रित करें

हम हाथ से सर्वो मोटर की स्थिति को भी नियंत्रित कर सकते हैं। ऐसा करने के लिए हमें एक की आवश्यकता है तनाव नापने का यंत्र . पोटेंशियोमीटर में तीन पिन होते हैं। दो बाहरी पिनों को Arduino के 5V Vcc और GND से और मध्य एक को Arduino बोर्ड पर A0 पिन से कनेक्ट करें।

पोटेंशियोमीटर के साथ सर्वो प्रोग्राम कैसे करें

पोटेंशियोमीटर के लिए अधिकांश स्केच पिछले उदाहरण के समान है। केवल अंतर एक नया चर है वैल तथा सबपिन कोड के सेटअप और लूप सेक्शन से पहले परिभाषित किया गया है।

इंट पोटपिन = ए0;
इंट वैल;

लूप सेक्शन में एनालॉग पिन A0 का उपयोग फ़ंक्शन के साथ पोटेंशियोमीटर के मानों को पढ़ने के लिए किया जाता है एनालॉग रीड () . Arduino बोर्डों में 10-बिट ADC (डिजिटल कनवर्टर के अनुरूप) होता है जो हमें 0 और 1023 के बीच मान देता है जो इस बात पर निर्भर करता है कि पोटेंशियोमीटर किस स्थिति में है:

वैल = एनालॉगरीड ( सबपिन ) ;

अंत में, हमने उपयोग किया है नक्शा() सर्वो के कोण के अनुसार 0 से 1023 तक की संख्याओं को फिर से मैप करने के लिए कार्य करता है क्योंकि हम जानते हैं कि सर्वो मोटर्स केवल 00 और 1800 के बीच ही घूम सकती हैं।

वैल = नक्शा ( वैल, 0 , 1023 , 0 , 180 ) ;

Arduino कोड

Arduino IDE में उपलब्ध ओपन नॉब स्केच, यहां जाएं फ़ाइलें>उदाहरण>सर्वो>घुंडी . एक नई विंडो खुलेगी जो हमें सर्वो के लिए हमारा नॉब स्केच दिखाती है:

#शामिल करें <सर्वो.एच>
सर्वो मायसर्वो; // सर्वो ऑब्जेक्ट नाम बनाना myservo
इंट पोटपिन = ए0; // एनालॉग पिन को परिभाषित करना के लिये तनाव नापने का यंत्र
इंट वैल; // चर कौन सा मर्जी पढ़ना एनालॉग पिन मान के लिये तनाव नापने का यंत्र

व्यर्थ व्यवस्था ( ) {
myservo.attach ( 9 ) ; // परिभाषित पिन 9 के लिये Arduino पर सर्वो का PWM इनपुट सिग्नल
}
शून्य लूप ( ) {
वैल = एनालॉगरीड ( सबपिन ) ; // पोटेंशियोमीटर से मान पढ़ता है ( के बीच मूल्य 0 तथा 1023 )
वैल = नक्शा ( वैल, 0 , 1023 , 0 , 180 ) ; // सर्वो के साथ उपयोग करने के लिए मान को मापें ( के बीच मूल्य 0 तथा 180 )
myservo.write ( वैल ) ; // स्केल किए गए मान के साथ सर्वो स्थिति सेट करता है
देरी ( पंद्रह ) ; // वेट्स के लिये सर्वो को स्थिति में लाने के लिए
}

उपरोक्त कोड हमें पोटेंशियोमीटर का उपयोग करके सर्वो मोटर शाफ्ट को नियंत्रित करने में मदद करेगा, शाफ्ट 0 और 180 डिग्री के बीच घूमेगा। हम इसका उपयोग करके सर्वो की दिशा के साथ-साथ गति भी बनाए रख सकते हैं।

सर्किट आरेख

मैं Arduino के साथ कितने सर्वो मोटर्स कनेक्ट कर सकता हूं?

सर्वो मोटर्स की अधिकतम संख्या Arduino UNO संभाल सकता है, सर्वो के लिए Arduino लाइब्रेरी के साथ 12 तक है, और अधिकतम 48 सर्वोस मेगा जैसे बोर्डों से जोड़ा जा सकता है।

बख्शीश: हम Arduino करंट का उपयोग करके सीधे सर्वो चला सकते हैं लेकिन याद रखें कि अगर सर्वो मोटर्स से अधिक आकर्षित होते हैं 500mA तब आपका Arduino बोर्ड स्वचालित रूप से रीसेट हो सकता है और शक्ति खो सकता है। सर्वो मोटर्स के लिए हमेशा एक समर्पित बिजली आपूर्ति का उपयोग करने की सिफारिश की जाती है।

निष्कर्ष

इस ट्यूटोरियल में, हमने Arduino के साथ सर्वो मोटर्स के कंट्रोलिंग मैकेनिज्म को कवर किया है। हमने पोटेंशियोमीटर का उपयोग करके सर्वो स्थिति और गति को नियंत्रित करने की मूल बातें कवर कीं। अब आपको सर्वो के बारे में एक विचार मिल गया है और आपके रोबोटिक्स, आरसी परियोजनाओं और सर्वो का उपयोग करके स्वचालन के लिए संभावनाएं अनंत हैं।