इस ट्यूटोरियल में हम Arduino UNO को DC मोटर इंटरफ़ेस करने जा रहे हैं और PWM (पल्स विथ मॉड्यूलेशन) कॉन्सेप्ट का उपयोग कर इसे नियंत्रित करते हैं । निरंतर वोल्टेज पर परिवर्तनशील वोल्टेज प्राप्त करने के लिए यह सुविधा UNO में सक्षम है। पीडब्लूएम की विधि यहां बताई गई है; जैसा कि चित्र में दिखाया गया है एक साधारण सर्किट पर विचार करें।
यदि बटन को दबाया जाता है यदि आंकड़ा है, तो मोटर घूमना शुरू कर देगा और बटन दबाए जाने तक यह गति में रहेगा। यह दबाव निरंतर है और आंकड़े की पहली लहर में दर्शाया गया है। यदि किसी मामले में, विचार करें तो बटन को 8ms के लिए दबाया जाता है और 10ms के चक्र पर 2ms के लिए खोला जाता है, इस मामले के दौरान मोटर को पूर्ण 9V बैटरी वोल्टेज का अनुभव नहीं होगा क्योंकि बटन केवल 8ms के लिए दबाया जाता है, इसलिए आरएमएस टर्मिनल के पार मोटर लगभग 7V होगी। इस कम RMS वोल्टेज के कारण मोटर घूमेगा लेकिन कम गति से। अब औसत 10ms = की अवधि पर बारी चालू करें / समय चालू करें (समय चालू करें + बंद करें समय), इसे कर्तव्य चक्र कहा जाता है और यह 80% (8 / (8 + 2)) है।
पहले मामले की तुलना में दूसरे और तीसरे मामलों में बटन को और भी कम समय तक दबाया जाता है। इस वजह से, मोटर टर्मिनलों पर आरएमएस टर्मिनल वोल्टेज और भी कम हो जाता है। इस कम वोल्टेज के कारण मोटर की गति और भी कम हो जाती है। गति चक्र के साथ गति में यह कमी एक बिंदु तक लगातार होती है, जहां मोटर टर्मिनल वोल्टेज मोटर चालू करने के लिए पर्याप्त नहीं होगा।
तो इसके द्वारा हम निष्कर्ष निकाल सकते हैं कि PWM का उपयोग मोटर की गति को अलग करने के लिए किया जा सकता है।
आगे जाने से पहले हमें H-BRIDGE पर चर्चा करने की आवश्यकता है। अब इस सर्किट में मुख्य रूप से दो कार्य होते हैं, पहला है डीसी मोटर को कम बिजली नियंत्रण संकेतों से चलाना और दूसरा डीसी मोटर के घूमने की दिशा को बदलना ।
आकृति 1
चित्र 2
हम सभी जानते हैं कि डीसी मोटर के लिए, रोटेशन की दिशा बदलने के लिए, हमें मोटर के आपूर्ति वोल्टेज के ध्रुवों को बदलना होगा। इसलिए ध्रुवीयताओं को बदलने के लिए हम एच-ब्रिज का उपयोग करते हैं। अब उपरोक्त आंकड़ा 1 में हमारे पास चार स्विच हैं। जैसा कि आकृति 2 में दिखाया गया है, मोटर के घूमने के लिए A1 और A2 बंद हैं। इस वजह से, मोटर दाएं से बाएं ओर प्रवाहित होती है, जैसा कि चित्र 3 के 2 एन डी हिस्से में दिखाया गया है । अब विचार करें कि मोटर दक्षिणावर्त दिशा में घूमती है। अब यदि स्विच A1 और A2 खोले जाते हैं, तो B1 और B2 बंद हो जाते हैं। मोटर के माध्यम से धारा 1 सेंट में दिखाए गए अनुसार बाएं से दाएं बहती है आकृति ३ का भाग। वर्तमान प्रवाह की यह दिशा पहले एक के विपरीत है और इसलिए हम मोटर टर्मिनल पर एक विपरीत क्षमता को पहले एक के रूप में देखते हैं, इसलिए मोटर विरोधी घड़ी को घुमाता है। यह एक H-BRIDGE कैसे काम करता है। हालांकि कम बिजली की मोटरों को H-BRIDGE IC L293D द्वारा चलाया जा सकता है।
L293D एक H-BRIDGE IC है जो कम पावर वाली डीसी मोटर्स को चलाने के लिए बनाया गया है और इसे फिगर में दिखाया गया है। इस आईसी में दो एच-ब्रिज हैं और इसलिए यह दो डीसी मोटर चला सकता है। इसलिए इस आईसी का उपयोग माइक्रोकंट्रोलर के संकेतों से रोबोट की मोटरों को चलाने के लिए किया जा सकता है।
अब जैसा कि इस आईसी के सामने चर्चा है कि डीसी मोटर के रोटेशन की दिशा को बदलने की क्षमता है। यह INPUT1 और INPUT2 पर वोल्टेज के स्तर को नियंत्रित करके हासिल किया जाता है।
पिन सक्षम करें |
इनपुट पिन १ |
इनपुट पिन २ |
मोटर दिशा |
उच्च |
कम |
उच्च |
दायें मुड़ो |
उच्च |
उच्च |
कम |
बांए मुड़िए |
उच्च |
कम |
कम |
रुकें |
उच्च |
उच्च |
उच्च |
रुकें |
तो जैसा कि ऊपर चित्र में दिखाया गया है, दक्षिणावर्त रोटेशन के लिए 2 ए अधिक होना चाहिए और 1 ए कम होना चाहिए। इसी तरह एंटी क्लॉकवाइज के लिए 1 ए ज्यादा और 2 ए कम होना चाहिए।
जैसा कि चित्र में दिखाया गया है, Arduino UNO में 6PWM चैनल हैं, इसलिए हम इनमें से किसी भी छह पिन पर PWM (परिवर्तनीय वोल्टेज) प्राप्त कर सकते हैं। इस ट्यूटोरियल में हम PW3 आउटपुट के रूप में PIN3 का उपयोग करने जा रहे हैं।
हार्डवेयर: ARDUINO UNO, बिजली की आपूर्ति (5v), 100uF संधारित्र, एलईडी, बटन (दो टुकड़े), 10K two रोकनेवाला (दो टुकड़े)।
सॉफ्टवेयर: arduino IDE (Arduino nightly)।
सर्किट आरेख
सर्किट ऊपर दिखाए गए सर्किट आरेख के अनुसार ब्रेडबोर्ड में जुड़ा हुआ है। हालांकि एलईडी टर्मिनलों को जोड़ने के दौरान किसी को ध्यान देना चाहिए। हालाँकि बटन इस मामले में उछलता हुआ प्रभाव दिखाते हैं, लेकिन इसमें काफी त्रुटियां नहीं होती हैं, इसलिए हमें इस समय चिंता करने की आवश्यकता नहीं है।
UNO से PWM आसान है, सामान्य अवसरों पर PWM सिग्नल के लिए ATMEGA कंट्रोलर सेट करना आसान नहीं है, हमें एक सटीक सिग्नल के लिए कई रजिस्टरों और सेटिंग्स को परिभाषित करना होगा, हालाँकि ARDUINO में हमें उन सभी चीजों से निपटना नहीं है।
डिफ़ॉल्ट रूप से सभी हेडर फाइलें और रजिस्टर ARDUINO IDE द्वारा पूर्वनिर्धारित होते हैं, हमें बस उन्हें कॉल करने की आवश्यकता होती है और यह है कि हमारे पास उचित पिन पर PWM आउटपुट होगा।
अब एक उपयुक्त पिन पर PWM आउटपुट प्राप्त करने के लिए, हमें तीन चीजों पर काम करने की आवश्यकता है,
|
पहले हमें छह पिन से PWM आउटपुट पिन चुनने की जरूरत है, उसके बाद हमें उस पिन को आउटपुट के रूप में सेट करना होगा।
इसके बाद हमें फ़ंक्शन "एनालॉगवर्इट (पिन, वैल्यू)" को कॉल करके UNO की PWM सुविधा को सक्षम करने की आवश्यकता है। यहाँ 'पिन' उस पिन नंबर का प्रतिनिधित्व करता है जहाँ हमें PWM आउटपुट की आवश्यकता होती है जिसे हम '3' के रूप में डाल रहे हैं। इसलिए PIN3 में हमें PWM आउटपुट मिल रहा है।
मान 0, (हमेशा बंद) और 255 (हमेशा चालू) के बीच, ऑन ड्यूटी चक्र है। हम बटन प्रेस द्वारा इस संख्या को बढ़ाते और घटाते जा रहे हैं।
UNO का अधिकतम रिज़ॉल्यूशन "8" है, कोई आगे नहीं जा सकता इसलिए मानों 0-255 है। हालाँकि, कमांड "analogWriteResolution ()" का उपयोग करके PWM के रिज़ॉल्यूशन को कम कर सकता है, कोष्ठक में 4-8 से मान दर्ज करके, हम इसके मूल्य को चार बिट PWM से आठ बिट PWM में बदल सकते हैं।
स्विच डीसी मोटर के लिए रोटेशन की दिशा बदलने के लिए है।