- सामग्री की आवश्यकता
- Arduino DC इलेक्ट्रॉनिक लोड सर्किट आरेख
- पीसीबी डिजाइन और Gerber फ़ाइल
- ऑलपीसीबी से अपने पीसीबी का आदेश
- एडजस्टेबल डीसी लोड के लिए Arduino कोड
- हमारे एडजस्टेबल डीसी लोड का परीक्षण
यदि आपने कभी बैटरियों, एसएमपीएस सर्किट या अन्य पावर सप्लाई सर्किट के साथ काम किया है, तो अक्सर ऐसा होता है कि आपको अलग-अलग लोडिंग परिस्थितियों में प्रदर्शन करने के तरीके को जांचने के लिए इसे लोड करके अपने पावर स्रोत का परीक्षण करना होता है। इस तरह के परीक्षण को करने के लिए आमतौर पर उपयोग किए जाने वाले उपकरण को कॉन्स्टेंट करंट डीसी लोड कहा जाता है, जो हमें आपके पावर स्रोत के आउटपुट करंट को समायोजित करने की अनुमति देता है और तब तक इसे स्थिर रखता है जब तक कि इसे फिर से समायोजित नहीं किया जाता है। इस ट्यूटोरियल में, हम सीखेंगे कि Arduino का उपयोग करके अपने स्वयं के एडजस्टेबल इलेक्ट्रॉनिक लोड का निर्माण कैसे करें, जो 24V का अधिकतम इनपुट वोल्टेज ले सकता है और 5A के रूप में उच्च वर्तमान कर सकता है। इस परियोजना के लिए, हमने PCB बोर्ड का उपयोग किया है जो कि AllPCB द्वारा निर्मित है, जो एक चीन आधारित पेशेवर पीसीबी विनिर्माण और कोडांतरण सेवा प्रदाता है।
हमारे पिछले वोल्टेज-नियंत्रित वर्तमान स्रोत ट्यूटोरियल में, हमने समझाया है कि कैसे एक MOSFET के साथ एक परिचालन एम्पलीफायर का उपयोग करें और वोल्टेज-नियंत्रित वर्तमान स्रोत सर्किट का उपयोग करें। लेकिन इस ट्यूटोरियल में, हम उस सर्किट को लागू करेंगे और डिजिटल रूप से नियंत्रित वर्तमान स्रोत बनाएंगे । जाहिर है, डिजिटल रूप से नियंत्रित वर्तमान स्रोत के लिए डिजिटल सर्किट की आवश्यकता होती है और इस उद्देश्य की पूर्ति के लिए, एक Arduino NANO का उपयोग किया जाता है। Arduino NANO DC लोड के लिए आवश्यक नियंत्रण प्रदान करेगा।
सर्किट में तीन भाग होते हैं। पहला भाग Arduino नैनो अनुभाग है, दूसरा भाग एनालॉग कनवर्टर के लिए डिजिटल है, और तीसरा भाग एक शुद्ध एनालॉग सर्किट है जहां एकल पैकेज में एक दोहरी परिचालन एम्पलीफायर का उपयोग किया जाता है जो लोड अनुभाग को नियंत्रित करेगा। यह परियोजना Arduino पर एक पोस्ट से प्रेरित है, हालांकि, इसे बनाने के लिए सभी के लिए बुनियादी सुविधाओं के साथ कम जटिलता के लिए सर्किट को बदल दिया जाता है।
हमारे इलेक्ट्रॉनिक लोड को निम्नलिखित इनपुट और आउटपुट अनुभागों के लिए डिज़ाइन किया गया है।
- लोड बढ़ाने और घटाने के लिए दो इनपुट स्विच।
- एक एलसीडी जो सेट लोड, वास्तविक लोड और लोड वोल्टेज प्रदर्शित करेगा।
- अधिकतम लोड वर्तमान 5 ए तक सीमित है।
- लोड के लिए अधिकतम इनपुट वोल्टेज 24V है।
सामग्री की आवश्यकता
डीसी इलेक्ट्रॉनिक लोड बनाने के लिए आवश्यक घटक नीचे सूचीबद्ध हैं।
- अरुडिनो नैनो
- 16x2 वर्ण एलसीडी
- दो बैरल सॉकेट
- मॉसफेट irf540n
- Mcp4921
- Lm358
- 5watt शंट रोकनेवाला। 1 ओम
- 1 कि
- 10k - 6 पीसी
- ताप सिंक
- .1uF 50v
- 2k - 2 पीसी
Arduino DC इलेक्ट्रॉनिक लोड सर्किट आरेख
नीचे के योजनाबद्ध में, परिचालन एम्पलीफायर के दो खंड हैं। एक को MOSFET को नियंत्रित करना है और दूसरे को संवेदी प्रवाह को बढ़ाना है। आप इस पृष्ठ के निचले भाग में वीडियो भी देख सकते हैं जो सर्किट के पूर्ण कार्य की व्याख्या करता है। पहले खंड में R12, R13 और MOSFET है। R12 का उपयोग फीडबैक अनुभाग पर लोडिंग प्रभाव को कम करने के लिए किया जाता है और R13 का उपयोग मॉसफेट गेट रेसिस्टर के रूप में किया जाता है।
अतिरिक्त दो प्रतिरोधों R8 और R9 का उपयोग बिजली की आपूर्ति की आपूर्ति वोल्टेज को समझने के लिए किया जाता है जो इस डमी लोड द्वारा जोर दिया जाएगा। वोल्टेज विभक्त नियम के अनुसार, ये दो प्रतिरोधक अधिकतम 24V का समर्थन करते हैं। 24 वी से अधिक एक वोल्टेज का उत्पादन करेगा जो अरडिनो पिन के लिए उपयुक्त नहीं होगा। इसलिए बिजली की आपूर्ति को जोड़ने के लिए सावधान रहें जिसमें 24V से अधिक आउटपुट वोल्टेज है।
रिज़िस्टर R7 यहाँ वास्तविक भार अवरोधक है। यह एक 5 वाट,.1 ओम अवरोधक है। शक्ति-कानून के अनुसार, यह अधिकतम 7A (P = I 2 R) का समर्थन करेगा, लेकिन सुरक्षित पक्ष के लिए, यह लोड वर्तमान अधिकतम 5A को सीमित करने के लिए समझदार है। इसलिए, वर्तमान में अधिकतम 24 वी, 5 ए लोड इस डमी लोड द्वारा निर्धारित किया जा सकता है।
एम्पलीफायर का एक और खंड एक लाभ एम्पलीफायर के रूप में कॉन्फ़िगर किया गया है । यह 6x लाभ प्रदान करेगा। विद्युत प्रवाह के दौरान, एक वोल्टेज ड्रॉप दिखाई देगा। उदाहरण के लिए, जब 5A का प्रवाह रोकनेवाला के माध्यम से बह रहा है, तो वोल्टेज ड्रॉप.5V भर में होगा.1 ओम शंट रेसिस्टर (V = I x R) ओम कानून के अनुसार। गैर-इनवर्टिंग एम्पलीफायर इसे एक्स 6 में प्रवर्धित करेगा, इसलिए 3 वी एम्पलीफायर के दूसरे भाग से आउटपुट होगा। इस आउटपुट को Arduino नैनो एनालॉग इनपुट पिन द्वारा महसूस किया जाएगा और वर्तमान की गणना की जाएगी।
एम्पलीफायर का पहला हिस्सा वोल्टेज फॉलोअर सर्किट के रूप में कॉन्फ़िगर किया गया है जो इनपुट वोल्टेज के अनुसार एमओएसएफईटी को नियंत्रित करेगा और शंट रेसिस्टर के माध्यम से लोड करंट प्रवाह के कारण वांछित प्रतिक्रिया वोल्टेज प्राप्त करेगा।
MCP4921 है डिजिटल एनालॉग के लिए कनवर्टर । डीएसी किसी भी माइक्रोकंट्रोलर यूनिट से डिजिटल डेटा प्राप्त करने और उसके आधार पर एनालॉग वोल्टेज आउटपुट प्रदान करने के लिए एसपीआई संचार प्रोटोकॉल का उपयोग करता है। यह वोल्टेज ऑप-एम्प का इनपुट है। हमने पहले भी सीखा है कि PIC के साथ इस MCP4921 DAC का उपयोग कैसे करें।
दूसरी तरफ, एक Arduino Nano है जो SPI प्रोटोकॉल के माध्यम से DAC को डिजिटल डेटा प्रदान करेगा और लोड को नियंत्रित करेगा, 16x2 चरित्र डिस्प्ले में डेटा प्रदर्शित भी करेगा। दो अतिरिक्त चीजों का उपयोग किया जाता है, वह है कमी और वृद्धि का बटन। डिजिटल पिन से कनेक्ट करने के बजाय यह एनालॉग पिन में जुड़ा हुआ है। इसलिए, कोई इसे दूसरे प्रकार के स्विच जैसे स्लाइडर या एनालॉग एनकोडर में बदल सकता है। इसके अलावा, कोड को संशोधित करके एक लोड को नियंत्रित करने के लिए कच्चे एनालॉग डेटा प्रदान कर सकता है। यह स्विच डेबिट समस्या से भी बचता है।
अंत में, लोड बढ़ाकर, Arduino नैनो डिजिटल प्रारूप में DAC को लोड डेटा प्रदान करेगा, DAC परिचालन एम्पलीफायर को एनालॉग डेटा प्रदान करेगा, और परिचालन एम्पलीफायर परिचालन एम्पलीफायर के इनपुट वोल्टेज के अनुसार MOSFET को नियंत्रित करेगा। । अंत में, शंट रोकनेवाला के माध्यम से लोड वर्तमान प्रवाह के आधार पर, एक वोल्टेज ड्रॉप दिखाई देगा जो आगे LM358 के दूसरे चैनल द्वारा प्रवर्धित किया जाएगा और Arduino नैनो द्वारा प्राप्त होगा। यह चरित्र प्रदर्शन पर प्रदर्शित किया जाएगा। उपयोगकर्ता द्वारा कमी बटन दबाने पर भी यही बात होगी।
पीसीबी डिजाइन और Gerber फ़ाइल
चूंकि यह सर्किट एक उच्च वर्तमान पथ है, यह अवांछित विफलता मामलों को हटाने के लिए उचित पीसीबी डिजाइन रणनीति का उपयोग करने के लिए एक समझदार विकल्प है। इस प्रकार, एक पीसीबी इस डीसी लोड के लिए डिज़ाइन किया गया है। मैंने अपने पीसीबी को डिजाइन करने के लिए ईगल पीसीबी डिजाइन सॉफ्टवेयर का उपयोग किया है। आप कोई भी PCB Cad Software चुन सकते हैं। सीएडी सॉफ्टवेयर में अंतिम डिज़ाइन किए गए पीसीबी को नीचे की छवि में दिखाया गया है,
इस पीसीबी के डिजाइन के दौरान नोटिस करने के लिए एक महत्वपूर्ण कारक पूरे सर्किट में उचित वर्तमान प्रवाह के लिए एक मोटी शक्ति विमान का उपयोग करना है। वहाँ भी है सिलाई जमीन VIAS (जमीन विमान में यादृच्छिक विअस) उस के लिए उपयोग किया जाता है उचित जमीन प्रवाह ऊपर और नीचे करने के लिए दोनों परतों में।
आप इस PCB की Gerber फाइल को नीचे दिए गए लिंक से भी डाउनलोड कर सकते हैं और इसे फैब्रिकेशन के लिए उपयोग कर सकते हैं।
- एडजस्टेबल इलेक्ट्रॉनिक डीसी लोड Gerber फ़ाइल डाउनलोड करें
ऑलपीसीबी से अपने पीसीबी का आदेश
एक बार जब आप अपनी गेरबर फाइल के साथ तैयार हो जाते हैं, तो आप इसका उपयोग अपने पीसीबी को गढ़ने के लिए कर सकते हैं। जिसके बारे में बोलते हुए, इस लेख के प्रायोजक ALLPCB को लाया गया, जो अपने उच्च गुणवत्ता वाले पीसीबी और अल्ट्राफास्ट शिपिंग के लिए जाने जाते हैं। पीसीबी विनिर्माण के अलावा, AllPCB भी प्रदान करता हैपीसीबी विधानसभा और घटक सोर्सिंग।
उनसे अपना पीसीबी ऑर्डर प्राप्त करने के लिए, पर जाएँ allpcb.com और साइनअप। फिर होम पेज पर, अपने पीसीबी के आयाम और आवश्यक मात्रा दर्ज करें जैसा कि नीचे दिखाया गया है। इसके बाद अब Quote पर क्लिक करें।
अब आप अपने पीसीबी के अन्य मापदंडों को बदल सकते हैं जैसे कि लेयर की संख्या, मास्क का रंग, मोटाई इत्यादि, दाईं ओर, आप अपना देश और पसंदीदा शिपिंग विकल्प चुन सकते हैं। यह आपको लीड समय और भुगतान की जाने वाली कुल राशि दिखाएगा। मैंने डीएचएल को चुना है और मेरी कुल राशि $ 26 है, लेकिन अगर आप पहली बार ग्राहक हैं तो कीमतें चेकआउट में कम हो जाएंगी। फिर Add to Cart पर क्लिक करें और फिर Check out पर क्लिक करें।
अब, आप अपनी जेरब फाइल को “अपलोड गेरबर” पर क्लिक करके अपलोड पर क्लिक करें और फिर खरीद पर क्लिक करें।
अगले पृष्ठ पर, आप अपना शिपिंग पता दर्ज कर सकते हैं और अपने पीसीबी के लिए भुगतान की जाने वाली अंतिम कीमत की जांच कर सकते हैं। फिर आप अपने आदेश की समीक्षा कर सकते हैं और फिर भुगतान करने के लिए सबमिट पर क्लिक कर सकते हैं।
एक बार आपके आदेश की पुष्टि हो जाने के बाद आप वापस आ सकते हैं और अपने पीसीबी के लिए अपने दरवाजे पर पहुंच सकते हैं। मुझे कुछ दिनों के बाद अपना आदेश मिला और फिर पैकेजिंग नीची दिखाई गई जैसा कि नीचे दिखाया गया है।
पीसीबी की गुणवत्ता हमेशा की तरह अच्छी थी जैसा कि आप नीचे की तस्वीरों में देख सकते हैं। बोर्ड के ऊपर की तरफ और नीचे की तरफ नीचे की तरफ दिखाया गया है।
एक बार जब आप अपना बोर्ड प्राप्त कर लेते हैं, तो आप सभी घटकों को असेंबल करने के साथ आगे बढ़ सकते हैं। मेरा तैयार बोर्ड कुछ इस तरह दिखता है जो नीचे दिखाया गया है।
अगला, आप कोड को अपलोड कर सकते हैं और मॉड्यूल की जांच कर सकते हैं कि यह कैसे काम कर रहा है। इस परियोजना का पूरा कोड इस पृष्ठ के नीचे दिया गया है। कोड की व्याख्या इस प्रकार है।
एडजस्टेबल डीसी लोड के लिए Arduino कोड
कोड बहुत सरल है। सबसे पहले, हमने एसपीआई और एलसीडी हेडर फ़ाइलों को शामिल किया और साथ ही अधिकतम तर्क वोल्टेज, चिप चयन पिन आदि को भी सेट किया।
#शामिल
इस अनुभाग में पूर्णांक और चर की आवश्यक कार्यक्रम प्रवाह से संबंधित घोषणाएँ शामिल हैं। इसके अलावा, हम Arduino नैनो के साथ सहयोगी परिधीय पिंस सेट करते हैं।
const int slaveSelectPin = 10; // चिप चयन पिन इंट संख्या = 0; int वृद्धि = A2; // बढ़ाएँ पिन int कमी = A3; // कमी पिन int current_sense = A0; // वर्तमान अर्थ पिन इंट वोल्टेज_एसेंस = ए 1; // वोल्टेज सेंस पिन इंट स्टेट 1 = 0; int state2 = 0; int सेट = 0; फ्लोट वोल्ट = 0; float load_current = 0.0; float load_voltage = 0.0; फ्लोट करंट = 0.0; फ्लोट वोल्टेज = 0.0; लिक्विड क्रिस्टल एलसीडी (7, 6, 5, 4, 3, 2); // एलसीडी पिन
इसका उपयोग LCD और SPI के सेटअप के लिए किया जाता है। इसके अलावा, पिन दिशाएं यहां पर सेट की गई हैं।
शून्य सेटअप () { pinMode (slaveSelectPin, OUTPUT); पिनमोड (वृद्धि, INPUT); पिनमोड (कमी, INPUT); pinMode (current_sense, INPUT); पिनमोड (वोल्टेज_सेंस, INPUT); // आरंभिक SPI: SPI.begin (); // एलसीडी के कॉलम और पंक्तियों की संख्या निर्धारित करें: lcd.begin (16, 2); // एलसीडी को एक संदेश प्रिंट करें। lcd.print ("डिजिटल लोड"); lcd.setCursor (0, 1); lcd.print ("सर्किट डाइजेस्ट"); देरी (2000); }
इसका उपयोग DAC मान परिवर्तित करने के लिए किया जाता है।
void Convert_DAC (अहस्ताक्षरित int value) { / * स्टेप साइज़ = 2 ^ n, इसलिए 12bit 2 ^ 12 = 4096 5V संदर्भ के लिए, चरण 5/4095 = 0.0012210012210012V या 1VV (लगभग) * / अहस्ताक्षरित इंट कंटेनर होगा; अहस्ताक्षरित int MSB; अहस्ताक्षरित int एलएसबी; / * चरण: 1, कंटेनर में 12 बिट डेटा संग्रहीत किया जाता है मान लीजिए कि डेटा 4095 है, बाइनरी 1111 1111 1111 * / कंटेनर = मूल्य में; / * चरण: 2 डमी 8 बिट बनाना। तो, 256 को विभाजित करके, ऊपरी 4 बिट्स LSB LSB = 0000 1111 * / LSB = कंटेनर / 256 में कैप्चर किए जाते हैं ; / * चरण: 3 4 बिट डेटा छिद्रण के साथ विन्यास भेज रहा है। LSB = 0011 0000 या 0000 1111. परिणाम 0011 1111 * / LSB = (0x30) - LSB है; / * चरण: 4 कंटेनर में अभी भी 21 बिट मूल्य है। निचले 8 बिट्स को निकालना। 1111 1111 और 1111 1111 1111. परिणाम 1111 1111 है जो MSB * / MSB = 0xFF और कंटेनर है; / * चरण: 4 दो बाइट्स में विभाजित करके 16 बिट्स डेटा भेजना। * (digitalWrite (slaveSelectPin, LOW); देरी (100); SPI.transfer (LSB); SPI.transfer (MSB); देरी (100); // SS पिन ले लो चिप का चयन करने के लिए उच्च: digitalWrite (slaveSelectPin, HIGH); }
इस अनुभाग का उपयोग वर्तमान संवेदी संबंधित परिचालन के लिए किया जाता है।
float read_current (शून्य) { load_current = 0; for (int a = 0; a <average; a ++) { load_current = load_current + analogRead (current_sense); } load_current = load_current / औसत; load_current = (load_current * MAX_VOLT) / 1024; load_current = (load_current / opamp_gain) / load_resistor; वापसी load_current; }
इसका उपयोग लोड वोल्टेज को पढ़ने के लिए किया जाता है।
फ्लोट read_voltage (शून्य) { load_voltage = 0; for (int a = 0; a <average; a ++) { load_voltage = load_voltage + analogRead (voltage_sense); } load_voltage = load_voltage / औसत; load_voltage = ((load_voltage * MAX_VOLT) / 1024.0) * 6; वापसी load_voltage; }
यह वास्तविक लूप है। यहां, स्विच चरणों को मापा जाता है और डेटा डीएसी को भेजा जाता है। डेटा संचारित करने के बाद, वास्तविक प्रवाह और लोड वोल्टेज को मापा जा रहा है। दोनों मूल्य भी अंततः एलसीडी पर मुद्रित होते हैं।
शून्य लूप () { state1 = analogRead (वृद्धि); अगर (राज्य 1> 500) { विलंब (50); राज्य 1 = एनालॉगरेड (वृद्धि); if (State1> 500) { volt = volt + 0.02; } } State2 = analogRead (कमी); अगर (राज्य 2> 500) { विलंब (50); State2 = analogRead (कमी); if (State2> 500) { if (volt == 0) { volt = 0; } और { volt = volt-0.02; } } } संख्या = वोल्ट / 0.0012210012210012; Convert_DAC (संख्या); वोल्टेज = read_voltage (); current = read_current (); lcd.setCursor (0, 0); lcd.print ("मूल्य निर्धारित करें"); lcd.print ("="); सेट = (वोल्ट / 2) * १००००; lcd.print (सेट); lcd.print ("mA"); lcd.setCursor (0, 1); lcd.print ("I"); lcd.print ("="); lcd.print (करंट); lcd.print ("ए"); lcd.print ("V"); lcd.print ("="); lcd.print (वोल्टेज); lcd.print ("V"); // lcd.print (load_voltage); //lcd.print("mA "); // देरी (1000); //lcd.clear (); }
हमारे एडजस्टेबल डीसी लोड का परीक्षण
डिजिटल लोड सर्किट को 12V पावर स्रोत का उपयोग करके टांका लगाने और संचालित किया जाता है। मैंने अपनी 7.4V लिथियम बैटरी का उपयोग शक्ति स्रोत की तरफ किया और यह जांचने के लिए क्लैंप मीटर जुड़ा कि यह कैसे काम कर रहा है। जैसा कि आप देख सकते हैं कि जब सेट करेंट 300mA होता है तो सर्किट बैटरी से 300mA खींचता है जिसे क्लैंप मीटर द्वारा 310mA के रूप में भी मापा जाता है।
सर्किट का पूरा काम नीचे दिए गए वीडियो में पाया जा सकता है। आशा है कि आपने परियोजना को समझा और कुछ उपयोगी बनाने का आनंद लिया। यदि आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में छोड़ दें या फ़ोरम का उपयोग करें।