विषयसूची:

रोटरी एनकोडर - इसे समझें और इसका उपयोग करें (Arduino/अन्य नियंत्रक): ३ चरण
रोटरी एनकोडर - इसे समझें और इसका उपयोग करें (Arduino/अन्य नियंत्रक): ३ चरण

वीडियो: रोटरी एनकोडर - इसे समझें और इसका उपयोग करें (Arduino/अन्य नियंत्रक): ३ चरण

वीडियो: रोटरी एनकोडर - इसे समझें और इसका उपयोग करें (Arduino/अन्य नियंत्रक): ३ चरण
वीडियो: Rotary Encoder Wiring/Connection with PLC II What is Rotary Encoder? (Autonics E40S6-2500-3-T24) 2024, नवंबर
Anonim
रोटरी एनकोडर - इसे समझें और इसका उपयोग करें (Arduino/अन्य नियंत्रक)
रोटरी एनकोडर - इसे समझें और इसका उपयोग करें (Arduino/अन्य नियंत्रक)

रोटरी एनकोडर एक इलेक्ट्रो-मैकेनिकल डिवाइस है जो घूर्णी गति को डिजिटल या एनालॉग जानकारी में परिवर्तित करता है। यह दक्षिणावर्त या वामावर्त घूम सकता है। रोटरी एन्कोडर दो प्रकार के होते हैं: निरपेक्ष और सापेक्ष (वृद्धिशील) एन्कोडर।

जबकि एक निरपेक्ष एनकोडर वर्तमान शाफ्ट कोण के समानुपाती मान को आउटपुट करता है, एक वृद्धिशील एनकोडर शाफ्ट के चरण और उसकी दिशा को आउटपुट करता है। (इस मामले में हमारे पास एक वृद्धिशील एन्कोडर है)

रोटरी एन्कोडर अधिक लोकप्रिय हो रहे हैं क्योंकि आप एक विद्युत मॉड्यूल में दो कार्यों का उपयोग करने में सक्षम हैं: संचालन की पुष्टि के लिए एक सरल स्विच और नेविगेट करने के लिए रोटरी एन्कोडर, उदा। एक मेनू के माध्यम से।

एक वृद्धिशील रोटरी एनकोडर दो आउटपुट सिग्नल उत्पन्न करता है जबकि इसका शाफ्ट घूम रहा होता है। दिशा के आधार पर, संकेतों में से एक दूसरे की ओर जाता है। (निचे देखो)

चरण 1: आउटपुट डेटा को समझना

आउटपुट डेटा को समझना
आउटपुट डेटा को समझना

जैसा कि आप देख सकते हैं कि जब एन्कोडर शाफ्ट दक्षिणावर्त घूमना शुरू करता है, तो आउटपुट ए पहले कम हो जाता है और आउटपुट बी इसके बाद आता है। एक वामावर्त दिशा में ऑपरेशन विपरीत हो जाता है।

अब हमें इसे अपने µController (मैंने एक Arduino नैनो का इस्तेमाल किया) पर लागू करना है।

चरण 2: सर्किट बनाएँ

सर्किट का निर्माण करें
सर्किट का निर्माण करें
सर्किट का निर्माण करें
सर्किट का निर्माण करें

जैसा कि मैंने पहले बताया था कि आउटपुट एक हाई और लो फ्लैंक बनाते हैं। µकंट्रोलर के डेटा पिन A और B पर एक क्लीन हाई प्राप्त करने के लिए हमें पुल-अप रेसिस्टर्स को जोड़ना होगा। सामान्य पिन सी LOW फ्लैंक के लिए सीधे जमीन पर जाता है।

आंतरिक स्विच (पुश-बटन) के बारे में जानकारी प्राप्त करने के लिए हम अन्य दो पिनों का उपयोग करेंगे। उनमें से एक वीसीसी में जाता है और दूसरा माइक्रोकंट्रोलर के डेटा पिन पर जाता है। स्वच्छ LOW प्राप्त करने के लिए हमें डेटा पिन में एक पुल-डाउन रेसिस्टर भी जोड़ना होगा।

आपके माइक्रोकंट्रोलर के आंतरिक पुल-अप और पुल-डाउन प्रतिरोधों का उपयोग करना भी संभव है!

मेरे मामले में पिनआउट इस तरह दिखता है:

  • +3, 3V => +3, 3V (Arduino) (भी +5V संभव)
  • GND => GND (Arduino)
  • ए => पिन10
  • बी =>

    पिन

    11

  • सी => जीएनडी
  • दप =>

    पिन

    12

चरण 3: कोड लिखना

इंट पिनए = 10; // आंतरिक स्विच ए इंट पिनबी = 11; // आंतरिक स्विच बी इंट पिनएसडब्ल्यू = 12; // स्विच (दबाया गया एनकोडर) int encoderPosCount = 0; // शून्य से शुरू होता है, अगर आप चाहें तो बदल दें

इंट पोजिशनवल;

बूल स्विचवाल; इंट मोटेटलास्ट; इंट मरोटेट;

व्यर्थ व्यवस्था() {

int mrotateLast = digitalRead (pinA); सीरियल.बेगिन (९६००); देरी (50); }

शून्य लूप () {readencoder (); अगर (रीडस्विच () == 1) {Serial.println ("स्विच = 1"); } }

इंट रीडएनकोडर (){

mrotate = digitalRead (pinA); if (mrotate != mrotateLast){//knob रोटेट हो रहा है if (digitalRead(pinB) != mrotate) {//switch A पहले बदल गया -> क्लॉकवाइज एनकोडरPosCount ++ को घुमाएं; Serial.println ("घड़ी की दिशा में घुमाया गया"); } और {// स्विच बी पहले बदला गया -> वामावर्त घुमाते हुए एन्कोडरपॉसकाउंट--; Serial.println ("घूर्णन वामावर्त"); }

Serial.print ("एनकोडर स्थिति:"); Serial.println(encoderPosCount); सीरियल.प्रिंट्लन (""); } मरोटेट लास्ट = मरोटेट; वापसी एनकोडरPosCount; } बूल रीडस्विच (){

अगर (डिजिटल रीड (पिनएसडब्ल्यू)! = 0) {// स्विच दबाया जाता है

जबकि (डिजिटल रीड (पिनएसडब्ल्यू)! = 0) {} // स्विच वर्तमान में स्विचवाल = 1 दबाया जाता है; } और {स्विचवल = 0;} // स्विच अप्रेस्ड रिटर्न स्विचवाल है; }

अब आप एन्कोडर को चालू कर सकते हैं और यदि आप दक्षिणावर्त घुमाते हैं तो वेरिएबल एन्कोडरपॉसकाउंट की गिनती होगी और यदि आप वामावर्त घुमाते हैं तो उलटी गिनती करें।

इतना ही! सरल और उपयोगी।

कोड को बदलने और निष्पादित करने के लिए स्वतंत्र महसूस करें। आप इसे अपने प्रोजेक्ट में लागू कर सकते हैं।

मैं एक एलईडी प्रोजेक्ट भी अपलोड करूंगा जहां मैंने अपने एल ई डी की चमक सेट करने के लिए एन्कोडर का उपयोग किया था।

सिफारिश की: