विषयसूची:

एक और बैटरी क्षमता परीक्षक: 6 कदम
एक और बैटरी क्षमता परीक्षक: 6 कदम

वीडियो: एक और बैटरी क्षमता परीक्षक: 6 कदम

वीडियो: एक और बैटरी क्षमता परीक्षक: 6 कदम
वीडियो: How To Calculate Battery Capacity - Ah / Dependent On Backup Time (t),Volt (v), Watt (w) | POWER-GEN 2024, नवंबर
Anonim
एक और बैटरी क्षमता परीक्षक
एक और बैटरी क्षमता परीक्षक
एक और बैटरी क्षमता परीक्षक
एक और बैटरी क्षमता परीक्षक

क्यों एक और क्षमता परीक्षक

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

चरण 1: इतिहास - संस्करण 1

इतिहास - संस्करण 1
इतिहास - संस्करण 1

ऊपर पहला संस्करण है जिसमें नीचे उल्लेखित 10V से अधिक इनपुट समर्थन जोड़ा गया है (R12&R17&Q11&Q12)।

पहला संस्करण कमोबेश deba168 द्वारा एक निर्देशयोग्य से लिया गया था (दुर्भाग्य से मैं एक लिंक प्रदान करने के लिए उसका निर्देश योग्य नहीं पा सकता)। केवल कुछ मामूली बदलाव किए गए थे। इस संस्करण में मेरे पास एक मस्जिद द्वारा नियंत्रित एक १० ओम लोड रोकनेवाला था। हालांकि यह कुछ समस्याएं लेकर आया। एक NiCd या NiMH सेल का परीक्षण करते समय आवश्यक समय आसानी से घंटों में मापा जाता था यदि दिन नहीं। 1500mAh की बैटरी को 12 घंटे से अधिक का समय लगा (वर्तमान में केवल 120mA था)। दूसरी ओर, पहला संस्करण केवल 10V से कम की बैटरी का परीक्षण कर सकता था। और एक पूरी तरह से चार्ज की गई 9.6V बैटरी वास्तव में 11.2V तक हो सकती है जिसे 10V सीमा के कारण परीक्षण नहीं किया जा सकता है। कुछ करने की जरूरत थी। सबसे पहले, मैंने वोल्टेज डिवाइडर को 10V से अधिक की अनुमति देने में सक्षम बनाने के लिए बस कुछ मस्जिदों और प्रतिरोधों को जोड़ा। लेकिन इसने दूसरी ओर एक और समस्या खड़ी कर दी। पूरी तरह से भरी हुई 14.4V की बैटरी में tp 16.8V हो सकता है, जिसमें 10 ओम रेसिस्टर का मतलब 1.68A करंट होता है और निश्चित रूप से लगभग 30W के लोड रेसिस्टर से बिजली अपव्यय होता है। तो, कम वोल्टेज के साथ बहुत लंबा परीक्षण समय और उच्च वोल्टेज के साथ बहुत अधिक वर्तमान। स्पष्ट रूप से यह पर्याप्त समाधान नहीं था और आगे विकास की आवश्यकता थी।

चरण 2: संस्करण 2

मैं एक ऐसा समाधान चाहता था जहां बैटरी वोल्टेज की परवाह किए बिना करंट कुछ निश्चित सीमाओं में रहे। एक समाधान पीडब्लूएम और सिर्फ एक रोकनेवाला का उपयोग करना होगा, लेकिन मैंने वर्तमान को स्पंदित किए बिना या मस्जिद की गर्मी को खत्म करने की आवश्यकता के बिना एक समाधान होना पसंद किया। इस प्रकार, मैंने 10 वोल्टेज स्लॉट्स के साथ एक समाधान बनाया, प्रत्येक 2V चौड़ा, 10 3.3ohm प्रतिरोधों और प्रत्येक अवरोधक के लिए एक मस्जिद का उपयोग करके।

चरण 3: यह इस तरह निकला

यह इस तरह निकला
यह इस तरह निकला

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

  • Arduino Pro Mini 5V! महत्वपूर्ण! मैंने 5V संस्करण का उपयोग किया है और सब कुछ इस पर आधारित है
  • 128x64 I2C OLED डिस्प्ले
  • 10 x 5W 3.3 ओम प्रतिरोधक
  • 3 x 2n7000 मस्जिद
  • 10 x IRFZ34N मस्जिद
  • 6 x 10 kOhm प्रतिरोधक
  • 2 x 5 kOhm प्रतिरोधक
  • 16V 680uF संधारित्र
  • 1 पुराना सीपीयू फैन

मैंने निम्नलिखित को योजनाबद्ध में नहीं जोड़ा है

  • I2C लाइनों पर पुलअप रेसिस्टर्स, जिन्हें मैंने देखा, ने डिस्प्ले को और अधिक स्थिर बना दिया
  • बिजली के तार
  • 5V लाइन में कैपेसिटर जिसने डिस्प्ले को भी स्थिर किया

परीक्षण करते समय मैंने देखा कि लोड प्रतिरोधक काफी गर्म हो जाएंगे, खासकर यदि वे सभी उपयोग में हों। तापमान १०० डिग्री सेल्सियस (जो २१२ डिग्री फ़ारेनहाइट से अधिक है) तक बढ़ गया है और अगर पूरे सिस्टम को एक बॉक्स में बंद करना है तो किसी प्रकार की शीतलन प्रदान की जानी चाहिए। मेरे द्वारा उपयोग किए जाने वाले प्रतिरोधक 3.3 ओम / 5W हैं और अधिकतम करंट लगभग 2V प्रति प्रतिरोधक के साथ होना चाहिए जो 2V / 3.3 = 0.61A देता है जिसके परिणामस्वरूप 1.21W होता है। मैं बॉक्स में एक साधारण पंखा जोड़ने में समाप्त हुआ। ज्यादातर इसलिए क्योंकि मेरे पास कुछ पुराने सीपीयू फैन थे।

योजनाबद्ध कार्यक्षमता

यह काफी सीधा और आत्म व्याख्यात्मक है। परीक्षण की जाने वाली बैटरी प्रतिरोधों और जमीन की श्रृंखला से जुड़ी होती है। वोल्टेज माप बिंदु बैटरी कनेक्शन और पहला अवरोधक हैं। वोल्टेज डिवाइडर का उपयोग तब वोल्टेज को उस स्तर तक गिराने के लिए किया जाता है जो Arduino को बेहतर तरीके से सूट करता है। डिवाइडर के 10V या 20V रेंज का चयन करने के लिए एक डिजिटल आउटपुट का उपयोग किया जाता है। लोड में प्रत्येक अवरोधक को व्यक्तिगत रूप से मस्जिदों का उपयोग करके ग्राउंड किया जा सकता है, जो सीधे Arduino द्वारा संचालित होते हैं। और अंत में, डिस्प्ले Arduino I2C पिन से जुड़ा है। योजनाबद्ध J. के बारे में कहने के लिए बहुत कुछ नहीं है

चरण 4: कोड

कोड
कोड

ऊपर कोड की किसी न किसी कार्यक्षमता को देखा जा सकता है। आइए कोड पर करीब से नज़र डालें (arduino ino फ़ाइलें संलग्न हैं)। कई कार्य हैं और फिर मुख्य लूप।

मुख्य घेरा

जब माप तैयार हो जाता है तो परिणाम दिखाए जाते हैं, और निष्पादन वहीं समाप्त होता है। यदि माप अभी तक नहीं किया गया है, तो पहले जाँच की जाती है कि किस प्रकार की बैटरी का चयन किया गया है और फिर इनपुट के पार वोल्टेज। यदि वोल्टेज 0.1V से अधिक है तो कम से कम किसी प्रकार की बैटरी जुड़ी होनी चाहिए। इस मामले में एक सबरूटीन को यह पता लगाने की कोशिश करने के लिए कहा जाता है कि बैटरी में कितने सेल हैं, यह तय करने के लिए कि कैसे परीक्षण किया जाए। कोशिकाओं की संख्या कमोबेश ऐसी जानकारी है जिसका बेहतर उपयोग किया जा सकता है लेकिन, इस संस्करण में, यह केवल सीरियल इंटरफ़ेस के माध्यम से रिपोर्ट किया जाता है। यदि सब कुछ अच्छा है तो डिस्चार्ज प्रक्रिया शुरू हो जाती है और मुख्य लूप के हर दौर में बैटरी की क्षमता की गणना की जाती है। मुख्य लूप के अंत में डिस्प्ले ज्ञात मानों से भर जाता है।

परिणाम दिखाने की प्रक्रिया

ShowResults फ़ंक्शन केवल डिस्प्ले पर दिखाई जाने वाली लाइनों को सेट करता है और स्ट्रिंग को सीरियल इंटरफ़ेस पर भेजने के लिए भी सेट करता है।

वोल्टेज मापने की प्रक्रिया

फ़ंक्शन की शुरुआत में Arduino के Vcc को मापा जाता है। एनालॉग इनपुट का उपयोग करके मापा वोल्टेज की गणना करने में सक्षम होने की आवश्यकता है। फिर बैटरी वोल्टेज को 20V रेंज का उपयोग करके मापा जाता है ताकि यह तय किया जा सके कि किस रेंज का उपयोग करना है। फिर बैटरी वोल्टेज और रेसिस्टर वोल्टेज दोनों की गणना की जाती है। बैटरी वोल्टेज माप डिवाइडर इनपुट वर्ग का लाभ उठाते हैं जिसमें कच्चे रीडिंग या प्रश्न में एनालॉग इनपुट की गणना वोल्टेज देने के लिए तरीके पढ़ने और वोल्टेज होते हैं।

प्रयुक्त मूल्यों के चयन की प्रक्रिया

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

बैटरी क्षमता की गणना के लिए प्रक्रिया

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

उपयोग करने के लिए प्रतिरोधों की संख्या ज्ञात करने की प्रक्रिया

SelectNumOfResistors फ़ंक्शन में प्रीसेट मानों के लिए वोल्टेज की एक साधारण तुलना की जाती है और परिणामस्वरूप उपयोग किए जाने वाले प्रतिरोधों की संख्या तय की जाती है। कुछ प्रतिरोधों को छोड़ने के लिए उपयुक्त मस्जिद खोली जाती है। वोल्टेज स्लॉट्स का चयन किया जाता है ताकि डिस्चार्ज के दौरान किसी भी समय अधिकतम करंट 600mA (2V/3.3Ohm = 606mA) से थोड़ा अधिक रहे। फ़ंक्शन उपयोग किए गए प्रतिरोधों की संख्या लौटाता है। क्योंकि पंखा उसी लाइन से चलता है जिस तरह से पहली मस्जिद को डिस्चार्ज होने पर इसे हमेशा खोलना पड़ता है।

चरण 5: मीटर को कैलिब्रेट करना

मीटर को कैलिब्रेट करना
मीटर को कैलिब्रेट करना

मीटर को कैलिब्रेट करने के लिए मैंने एक और ऐप बनाया (संलग्न)। यह उसी हार्डवेयर का उपयोग करता है। शुरुआत में करेक्शन डिवाइडर का मान 1000 पर सेट होता है।

const int divCorrectionB10V = १०००; // डिवाइडर करेक्शन मल्टीप्लायर इन रेंज 10V कॉन्स्ट इंट डिवकोरेक्शनआर 10 वी = 1000; // डिवाइडर करेक्शन मल्टीप्लायर इन रेंज १०वी कॉन्स्ट इंट डिवकोरेक्शनबी२०वी = १०००; // डिवाइडर करेक्शन मल्टीप्लायर इन रेंज २०वी कॉन्स्ट इंट डिवकोरेक्शनआर२०वी = १०००; // 20V. की सीमा में विभक्त सुधार गुणक

readVcc () फ़ंक्शन में परिणामी Vcc वोल्टेज वापसी से पहले फ़ंक्शन की अंतिम पंक्ति पर मान सेट करने पर निर्भर करता है। आमतौर पर आप इंटरनेट में गणना में उपयोग किए जाने वाले 1126400L का मान पा सकते हैं। मैंने देखा कि परिणाम सही नहीं था।

अंशांकन प्रक्रिया:

  1. मापन ऐप को Arduino पर लोड करें।
  2. लोड चालू होने पर आप Arduino (और सीरियल आउटपुट में और अगर पंखा घूम रहा है) में देख सकते हैं। यदि यह बैटरी प्रकार चयन स्विच को चालू करता है।
  3. सही परिणाम प्राप्त करने के लिए readuVCC() में मान समायोजित करें। वह मान लें जो फ़ंक्शन देता है (जो मिलीवोल्ट में है) और इसके साथ लंबे मान को विभाजित करें। आपको आंतरिक संदर्भ का कच्चा मूल्य मिलेगा। अब एक मल्टीमीटर के साथ मिलीवोल्ट में वास्तविक आपूर्ति वोल्टेज को मापें और इसे पहले से गणना किए गए मान से गुणा करें और आपको नया सही लंबा मान मिलता है। मेरे मामले में फ़ंक्शन 5288mV लौटा जब वास्तविक Vcc 5.14V था। 1126400/5288*5140=1094874 की गणना करना जिसे मैंने परीक्षण द्वारा ठीक किया। कोड में नया मान डालें और इसे फिर से Arduino पर अपलोड करें।
  4. एनालॉग इनपुट रेसिस्टर डिवाइडर करेक्शन वैल्यू को एडजस्ट करने के लिए एडजस्टेबल पावर सोर्स का उपयोग किया जाता है जिसका उपयोग मीटर के इनपुट को फीड करने के लिए किया जाता है। 1V चरणों के साथ 1V से 20V तक के वोल्टेज का उपयोग करना और स्प्रेडशीट में परिणाम रिकॉर्ड करना सबसे आसान है। स्प्रेडशीट में औसत लिया जाता है। सही किए गए मानों की गणना निम्न सूत्र के साथ की जाती है: "raw_value*range*Vcc/Vin " जहां raw_value 10VdivB, 10VdivR, 20VdivB या 20VdivR में मान है, जिसके आधार पर सुधार की गणना की जानी है।

स्प्रैडशीट देखें कि यह मुझे कैसी लगी। औसत की गणना केवल उन मानों से की जाती है जो सीमा पर होने हैं और फिर उन मानों को वास्तविक मीटर ऐप में सेट किया जाता है।

इस कदर

const int divCorrectionB10V = ९९८; // डिवाइडर करेक्शन डिवाइडर इन रेंज 10V कॉन्स्ट इंट डिवकोरेक्शनआर 10 वी = 1022; // डिवाइडर करेक्शन डिवाइडर रेंज में 10V const int divCorrectionB20V = 1044; // डिवाइडर करेक्शन डिवाइडर इन रेंज 20V कॉन्स्ट इंट डिवकोरेक्शनआर 20 वी = 1045; // डिवाइडर करेक्शन डिवाइडर रेंज 20V

इनपुट (यानी 2V) को कुछ वोल्टेज प्रदान करके, बैट टाइप स्विच (लोड ऑन करने के लिए) को स्विच करके और पहले रेसिस्टर में जाने वाले करंट और वोल्टेज को मापकर और वोल्टेज को करंट से विभाजित करके रेसिस्टर वैल्यू को एडजस्ट किया जा सकता है।. मेरे लिए 2V ने 607mA दिया जो 2/0.607 = 3.2948 ओम देता है जिसे मैंने 3.295 ओम तक गोल किया। तो अब अंशांकन किया जाता है।

चरण 6: अंतिम नोट

यहां एक महत्वपूर्ण नोट। बैटरी से लेकर रेसिस्टर्स तक सभी कनेक्शन प्राइम कंडीशन में होना जरूरी है। मेरा एक खराब कनेक्शन था और मैं सोच रहा था कि मुझे बैटरी की तुलना में रोकनेवाला ग्रिड में 0.3V कम वोल्ट क्यों मिला। इसका मतलब था कि माप प्रक्रिया लगभग तुरंत 1.2V NiCd कोशिकाओं के साथ समाप्त हो गई क्योंकि 0.95V की निचली सीमा जल्दी से पहुंच गई थी।

सिफारिश की: