Arduino पोटेंशियोमीटर और रोटरी एनकोडर के बीच क्या अंतर है?

Arduino Potensiyomitara Aura Rotari Enakodara Ke Bica Kya Antara Hai



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

पोटेंशियोमीटर क्या है

पोटेंशियोमीटर एक रिओस्टेट है, या हम इसे एक परिवर्तनीय अवरोधक कह सकते हैं। प्रतिरोध का मान पोटेंशियोमीटर के शाफ्ट रोटेशन के अनुसार भिन्न होता है। पोटेंशियोमीटर केवल एक निर्धारित दूरी तक ही घूम सकता है। एनालॉग और डिजिटल दोनों पोटेंशियोमीटर हैं, लेकिन वे लगभग समान हैं। एनालॉग पोटेंशियोमीटर को Arduino, Raspberry Pi और अन्य उपकरणों पर माइक्रोकंट्रोलर के साथ इंटरफेस किया जा सकता है। एक पोटेंशियोमीटर में तीन पिन होते हैं जो इनपुट वोल्टेज पिन वीसीसी, ग्राउंड पिन जीएनडी और इनपुट सिग्नल पिन होते हैं। सिग्नल पिन Arduino को इनपुट प्रदान करता है।









रोटरी एनकोडर क्या है

रोटरी एनकोडर रोटरी नॉब की कोणीय स्थिति को समझते हैं और माइक्रोकंट्रोलर या किसी अन्य डिवाइस को सिग्नल भेजते हैं जिससे वे जुड़े हुए हैं। इसमें समान दूरी वाले संपर्क क्षेत्रों वाली एक डिस्क होती है जो एक सामान्य पिन से जुड़ी होती है। रोटरी एनकोडर में एक अंतर्निर्मित पुश बटन या रोटरी स्विच भी होता है जो विशिष्ट आवश्यकताओं के अनुसार चालू और बंद सिग्नल देता है।







रोटरी एनकोडर का पिनआउट आरेख और पिन विवरण

नीचे दिया गया चित्र रोटरी एनकोडर के पिन दिखाता है। इन पिनों का वर्णन इस प्रकार है:

आउट बी या सीएलके



यह पिन यह आउटपुट देता है कि नॉब या रोटरी एनकोडर कितनी बार घुमाया गया है। हर बार जब घुंडी घुमाई जाती है, तो सीएलके उच्च और निम्न का एक चक्र पूरा करता है। इसे एक रोटेशन के रूप में गिना जाता है।

आउट ए या डीटी

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

बदलना

स्विच पिन का उपयोग यह जांचने के लिए किया जाता है कि पुश बटन दबाया गया है या नहीं।

वी.सी.सी

यह पिन 5V सप्लाई से जुड़ा है

जी.एन.डी

यह पिन जमीन से जुड़ा होता है

पोटेंशियोमीटर और रोटरी एनकोडर के बीच अंतर

विनिर्देश तनाव नापने का यंत्र रोटरी कोडित्र
ROTATION पोटेंशियोमीटर को केवल एक ही दिशा में घुमाया जा सकता है, वह भी वृत्त के तीन-चौथाई भाग तक। रोटरी एनकोडर दक्षिणावर्त और वामावर्त दोनों दिशाओं में लगातार 360° घूमने में सक्षम है।
एनालॉग या डिजिटल डिवाइस पोटेंशियोमीटर ज्यादातर एक एनालॉग इनपुट डिवाइस है जो एक अवरोधक के मूल्य में परिवर्तन के माध्यम से स्थिति में परिवर्तन को मापता है रोटरी एनकोडर एक डिजिटल इनपुट डिवाइस है जो कोणीय स्थिति को महसूस करता है और डिजिटल मान प्रदान करता है।

इनपुट पदों की संख्या एक पोटेंशियोमीटर में अनंत संख्या में इनपुट स्थितियां होती हैं जिन पर मान लिया जा सकता है क्योंकि यह एक एनालॉग डिवाइस है रोटरी एनकोडर में इनपुट पदों की एक सीमित संख्या होती है।

Arduino के साथ पोटेंशियोमीटर सेट करना

रोटरी एनकोडर की तुलना में पोटेंशियोमीटर को Arduino के साथ स्थापित करना आसान है। पोटेंशियोमीटर में केवल तीन पिन VCC, GND और एक INPUT पिन होते हैं जो Arduino से जुड़े होते हैं। Arduino के साथ पोटेंशियोमीटर का इंटरफ़ेस नीचे दिखाया गया है:

Arduino में पोटेंशियोमीटर को प्रोग्राम करना रोटरी एनकोडर की तुलना में आसान है। इन दोनों के लिए नमूना सिंटैक्स कोड नीचे दिए गए हैं।

पोटेंशियोमीटर के लिए नमूना कोड

स्थिरांक पूर्णांक = A0; // इनपुट पिन घोषित करें
व्यर्थ व्यवस्था ( ) {
   पिनमोड ( पॉट, इनपुट ) ; // पोटेंशियोमीटर से लिया गया सेटअप मान जैसा इनपुट
सीरियल.शुरू ( 9600 ) ;
}
शून्य पाश ( ) {
int पोटवैल्यू = एनालॉगरीड ( मटका ) ; // पोटेंशियोमीटर द्वारा लिए गए इनपुट का मान पढ़ें
नक्शा ( पॉटवैल्यू, 0 , 1023 , 0 , 255 ) ; // मिलान के लिए इनपुट के मान को स्केल करना 8 -अंश
सीरियल.प्रिंटएलएन ( पॉटवैल्यू ) ; // वह मान प्रिंट करता है जो पोटेंशियोमीटर में इनपुट था
देरी ( 100 ) ;
}

पोटेंशियोमीटर कोड बहुत आसान और सरल है। Arduino के एनालॉग इनपुट पिन को केवल पोटेंशियोमीटर से इनपुट लेने के लिए घोषित किया जाता है, और फिर एनालॉगरीड() और मैप() फ़ंक्शन का उपयोग पोटेंशियोमीटर से रीडिंग का सटीक मान पढ़ने और देने के लिए किया जाता है।

Arduino के साथ रोटरी एनकोडर को इंटरफ़ेस करना

रोटरी एनकोडर में पाँच पिन होते हैं। रोटरी एनकोडर का VCC और GND Arduino से जुड़े हुए हैं। शेष पिन CLK, DT, और SW Arduino के डिजिटल इनपुट पिन से जुड़े हैं।

रोटरी एनकोडर के लिए Arduino कोड

// रोटरी एनकोडर इनपुट
#सीएलके_पिन 2 को परिभाषित करें
#डीटी_पिन 3 को परिभाषित करें
#SW_PIN 4 को परिभाषित करें
पूर्णांक काउंटर = 0 ;
int currentCLKSate;
पूर्णांक अंतिमCLKState;
स्ट्रिंग करंटडायरेक्शन = '' ;
अहस्ताक्षरित लंबे समय तक चलने वाला बटनप्रेसटाइम = 0 ;
व्यर्थ व्यवस्था ( ) {
// एनकोडर पिन सेट करें जैसा आदानों
    पिनमोड ( सीएलके_पिन, इनपुट ) ;
    पिनमोड ( डीटी_पिन, इनपुट ) ;
    पिनमोड ( SW_PIN, INPUT_PULLUP ) ;
// सेटअप सीरियल मॉनिटर
सीरियल.शुरू ( 9600 ) ;
// सीएलके की प्रारंभिक स्थिति पढ़ें
अंतिमसीएलकेस्टेट = डिजिटलरीड ( सीएलके_पिन ) ;
}
शून्य पाश ( ) {
// सीएलके की वर्तमान स्थिति पढ़ें
वर्तमानसीएलकेस्टेट = डिजिटलरीड ( सीएलके_पिन ) ;
// अगर अंतिम और सीएलके की वर्तमान स्थिति भिन्न है, तब एक नाड़ी उत्पन्न हुई
// केवल प्रतिक्रिया दें 1 दोहरी गिनती से बचने के लिए राज्य परिवर्तन
अगर ( वर्तमानसीएलकेस्टेट ! = अंतिमCLKState && वर्तमानसीएलकेस्टेट == 1 ) {
// यदि डीटी स्थिति सीएलके स्थिति से भिन्न है, तब
// एनकोडर वामावर्त घूम रहा है, इसलिए कमी
अगर ( डिजिटल पढ़ें ( डीटी_पिन ) ! = वर्तमानसीएलकेस्टेट ) {
विरोध करना--;
वर्तमानदिशा = 'सीसीडब्ल्यू' ;
} अन्य {
// एनकोडर दक्षिणावर्त घूम रहा है, इसलिए वृद्धि
काउंटर++;
वर्तमानदिशा = 'सीडब्ल्यू' ;
}
सीरियल.प्रिंट ( 'रोटेशन दिशा:' ) ;
सीरियल.प्रिंट ( वर्तमानदिशा ) ;
सीरियल.प्रिंट ( ' | काउंटर वैल्यू: ' ) ;
सीरियल.प्रिंटएलएन ( विरोध करना ) ;
}
// याद करो अंतिम सीएलके राज्य
अंतिमसीएलकेस्टेट = वर्तमानसीएलकेस्टेट;
// बटन स्थिति पढ़ें
int बटनस्टेट = डिजिटलरीड ( SW_पिन ) ;
// यदि हमें कम सिग्नल मिलता है, तो बटन दबाया जाता है
अगर ( बटनस्टेट == कम ) {
// यदि 50ms बीत चुके हैं अंतिम कम पल्स, इसका मतलब है कि
// बटन दबाया गया, छोड़ा गया और दोबारा दबाया गया
अगर ( मिली सेकंड ( ) - लास्टबटनप्रेसटाइम > पचास ) {
सीरियल.प्रिंटएलएन ( 'बटन दबाया गया!' ) ;
}
// याद करो अंतिम बटन दबाने की घटना समय
लास्टबटनप्रेसटाइम = मिलिस ( ) ;
}
// रखना में करने में थोड़ी देरी मदद पढ़ने की निंदा करें
देरी ( 1 ) ;
}

ऊपर दिए गए कोड में, लूप() फ़ंक्शन में सीएलके पिन की स्थिति की जांच की जाती है। यदि यह अपनी पिछली स्थिति के बराबर नहीं है, तो यह दर्शाता है कि रोटरी घुंडी घूम गई है। अब, नॉब घूमने की दिशा की जांच करने के लिए, सीएलके की वर्तमान स्थिति की तुलना डीटी की स्थिति से की जाती है। यदि दोनों अवस्थाएँ असमान हैं, तो यह दर्शाता है कि घुंडी दक्षिणावर्त घूम गई है और रोटरी घुंडी की स्थिति दिखाने के लिए इसके मूल्य में विपरीत वृद्धि होती है। विपरीत स्थिति में, काउंटर में कमी आती है।

अनुप्रयोग

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

निष्कर्ष

इलेक्ट्रॉनिक्स के क्षेत्र में पोटेंशियोमीटर और रोटरी एनकोडर दोनों विशेष रूप से उपयोगी उपकरण हैं। रोटरी एनकोडर पोटेंशियोमीटर की तुलना में उन्नत होते हैं, क्योंकि वे लगातार 360° तक घूम सकते हैं। इसी तरह, आधुनिक इलेक्ट्रॉनिक्स में उनके अधिक अनुप्रयोग हैं, और पोटेंशियोमीटर की तुलना में उनका उपयोग करना थोड़ा अधिक कठिन है .