विषयसूची:

Arduino के लिए MCP41HVX1 डिजिटल पोटेंशियोमीटर: 10 कदम (चित्रों के साथ)
Arduino के लिए MCP41HVX1 डिजिटल पोटेंशियोमीटर: 10 कदम (चित्रों के साथ)

वीडियो: Arduino के लिए MCP41HVX1 डिजिटल पोटेंशियोमीटर: 10 कदम (चित्रों के साथ)

वीडियो: Arduino के लिए MCP41HVX1 डिजिटल पोटेंशियोमीटर: 10 कदम (चित्रों के साथ)
वीडियो: This component can control tons of circuits! Digital Potentiometer Guide! EB#51 2024, जुलाई
Anonim
Arduino के लिए MCP41HVX1 डिजिटल पोटेंशियोमीटर
Arduino के लिए MCP41HVX1 डिजिटल पोटेंशियोमीटर

डिजिटल पोटेंशियोमीटर (उर्फ डिजीपॉट्स) का MCP41HVX1 परिवार ऐसे उपकरण हैं जो एनालॉग पोटेंशियोमीटर के कार्य की नकल करते हैं और SPI के माध्यम से नियंत्रित होते हैं। एक उदाहरण एप्लिकेशन आपके स्टीरियो पर वॉल्यूम नॉब को एक डिजीपोट के साथ बदल देगा जिसे एक Arduino द्वारा नियंत्रित किया जाता है। यह मानता है कि आपके स्टीरियो पर वॉल्यूम नियंत्रण एक पोटेंशियोमीटर है न कि रोटरी एनकोडर।

MCP41HVX1 अन्य DigiPots से थोड़े अलग हैं, जिसमें उनके पास एक विभाजित रेल डिज़ाइन है। इसका मतलब यह है कि जबकि डिजीपॉट को एक Arduino के आउटपुट वोल्टेज द्वारा नियंत्रित किया जा सकता है, जो सिग्नल रेसिस्टर नेटवर्क के माध्यम से पारित किया जाता है, वह वोल्टेज की एक बड़ी रेंज (36 वोल्ट तक) के साथ काम करता है। अधिकांश डिजीपॉट्स जिन्हें 5 वोल्ट द्वारा नियंत्रित किया जा सकता है, वे रेसिस्टर नेटवर्क पर 5 वोल्ट तक सीमित होते हैं जो मौजूदा सर्किट को रेट्रोफिट करने के लिए उनके उपयोग को प्रतिबंधित करता है जो उच्च वोल्टेज पर संचालित होता है जैसे कि आपको कार या नाव में क्या मिलेगा।

MCP41HVX1 परिवार निम्नलिखित चिप्स से बना है:

  • MCP41HV31-104E/ST - 100k ओम (7 बिट)
  • MCP41HV31-503E/ST - 50k ओम (7 बिट)
  • MCP41HV31-103E/ST - 10k ओम (7 बिट)
  • MCP41HV31-502E/ST - 5k ओम (7 बिट)
  • MCP41HV31-103E/MQ - 10k ओम (7 बिट)
  • MCP41HV51-104E/ST - 100k ओम (8 बिट)
  • MCP41HV51-503E/ST - 50k ओम (8 बिट)
  • MCP41HV51T-503E/ST - 50k ओम (8 बिट)
  • MCP41HV51-103E/ST - 10k ओम (8 बिट)
  • MCP41HV51-502E/ST - 5k ओम (8 बिट)

7 बिट चिप्स रोकनेवाला नेटवर्क में 128 चरणों की अनुमति देते हैं और 8 बिट चिप्स प्रतिरोधक नेटवर्क में 256 चरणों के लिए अनुमति देते हैं। इसका मतलब है कि 8 बिट चिप्स पोटेंशियोमीटर से दोगुने प्रतिरोध मूल्यों की अनुमति देते हैं।

आपूर्ति

  • ऊपर दी गई सूची से उपयुक्त MCP41HVX1 चिप चुनें। आपके द्वारा चुनी गई चिप आपके आवेदन के लिए आवश्यक प्रतिरोध सीमा पर आधारित है। यह निर्देशयोग्य चिप के TSSOP 14 पैकेज संस्करणों पर आधारित है, इसलिए इस गाइड के साथ अनुसरण करने के लिए MCP41HV31-103E / MQ को छोड़कर सूची में कोई भी चिप चुनें जो एक QFN पैकेज है। कुछ अतिरिक्त चिप्स प्राप्त करने की अनुशंसा की जाती है क्योंकि मुझे एक खराब सामना करना पड़ा और वे सस्ती हैं। मैंने डिजी-की से मेरा ऑर्डर दिया।
  • सेकेंडरी डीसी बिजली की आपूर्ति जो 10 से 36 वोल्ट तक होती है। मेरे उदाहरण में मैं पुराने बिजली आपूर्ति के अपने बॉक्स से 17 वोल्ट की दीवार वार्ट डीसी बिजली की आपूर्ति का उपयोग करता हूं।
  • सोल्डरिंग फ्लक्स
  • सोल्डरिंग आयरन
  • मिलाप
  • चिमटी और/या टूथपिक
  • TSSOP 14 पिन ब्रेकआउट बोर्ड - Amazon - QLOUNI 40pcs PCB प्रोटो बोर्ड SMD से DIP एडेप्टर प्लेट कन्वर्टर TQFP (32 44 48 64 84 100) SOP SSOP TSSOP 8 10 14 16 20 23 24 28 (आकारों का वर्गीकरण। कई परियोजनाओं के लिए बहुत उपलब्ध है)
  • 2 - 7 पिन हेडर की मात्रा - अमेज़ॅन - DEPEPE 30 पीसी 40 पिन 2.54 मिमी Arduino प्रोटोटाइप शील्ड के लिए पुरुष और महिला पिन हेडर - (आवश्यक आकार में कटौती। कई परियोजनाओं के लिए पैकेज में बहुत)
  • Arduino Uno - यदि आपके पास एक नहीं है तो मैं एक आधिकारिक बोर्ड प्राप्त करने का सुझाव दूंगा। मुझे अनौपचारिक संस्करणों के साथ मिश्रित भाग्य मिला है। डिजी-की - Arduino Uno
  • मल्टी-मीटर जो प्रतिरोध को माप सकता है और निरंतरता की जांच भी कर सकता है
  • जम्पर तार
  • ब्रेड बोर्ड
  • अत्यधिक अनुशंसित लेकिन बिल्कुल आवश्यक नहीं है एक हैंड्स फ्री मैग्निफायर है क्योंकि TSSOP चिप्स बहुत छोटे हैं। मल्टी-मीटर के साथ सोल्डरिंग और टेस्टिंग के लिए आपको दोनों हाथों की आवश्यकता होगी। मैं अपने पर्चे के चश्मे के ऊपर हार्बर फ्रेट 3x क्लिप-ऑन मैग्निफायर की एक जोड़ी और एक फ्री स्टैंडिंग / आर्टिकुलेटेड मैग्नीफाइंग ग्लास का उपयोग करता हूं। अन्य विकल्प डिस्काउंट या डॉलर स्टोर से सस्ते पाठकों की एक जोड़ी हैं। आप अपनी दृष्टि कितनी अच्छी (या खराब) के आधार पर पाठकों को अपने पर्चे के चश्मे पर पहन सकते हैं या पाठकों के दो जोड़े (दूसरे के ऊपर से एक) प्राप्त कर सकते हैं। यदि आप चश्मे पर दोगुना कर रहे हैं तो सावधान रहें क्योंकि आपकी दृष्टि की सीमा बहुत सीमित होगी इसलिए कुछ और करने से पहले उन्हें उतारना सुनिश्चित करें। सोल्डरिंग करते समय भी अतिरिक्त सावधानी बरतें।
  • एक अन्य वस्तु जिसकी आवश्यकता नहीं है लेकिन अत्यधिक अनुशंसित है वह है हार्बर फ्रेट हेल्पिंग हैंड्स। वे धातु के आधार से जुड़ी मगरमच्छ क्लिप हैं। ये इंटरनेट पर कई अन्य विक्रेताओं के साथ-साथ विभिन्न ब्रांड नामों के तहत उपलब्ध हैं। ब्रेकआउट बोर्ड पर चिप को सोल्डर करते समय ये बहुत मददगार होते हैं।

चरण 1: TSSOP चिप को ब्रेकआउट बोर्ड में मिलाना

Image
Image
TSSOP चिप को ब्रेकआउट बोर्ड में मिलाना
TSSOP चिप को ब्रेकआउट बोर्ड में मिलाना
TSSOP चिप को ब्रेकआउट बोर्ड में मिलाप करना
TSSOP चिप को ब्रेकआउट बोर्ड में मिलाप करना

TSSOP चिप को ब्रेकआउट बोर्ड में मिलाप करने की आवश्यकता है ताकि आप इसे ब्रेडबोर्ड के साथ या सीधे ड्यूपॉन्ट जंपर्स के साथ उपयोग कर सकें। प्रोटोटाइप कार्य के लिए वे सीधे काम करने के लिए बहुत छोटे हैं।

अपने छोटे आकार के कारण, TSSOP चिप को टांका लगाना इस परियोजना का सबसे चुनौतीपूर्ण हिस्सा हो सकता है, लेकिन ऐसा करने की तरकीब जानने से यह एक ऐसा कार्य बन जाता है जिसे कोई भी पूरा कर सकता है। कई तकनीकें हैं, नीचे एक है जो मैंने किया।

रणनीति पहले सोल्डर को ब्रेकआउट बोर्ड के निशान पर प्रवाहित करना है।

  • निर्देश दिए जाने तक चिप को ब्रेकआउट बोर्ड पर न लगाएं।
  • पहली बात यह है कि ब्रेकआउट बोर्ड पर एक उदार मात्रा में प्रवाह डाला जाता है।
  • अगला, अपने टांका लगाने वाले लोहे का उपयोग करके कुछ मिलाप को गर्म करें और इसे निशान पर प्रवाहित करें।
  • मिलाप के ऊपर कुछ और प्रवाह डालें जो आप निशान पर और साथ ही चिप के पैरों के नीचे से बह गए।
  • चिप को उन निशानों के ऊपर रखें जहाँ आपने मिलाप और फ्लक्स रखा था। चिप को ठीक से स्थापित करने के लिए चिमटी या टूथपिक अच्छे उपकरण बनाते हैं। चिप को ठीक से संरेखित करना सुनिश्चित करें ताकि सभी पिन सीधे निशान के ऊपर हों। ब्रेक आउट बोर्ड पर पिन एक के लिए अंकन के साथ चिप में से एक को पिन करें।
  • अपने टांका लगाने वाले लोहे का उपयोग करके चिप के अंत में पिन में से एक (या तो पिन 1, 7, 8, या 14) को ट्रेस में दबाएं। आपके द्वारा पहले लगाया गया सोल्डर पिघल जाएगा और पिन के चारों ओर प्रवाहित होगा।

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

आपके द्वारा सभी पिनों को मिलाने के बाद वीडियो आपके कनेक्शनों को सत्यापित करने के लिए एक आवर्धक कांच का उपयोग करने का सुझाव देता है। निरंतरता की जांच के लिए मल्टीमीटर का उपयोग करना एक बेहतर तरीका है। आपको एक जांच को पिन के पैर पर और दूसरी जांच को बोर्ड के उस हिस्से पर रखना चाहिए जहां आप हेडर मिलाप करेंगे (इस चरण में दूसरी तस्वीर देखें)। आपको यह सुनिश्चित करने के लिए आसन्न पिनों की भी जांच करनी चाहिए कि वे सोल्डर द्वारा एक साथ कई पिनों को छोटा करने के कारण जुड़े नहीं हैं। इसलिए उदाहरण के लिए यदि आप पिन 4 को सत्यापित कर रहे हैं, तो पिन 3 और पिन 5 को भी चेक करें। पिन 4 को निरंतरता दिखानी चाहिए जबकि पिन 3 और पिन 5 को एक खुला सर्किट दिखाना चाहिए। एकमात्र अपवाद है वाइपर P0W P0A या P0B से कनेक्टिविटी दिखा सकता है।

टिप्स:

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

चरण 2: वायरिंग

तारों
तारों

वायरिंग आरेख में दिखाए गए अनुसार आपको Arduino और Digipot को कनेक्ट करना होगा। जिन पिनों का उपयोग किया जा रहा है वे Arduino Uno के लेआउट पर आधारित हैं। यदि आप एक अलग Arduino का उपयोग कर रहे हैं तो अंतिम चरण देखें।

चरण 3: DigiPot को नियंत्रित करने के लिए Arduino लाइब्रेरी प्राप्त करना

DigiPot को नियंत्रित करने के लिए Arduino लाइब्रेरी प्राप्त करना
DigiPot को नियंत्रित करने के लिए Arduino लाइब्रेरी प्राप्त करना

प्रोग्रामिंग को सरल बनाने के लिए मैंने एक पुस्तकालय बनाया है जो जीथब पर उपलब्ध है। MCP41HVX1 लाइब्रेरी प्राप्त करने के लिए github.com/gregsrabian/MCP41HVX1 पर जाएं। आप "क्लोन" बटन का चयन करना चाहेंगे और फिर "डाउनलोड ज़िप" चुनें। ज़िप फ़ाइल को उस स्थान पर सहेजना सुनिश्चित करें जहाँ आप जानते हैं कि वह कहाँ है। डेस्कटॉप या डाउनलोड फ़ोल्डर आसान स्थान हैं। एक बार जब आप इसे Arduino IDE में आयात कर लेते हैं तो आप इसे डाउनलोड स्थान से हटा सकते हैं।

चरण 4: नई लाइब्रेरी को Arduino IDE में आयात करना

Arduino IDE में नई लाइब्रेरी आयात करना
Arduino IDE में नई लाइब्रेरी आयात करना

Arduino IDE के भीतर "स्केच" पर जाएं, फिर "लाइब्रेरी शामिल करें" चुनें, फिर "ज़िप लाइब्रेरी जोड़ें.." चुनें। एक नया डायलॉग बॉक्स दिखाई देगा जो आपको उस. ZIP फ़ाइल को चुनने की अनुमति देगा जिसे आपने GitHub से डाउनलोड किया था।

चरण 5: पुस्तकालय उदाहरण

पुस्तकालय उदाहरण
पुस्तकालय उदाहरण

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

चरण 6: स्रोत कोड की जांच

#include "MCP41HVX1.h" // Arduino पर उपयोग किए गए पिन को परिभाषित करें#WLAT_PIN 8 को परिभाषित करें // यदि कम "स्थानांतरण और उपयोग" पर सेट किया गया है, तो SHDN_PIN 9 को परिभाषित करें // रोकनेवाला नेटवर्क को सक्षम करने के लिए उच्च सेट करें#CS_PIN 10 को परिभाषित करें // एसपीआई के लिए चिप का चयन करने के लिए निम्न पर सेट करें // परीक्षण ऐप के लिए उपयोग किए गए कुछ मूल्यों को परिभाषित करें # फॉरवर्ड ट्रू को परिभाषित करें # रिवर्स गलत को परिभाषित करें # MAX_WIPER_VALUE 255 को परिभाषित करें सीरियल.बेगिन (९६००); सीरियल.प्रिंट ("शुरुआती स्थिति ="); Serial.println (Digipot. WiperGetPosition ()); // प्रारंभिक मूल्य प्रदर्शित करें Serial.print ("वाइपर स्थिति सेट करें ="); Serial.println(Digipot. WiperSetPosition(0)); // वाइपर की स्थिति को 0 पर सेट करें} शून्य लूप (){ स्थिर बूल bDirection = FORWARD; int nWiper = Digipot. WiperGetPosition (); // वर्तमान वाइपर स्थिति प्राप्त करें // दिशा निर्धारित करें। अगर (MAX_WIPER_VALUE == nWiper) { bDirection = REVERSE; } और अगर (0 == nWiper) { bDirection = FORWARD; } // डिजीपोट वाइपर ले जाएँ अगर (फॉरवर्ड == बीडायरेक्शन) { nWiper = Digipot. WiperIncrement (); // दिशा आगे है Serial.print("Increment -"); } और { nWiper = Digipot. WiperDecrement (); // दिशा पीछे की ओर है सीरियल.प्रिंट ("डिक्रीमेंट -"); } सीरियल.प्रिंट ("वाइपर पोजीशन ="); सीरियल.प्रिंट्लन (एनवाइपर); देरी (100);}

चरण 7: स्रोत कोड को समझना और स्केच चलाना

Image
Image

यह स्रोत कोड Arduino IDE के भीतर उदाहरण मेनू पर जाकर और MCP41HVX1 का पता लगाने के लिए उपलब्ध है जिसे आपने अभी स्थापित किया है (पिछला चरण देखें)। MCP41HVX1 के भीतर "वाइपर कंट्रोल" उदाहरण खोलें। लाइब्रेरी के साथ शामिल कोड का उपयोग करना सबसे अच्छा है जैसे कि कोई बग फिक्स हैं इसे अपडेट किया जाएगा।

वाइपर कंट्रोल उदाहरण MCP41HVX1 लाइब्रेरी से निम्नलिखित API को प्रदर्शित करता है:

  • कंस्ट्रक्टर MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin)
  • वाइपरगेटपोजिशन ()
  • वाइपरसेटपोजिशन (बाइट बायवाइपर)
  • वाइपर इंक्रीमेंट ()
  • वाइपर डिक्रीमेंट ()

यदि आप 7 बिट चिप का उपयोग कर रहे हैं तो नमूना स्रोत कोड में MAX_WIPER_VALUE को 127 पर सेट करना सुनिश्चित करें। डिफ़ॉल्ट 255 है जो 8 बिट चिप्स के लिए है। यदि आप नमूने में परिवर्तन करते हैं तो Arduino IDE आपको प्रोजेक्ट के लिए एक नया नाम चुनने के लिए बाध्य करेगा क्योंकि यह आपको उदाहरण कोड को अपडेट नहीं करने देगा। यह अपेक्षित व्यवहार है।

हर बार लूप के माध्यम से वाइपर एक कदम से बढ़ेगा या एक कदम से घटेगा, यह इस बात पर निर्भर करता है कि वह किस दिशा में जा रहा है। यदि दिशा ऊपर है और यह MAX_WIPER_VALUE तक पहुंच जाती है तो यह दिशा को उलट देगी। अगर यह 0 हिट करता है तो यह फिर से उलट जाएगा।

जैसे ही स्केच चलता है सीरियल मॉनिटर को वर्तमान वाइपर स्थिति के साथ अपडेट किया जाता है।

प्रतिरोध परिवर्तन देखने के लिए आपको ओम पढ़ने के लिए एक मल्टीमीटर सेट का उपयोग करना होगा। एप्लिकेशन के चलने के दौरान प्रतिरोध परिवर्तन देखने के लिए डिजीपोट पर मीटर जांच को P0B (पिन 11) और P0W (पिन 12) पर रखें। ध्यान दें कि प्रतिरोध मान शून्य से नीचे नहीं जाएगा क्योंकि चिप के भीतर कुछ आंतरिक प्रतिरोध है लेकिन यह 0 ओम के करीब पहुंच जाएगा। यह सबसे अधिक संभावना है कि अधिकतम मूल्य तक नहीं जाएगा, लेकिन करीब होगा।

जैसा कि आप वीडियो देखते हैं, आप देख सकते हैं कि मल्टीमीटर प्रतिरोध को तब तक बढ़ाता है जब तक कि यह अधिकतम मूल्य तक नहीं पहुंच जाता और फिर घटने लगता है। वीडियो में इस्तेमाल की जा रही चिप MCP41HV51-104E/ST है जो 100k ओम अधिकतम मान वाली 8 बिट चिप है।

चरण 8: समस्या निवारण

अगर चीजें उम्मीद के मुताबिक काम नहीं कर रही हैं तो यहां कुछ चीजें देखने की हैं।

  • अपनी वायरिंग सत्यापित करें। सब कुछ सही ढंग से जुड़ा होना चाहिए। सुनिश्चित करें कि आप इस निर्देश में बताए अनुसार पूर्ण वायरिंग आरेख का उपयोग कर रहे हैं। इस निर्देश में README, लाइब्रेरी सोर्स कोड और नीचे में वैकल्पिक वायरिंग आरेख प्रस्तुत किए गए हैं, लेकिन ऊपर दिए गए वायरिंग चरण में ऊपर जो प्रलेखित है, उसके साथ रहें।
  • सुनिश्चित करें कि आपके डिजिटपॉट का प्रत्येक पिन ब्रेकआउट बोर्ड में मिलाप किया गया है। दृश्य निरीक्षण का उपयोग करना पर्याप्त नहीं है। सुनिश्चित करें कि आप अपने मल्टीमीटर के निरंतरता फ़ंक्शन का उपयोग करके सत्यापित करते हैं कि डिजीपोट पर सभी पिन विद्युत रूप से ब्रेकआउट बोर्ड से जुड़े हुए हैं और सोल्डर से पिन का कोई क्रॉस कनेक्शन नहीं है जो निशान के पार हो सकता है।
  • यदि सीरियल मॉनिटर दिखा रहा है कि स्केच चलाते समय वाइपर की स्थिति बदल रही है, लेकिन प्रतिरोध मान नहीं बदल रहा है, तो यह एक संकेतक है कि WLAT या SHDN ब्रेकआउट बोर्ड या WLAT या SHDN के लिए जम्पर वाइपर से उचित संबंध नहीं बना रहा है। Arduino से ठीक से कनेक्ट नहीं हैं।
  • सुनिश्चित करें कि आप एक माध्यमिक बिजली की आपूर्ति का उपयोग कर रहे हैं जो 10 और 36 वोल्ट के बीच डीसी है।
  • सुनिश्चित करें कि आपके मल्टीमीटर के साथ वोल्टेज को मापकर 10 से 36 वोल्ट की बिजली आपूर्ति काम कर रही है।
  • मूल स्केच का उपयोग करने का प्रयास करें। यदि आपने कोई परिवर्तन किया है तो हो सकता है कि आपने एक त्रुटि पेश की हो।
  • यदि किसी भी समस्या निवारण चरण ने किसी अन्य डिजीपोट चिप को आज़माने में मदद नहीं की है। उम्मीद है कि आपने कई खरीदे और उन्हें एक ही समय में एक TSSOP ब्रेकआउट बोर्ड में मिला दिया, इसलिए यह सिर्फ एक को दूसरे के लिए स्वैप करने की बात होनी चाहिए। मेरे पास एक खराब चिप थी जिससे मुझे काफी निराशा हुई और यह ठीक था।

चरण 9: आंतरिक और अतिरिक्त जानकारी

वैकल्पिक वायरिंग आरेख
वैकल्पिक वायरिंग आरेख

अग्रिम जानकारी:

अधिक जानकारी MCP41HVX1 डेटा शीट में पाई जा सकती है।

संपूर्ण MCP41HVX1 पुस्तकालय पर पूर्ण प्रलेखन README.md फ़ाइल में उपलब्ध है जो पुस्तकालय डाउनलोड का हिस्सा है। यह फ़ाइल मार्क डाउन में लिखी गई है और इसे जीथब के भीतर उचित स्वरूपण के साथ देखा जा सकता है (पृष्ठ के नीचे देखें) या मार्क डाउन व्यूअर / संपादक के साथ।

Arduino और DigiPot के बीच संचार:

Arduino SPI का उपयोग करके DigiPot के साथ संचार करता है। लाइब्रेरी द्वारा वाइपर पोजीशन कमांड भेजने के बाद जैसे कि WiperIncrement, WiperDecrement, या WiperSetPosition यह चिप से वाइपर स्थिति प्राप्त करने के लिए WiperGetPosition को कॉल करता है। इन वाइपर कमांड से लौटाया गया मान वाइपर की स्थिति है जैसा कि चिप इसे देखता है और इसका उपयोग यह सत्यापित करने के लिए किया जा सकता है कि वाइपर अपेक्षित स्थान पर चला गया है।

उन्नत कार्यक्षमता (WLAT और SHDN)

इन उन्नत कार्यों को "वाइपर कंट्रोल" उदाहरण में प्रदर्शित नहीं किया गया है। WLAT और SHDN को नियंत्रित करने के लिए पुस्तकालय में API उपलब्ध हैं। पुस्तकालय के साथ WLAT और SHDN उदाहरण रेखाचित्र (वाइपर नियंत्रण रेखाचित्र के समान स्थान पर) भी हैं।

SHDN (शटडाउन)

SHDN का उपयोग प्रतिरोधक नेटवर्क को अक्षम या सक्षम करने के लिए किया जाता है। SHDN को निम्न अक्षम और उच्च पर सेट करने से प्रतिरोधक नेटवर्क सक्षम होता है। जब रेसिस्टर नेटवर्क अक्षम हो जाता है तो P0A (DigiPot pin 13) डिस्कनेक्ट हो जाता है और P0B (DigiPot pin 11) P0W (DigiPot pin 12) से कनेक्ट हो जाता है। P0B और P0W के बीच थोड़ी मात्रा में प्रतिरोध होगा इसलिए आपका मीटर 0 ओम नहीं पढ़ेगा।

यदि आपके एप्लिकेशन को SHDN को नियंत्रित करने की कोई आवश्यकता नहीं है, तो आप इसे सीधे हाई पर वायर कर सकते हैं (वैकल्पिक वायरिंग आरेख देखें)। आपको सही कंस्ट्रक्टर का उपयोग करना होगा या MCP41HVX1_PIN_NOT_CONFIGURED में कंस्ट्रक्टर को पास करना होगा ताकि यह इंगित किया जा सके कि SHDN हार्ड वायर्ड है। यह ध्यान रखना महत्वपूर्ण है कि यदि आप उदाहरण के साथ अनुसरण कर रहे हैं तो आपको पूर्ण वायरिंग आरेख का उपयोग करना चाहिए (ऊपर वायरिंग चरण देखें)।

WLAT (लच लिखें)

आंतरिक वास्तुकला एक चिप पर दो घटक हैं। घटकों में से एक एसडीआई इंटरफ़ेस और वाइपर मान रखने के लिए रजिस्टर है। अन्य घटक प्रतिरोधक नेटवर्क ही है। WLAT दोनों आंतरिक घटकों को एक साथ जोड़ता है।

जब WLAT को LOW पर सेट किया जाता है तो किसी भी सेट वाइपर स्थिति कमांड की जानकारी सीधे प्रतिरोधक नेटवर्क को भेजी जाती है और वाइपर की स्थिति अपडेट की जाती है।

यदि WLAT को उच्च पर सेट किया जाता है, तो SPI के माध्यम से दी गई वाइपर स्थिति की जानकारी एक आंतरिक रजिस्टर में रखी जाती है, लेकिन इसे रोकनेवाला नेटवर्क को पास नहीं किया जाता है और इसलिए वाइपर की स्थिति अपडेट नहीं होगी। WLAT को LOW पर सेट करने के बाद मान रजिस्टर से रेसिस्टर नेटवर्क में ट्रांसफर हो जाता है।

WLAT उपयोगी है यदि आप कई डिजीपोट का उपयोग कर रहे हैं जिन्हें आपको सिंक में रखने की आवश्यकता है। रणनीति सभी डिजीपोटों पर WLAT को उच्च पर सेट करना है और फिर सभी चिप्स पर वाइपर मान सेट करना है। एक बार सभी डिजीपोटों को वाइपर मान भेज दिए जाने के बाद WLAT को सभी उपकरणों पर एक साथ LOW पर सेट किया जा सकता है ताकि वे सभी एक ही समय में वाइपर को स्थानांतरित कर सकें।

यदि आप केवल एक DigiPot को नियंत्रित कर रहे हैं या आपके पास कई हैं, लेकिन उन्हें सिंक में रखने की आवश्यकता नहीं है, तो संभवतः आपको इस कार्यक्षमता की आवश्यकता नहीं होगी और इसलिए WLAT को सीधे LOW पर वायर कर सकते हैं (वैकल्पिक वायरिंग आरेख देखें)। आपको सही कंस्ट्रक्टर का उपयोग करना होगा या MCP41HVX1_PIN_NOT_CONFIGURED में कंस्ट्रक्टर को पास करना होगा ताकि यह इंगित किया जा सके कि WLAT हार्ड वायर्ड है। यह ध्यान रखना महत्वपूर्ण है कि यदि आप उदाहरण के साथ अनुसरण कर रहे हैं तो आपको पूर्ण वायरिंग आरेख का उपयोग करना चाहिए (ऊपर वायरिंग चरण देखें)।

चरण 10: वैकल्पिक वायरिंग आरेख

तारों

आपके पास डिजिटल पिन से कनेक्ट होने के बजाय WLAT को डिगपॉट से सीधे LOW\GND से जोड़ने का विकल्प है। यदि आप ऐसा करते हैं तो आप WLAT को नियंत्रित नहीं कर पाएंगे। आपके पास डिजिटल पिन के बजाय SHDN को सीधे हाई से जोड़ने का विकल्प भी है। यदि आप ऐसा करते हैं तो आप SHDN को नियंत्रित नहीं कर पाएंगे।

WLAT और SHDN एक दूसरे से स्वतंत्र हैं इसलिए आप एक को हार्ड वायर कर सकते हैं और दूसरे को डिजिटल पिन, हार्ड वायर दोनों से जोड़ सकते हैं, या दोनों को डिजिटल पिन से कनेक्ट कर सकते हैं ताकि उन्हें नियंत्रित किया जा सके। उन लोगों के लिए वैकल्पिक वायरिंग आरेख देखें, जिन्हें आप हार्ड वायर करना चाहते हैं और नियंत्रणीय डिजिटल पिन को वायरिंग के लिए चरण 2 में मुख्य वायरिंग आरेख को देखें।

कंस्ट्रक्टर्स

MCP41HVX वर्ग में तीन कंस्ट्रक्टर हैं। हम उनमें से दो पर चर्चा करेंगे। वे सभी README.md फ़ाइल में प्रलेखित हैं, इसलिए यदि तीसरे निर्माणकर्ता में रुचि है तो कृपया दस्तावेज़ीकरण देखें।

  • MCP41HVX1(int nCSPin) - इस कंस्ट्रक्टर का उपयोग केवल तभी करें जब WLAT और SHDN दोनों हार्ड वायर्ड हों।
  • MCP41HVX1(int nCSPin, int nSHDNPin, int nWLATPin) - यदि WLAT या SHDN हार्ड वायर्ड हैं तो इस कंस्ट्रक्टर का उपयोग करें। अगर पिन हार्ड वायर्ड है या पिन नंबर अगर डिजिटल पिन से जुड़ा है तो लगातार MCP41HVX1_PIN_NOT_CONFIGURED में पास करें।

एनसीएसपीआईएन डिजिटल पिन से जुड़ा होना चाहिए। MCP41HVX1_PIN_NOT_CONFIGURED को nCSPin के कंस्ट्रक्टर को पास करना अमान्य है।

क्या होगा अगर मैं एक Arduino Uno का उपयोग नहीं कर रहा हूँ?

डिजीपोट से संवाद करने के लिए Arduino SPI का उपयोग करता है। SPI पिन Arduino बोर्ड पर विशिष्ट पिन हैं।Uno पर SPI पिन हैं:

  • एससीके - डिजीपोट पर पिन 2 से जुड़े ऊनो पर 13 पिन करें
  • MOSI - डिजीपोट पर पिन 4 से जुड़े ऊनो पर 11 पिन करें
  • MISO - Digipot पर पिन 5 से जुड़े Uno पर 12 पिन करें

यदि आप एक Arduino का उपयोग कर रहे हैं जो एक Uno नहीं है, तो आपको यह पता लगाना होगा कि कौन सा पिन SCK, MOSI और MISO है और उन्हें डिजीपोट से कनेक्ट करें।

स्केच में इस्तेमाल किए गए अन्य पिन नियमित डिजिटल पिन हैं इसलिए कोई भी डिजिटल पिन काम करेगा। आपके द्वारा उपयोग किए जा रहे Arduino बोर्ड पर आपके द्वारा चुने गए पिन को निर्दिष्ट करने के लिए आपको स्केच को संशोधित करने की आवश्यकता होगी। नियमित डिजिटल पिन हैं:

  • सीएस - डिजीपोट पर पिन 3 से जुड़े ऊनो पर पिन 10 (नए मूल्य के साथ स्केच में CS_PIN अपडेट करें)
  • WLAT - डिजीपोट पर पिन 6 से जुड़े ऊनो पर पिन 8 (नए मान के साथ स्केच में WLAT_PIN अपडेट करें)
  • SHDN - डिजीपोट पर पिन 7 से जुड़े Uno पर पिन 9 (नए मान के साथ स्केच में SHDN_PIN अपडेट करें)

सिफारिश की: