बॅटरीची क्षमता आणि अंतर्गत प्रतिकार यासाठी डिजिटल मीटर. बॅटरी क्षमता मोजण्यासाठी एक उपकरण. ली आयन बॅटरीची क्षमता मोजण्यासाठी मूलभूत पद्धती सर्किट

हे उपकरण Li-ion आणि Ni-Mh बॅटरीची क्षमता मोजण्यासाठी तसेच प्रारंभिक चार्ज करंटच्या निवडीसह Li-ion बॅटरी चार्ज करण्यासाठी डिझाइन केले आहे.

नियंत्रण

आम्ही डिव्हाइसला 5V च्या स्थिर वीज पुरवठ्याशी आणि 1A च्या करंटशी कनेक्ट करतो (उदाहरणार्थ, सेल फोनवरून). इंडिकेटर मागील कॅपॅसिटन्स मापन “xxxxmA/c” चा परिणाम 2 सेकंदांसाठी आणि दुसऱ्या ओळीवर OCR1A रजिस्टर “S.xxx” चे मूल्य दाखवतो. आम्ही बॅटरी घालतो. जर तुम्हाला बॅटरी चार्ज करायची असेल, तर चार्ज बटण थोडक्यात दाबा, जर तुम्हाला क्षमता मोजायची असेल तर TEST बटण थोडक्यात दाबा. जर तुम्हाला चार्ज करंट (OCR1A रजिस्टरचे मूल्य) बदलण्याची गरज असेल, तर चार्ज बटण जास्त वेळ (2 सेकंद) दाबा. नोंदणी समायोजन विंडोवर जा. चला बटण सोडूया. चार्ज बटण थोडक्यात दाबून, आम्ही एका वर्तुळात नोंदणी मूल्ये (50-75-100-125-150-175-200-225) बदलतो, पहिली ओळ निवडलेल्या मूल्यावर रिकाम्या बॅटरीचा चार्जिंग करंट दर्शवते. (आपल्याकडे सर्किटमध्ये 0 रेझिस्टर असेल तर, 22 Ohm). TEST बटण थोडक्यात दाबा;
जर तुम्ही डिव्हाइससह विविध हाताळणी केली असतील आणि तुम्हाला घड्याळ किंवा मोजलेली क्षमता रीसेट करण्याची आवश्यकता असेल, तर TEST बटण बराच काळ दाबा (OCR1A रजिस्टरची मूल्ये रीसेट केलेली नाहीत). चार्ज पूर्ण होताच, डिस्प्ले बॅकलाइट बंद होतो, बॅकलाईट चालू करण्यासाठी, TEST किंवा CHARGE बटण थोडक्यात दाबा.

डिव्हाइसचे ऑपरेटिंग लॉजिक खालीलप्रमाणे आहे:

पॉवर लागू केल्यावर, इंडिकेटर बॅटरीच्या क्षमतेच्या मागील मोजमापाचा परिणाम आणि नॉन-अस्थिर मेमरीमध्ये संग्रहित OCR1A रजिस्टरचे मूल्य प्रदर्शित करतो. 2 सेकंदांनंतर, डिव्हाइस टर्मिनल्सवरील व्होल्टेजवर आधारित बॅटरी प्रकार निर्धारित करण्याच्या मोडमध्ये जाते.

जर व्होल्टेज 2V पेक्षा जास्त असेल तर ती ली-आयन बॅटरी आहे आणि पूर्ण डिस्चार्ज व्होल्टेज 2.9V असेल, अन्यथा ती Ni-MH बॅटरी आहे आणि पूर्ण डिस्चार्ज व्होल्टेज 1V असेल. बॅटरी कनेक्ट केल्यानंतरच कंट्रोल बटणे उपलब्ध होतात. पुढे, डिव्हाइस चाचणी किंवा चार्ज बटणे दाबण्याची प्रतीक्षा करते. डिस्प्ले "_STOP" दाखवतो. जेव्हा तुम्ही चाचणी बटण थोडक्यात दाबता, तेव्हा लोड MOSFET द्वारे जोडला जातो.

डिस्चार्ज करंटची तीव्रता 5.1 ओहम रेझिस्टरवरील व्होल्टेजद्वारे निर्धारित केली जाते आणि प्रत्येक मिनिटाला मागील मूल्यासह एकत्रित केली जाते. घड्याळ चालवण्यासाठी उपकरण 32768Hz क्वार्ट्ज वापरते.

डिस्प्ले बॅटरीची क्षमता "xxxxmA/s" आणि डिस्चार्ज टॉरस "A.xxx" चे वर्तमान मूल्य तसेच बटण दाबल्याच्या क्षणापासून "xx:xx:xx" दर्शवते. ॲनिमेटेड लो बॅटरी आयकॉन देखील दाखवला आहे. Ni-MH बॅटरीच्या चाचणीच्या शेवटी, "_STOP" संदेश दिसतो, मापन परिणाम "xxxxmA/c" डिस्प्लेवर प्रदर्शित होतो आणि लक्षात ठेवला जातो.

जर बॅटरी ली-आयन असेल, तर मापन परिणाम "xxxxmA/c" डिस्प्लेवर देखील प्रदर्शित केला जातो आणि लक्षात ठेवला जातो, परंतु चार्जिंग मोड त्वरित सक्रिय केला जातो. डिस्प्ले OCR1A रजिस्टर "S.xxx" ची सामग्री दाखवते. ॲनिमेटेड बॅटरी चार्ज चिन्ह देखील दर्शविले आहे.

चार्ज करंट PWM वापरून समायोजित केला जातो आणि 0.22 ओहम रेझिस्टरद्वारे मर्यादित असतो. हार्डवेअरमध्ये, चार्ज करंट 0.22 Ohm वरून 0.5-1 Ohm पर्यंत वाढवून कमी केला जाऊ शकतो. चार्जिंगच्या सुरूवातीस, प्रवाह हळूहळू OCR1A रजिस्टरच्या मूल्यापर्यंत वाढतो किंवा जोपर्यंत बॅटरी टर्मिनल्सवरील व्होल्टेज 4.22V पर्यंत पोहोचत नाही (जर बॅटरी चार्ज केली गेली असेल).

चार्ज करंटचे प्रमाण OCR1A रजिस्टरच्या मूल्यावर अवलंबून असते - मूल्य जितके मोठे असेल तितके चार्ज करंट जास्त असेल. जेव्हा बॅटरी टर्मिनल्सवरील व्होल्टेज 4.22V पेक्षा जास्त होते, तेव्हा OCR1A रजिस्टरचे मूल्य कमी होते. OCR1A नोंदणी मूल्य 33 होईपर्यंत रिचार्जिंग प्रक्रिया चालू राहते, जे सुमारे 40 mA च्या विद्युत् प्रवाहाशी संबंधित आहे. यामुळे शुल्क समाप्त होते. डिस्प्ले बॅकलाइट बंद होतो.

सेटिंग्ज

1. पॉवर कनेक्ट करा.
2. बॅटरी कनेक्ट करा.
3. व्होल्टमीटरला बॅटरीशी जोडा.
4. तात्पुरती + आणि - बटणे (PB4 आणि PB5) वापरून, आम्ही डिस्प्लेवरील व्होल्टमीटर रीडिंग आणि संदर्भ व्होल्टमीटर जुळत असल्याची खात्री करतो.
5. TEST बटण (2 सेकंद) जास्त वेळ दाबा, लक्षात ठेवा.
6. बॅटरी काढा.
7. व्होल्टमीटरला 5.1 ओहम रेझिस्टरशी कनेक्ट करा (09N03LA ट्रान्झिस्टरजवळील आकृतीनुसार).
8. बॅटरी टर्मिनल्सशी समायोज्य वीज पुरवठा कनेक्ट करा, वीज पुरवठा 4V वर सेट करा.
9. थोडक्यात TEST बटण दाबा.
10. आम्ही 5.1 ओहम रेझिस्टर - यू वरील व्होल्टेज मोजतो.
11. डिस्चार्ज करंट I=U/5.1 मोजा
12. तात्पुरती बटणे + आणि - (PB4 आणि PB5) वापरून आम्ही "A.xxx" या निर्देशकावर गणना केलेला डिस्चार्ज करंट I सेट करतो.
13. TEST बटण (2 सेकंद) जास्त वेळ दाबा, लक्षात ठेवा.

डिव्हाइस 5 व्होल्टच्या व्होल्टेजसह आणि 1A च्या विद्युत् प्रवाहासह स्थिर स्त्रोतापासून समर्थित आहे. 32768Hz वर क्वार्ट्ज अचूक वेळ ठेवण्यासाठी डिझाइन केले आहे. ATmega8 कंट्रोलर 8 MHz च्या फ्रिक्वेन्सीसह अंतर्गत ऑसिलेटरमधून घड्याळ केले जाते आणि योग्य कॉन्फिगरेशन बिट्ससह EEPROM इरेजर संरक्षण सेट करणे देखील आवश्यक आहे. नियंत्रण कार्यक्रम लिहिताना, या साइटवरील शैक्षणिक लेख वापरले गेले.

तुम्ही तिसऱ्या ओळीवर 16x4 डिस्प्ले (डीबगिंगसाठी 16x4 श्रेयस्कर आहे) कनेक्ट केल्यास व्होल्टेज आणि वर्तमान गुणांक (Ukof. Ikof) ची वर्तमान मूल्ये पाहिली जाऊ शकतात. किंवा Ponyprog मध्ये तुम्ही EEPROM फर्मवेअर फाइल उघडल्यास (EEPROM कंट्रोलरवरून वाचा).
1 बाइट - OCR1A, 2 बाइट - I_kof, 3 बाइट - U_kof, 4 आणि 5 बाइट हे मागील क्षमतेच्या मापनाचे परिणाम आहेत.

डिव्हाइसचा व्हिडिओ:


प्रस्तावित उपकरण Ni-Cd आणि Ni-MH बॅटरीची क्षमता आणि अंतर्गत प्रतिकार मोजण्यासाठी डिझाइन केलेले आहे. अत्याधिक कमी बॅटरी व्होल्टेज, तसेच त्याच्या डिस्चार्जच्या समाप्तीच्या क्षणाचे ध्वनी संकेत आहे.

बॅटरीची क्षमता मोजणे हे स्थिर विद्युत् प्रवाहाने डिस्चार्ज करणे, डिस्चार्ज वेळ मोजणे आणि ही मूल्ये गुणाकार करणे यावर आधारित आहे. अंतर्गत प्रतिकार मोजताना, डिव्हाइस लोड न करता बॅटरी व्होल्टेज मोजते, नंतर लोड अंतर्गत 1 A च्या प्रवाहासह आणि या डेटाच्या आधारावर, बॅटरीच्या अंतर्गत प्रतिकाराची गणना करते.

डिव्हाइस आकृती अंजीर मध्ये दर्शविली आहे. 1. त्याचा आधार ATmedav मायक्रोकंट्रोलर (DD1) आहे. सिंगल-वायर इंटरफेस असलेल्या कीबोर्डमध्ये सहा बटणे SB1-SB6 असतात. मोजलेल्या बॅटरी पॅरामीटर्सची माहिती नऊ-अंकी LED इंडिकेटर HG1 वर प्रदर्शित केली जाते. कनेक्ट केलेली बॅटरी डिस्चार्ज करण्यासाठी, op-amp DA2, ट्रान्झिस्टर VT1, प्रतिरोधक R9, R10, R19-R21, R23 आणि कॅपेसिटर C7, C9 वर व्होल्टेज-नियंत्रित वर्तमान स्रोत (VTUN) वापरला जातो.

कनेक्ट केलेल्या बॅटरीचा व्होल्टेज 1 V पेक्षा कमी असल्यास, डिव्हाइसचा कीबोर्ड लॉक केला जातो आणि BF1 कॅप्सूल 600 Hz च्या वारंवारतेने तीन मधूनमधून ध्वनी पल्स उत्सर्जित करते. जर बॅटरी व्होल्टेज 1 V च्या वर असेल तर, BF1 कॅप्सूल बॅटरी कनेक्ट केल्यावर 3000 Hz च्या वारंवारतेने दोन अधूनमधून ध्वनी नाडी उत्सर्जित करते आणि जेव्हा ते सेट व्होल्टेजवर डिस्चार्ज पूर्ण करते तेव्हा देखील.

बॅटरी कनेक्ट केल्यानंतर, SB3 आणि SB4 बटणे दाबून व्होल्टेज सेट करा. थोडक्यात दाबल्यावर सेटिंगची पायरी 0.1 V असते. जेव्हा तुम्ही बटण दाबून ठेवता तेव्हा पहिल्या दहा चरणांची मूल्ये 0.1 V, नंतर 1 V असतात. त्यानंतर, SB1 आणि SB2 बटण दाबून, डिस्चार्ज करंट सेट केला जातो. जर ही बटणे पाच सेकंदांपेक्षा कमी वेळ धरून ठेवली तर, वर्तमान मूल्य बदलत नाही आणि त्याचे वर्तमान मूल्य प्रदर्शित केले जाईल, जसे अंजीरमधील फोटोमध्ये दाखवले आहे. 2 (खालच्या स्थितीत і चिन्ह). जर SB1 आणि SB2 बटणे पाच सेकंदांपेक्षा जास्त काळ धरली गेली, तर वर्तमान मूल्य व्हेरिएबल चरणांमध्ये बदलेल: प्रथम 50 mA, नंतर 150 mA. या प्रकरणात, अंजीरमधील फोटोमध्ये दर्शविल्याप्रमाणे і चिन्ह शीर्ष स्थानावर प्रदर्शित केले जाईल. 3.

डिस्चार्ज करंटचे कमाल मूल्य 2.55 A आहे डिस्चार्ज करंट शून्यापेक्षा जास्त मूल्यापर्यंत पोहोचताच (जेव्हा बॅटरी व्होल्टेज सेट थ्रेशोल्डपेक्षा जास्त किंवा त्याच्या बरोबरीचे असेल), ध्वनी सिग्नल अदृश्य होईल आणि HL1 एलईडी सुरू होईल. 0.25 Hz च्या वारंवारतेवर डोळे मिचकावणे. जेव्हा तुम्ही SB5 बटण दाबता, तेव्हा लोड नसलेले व्होल्टेज मोजले जाते आणि साठवले जाते, त्यानंतर लोड अंतर्गत, ohms मधील अंतर्गत प्रतिकार मोजला जातो, जो फोटोमध्ये दर्शविल्याप्रमाणे, g चिन्हासह निर्देशकाच्या कमी-ऑर्डर अंकांमध्ये प्रदर्शित होतो. अंजीर मध्ये. 4.

जेव्हा तुम्ही SB6 बटण दाबता, तेव्हा HG1 इंडिकेटरचे सर्वोच्च अंक वर्तमान बॅटरी व्होल्टेज प्रदर्शित करतात. जेव्हा कोणतेही बटण दाबले जात नाही, तेव्हा HG1 निर्देशकाचे उच्च अंक व्होल्टेज दर्शवतात ज्यात बॅटरी डिस्चार्ज करणे आवश्यक आहे आणि कमी अंक XX.XX अँपिअर-तास स्वरूपात क्षमता दर्शवतात. दहापट व्होल्ट आणि अँपिअर-तासांचे क्षुल्लक शून्य सॉफ्टवेअरद्वारे रद्द केले जातात.

बहुतेक भाग एकतर्फी फॉइल-लेपित फायबरग्लासने बनवलेल्या मुद्रित सर्किट बोर्डवर बसवलेले आहेत, ज्याचे रेखाचित्र अंजीर मध्ये दर्शविले आहे. 5 पातळ आयत मुद्रित सर्किट कंडक्टरच्या बाजूला स्थापित पृष्ठभाग माउंट घटक R7, R8 आणि C5 दर्शवितात.

संपूर्ण मध्यांतरात ITUN प्रवाहाची रेखीयता सुनिश्चित करण्यासाठी, सर्वात कमी संभाव्य शून्य ऑफसेट व्होल्टेजसह op-amp DA2 आणि कमी थ्रेशोल्ड व्होल्टेजसह ट्रान्झिस्टर VT1 वापरणे आवश्यक आहे. लेखकाच्या प्रतीमध्ये, op-amp DA2 चे शून्य बायस व्होल्टेज सुमारे 4 mV आहे आणि 1 A च्या ड्रेन करंटवर 1.85 V च्या थ्रेशोल्ड व्होल्टेजसह ट्रान्झिस्टर VT1 आहे, ITUN प्रवाहाची नॉनलाइनरिटी 10% पेक्षा जास्त नाही. ITUN चे किमान वर्तमान मूल्य 2 mA पेक्षा जास्त नाही. ट्रान्झिस्टर व्हीटी 1 हीट सिंकशिवाय स्थापित केले आहे. ते थंड करण्यासाठी संगणक प्रोसेसरचा पंखा वापरला जातो. पंखा आणि डिव्हाइसला 9.. 12 V च्या आउटपुट व्होल्टेजसह अस्थिर नेटवर्क ॲडॉप्टरकडून उर्जा मिळते आणि किमान 0.5 A लोड करंट.

सेटअपमध्ये प्रतिरोधक R6 आणि R9 निवडणे समाविष्ट आहे. रेझिस्टर आर 6 निवडून, एचजी 1 निर्देशकाच्या सर्वात महत्त्वपूर्ण अंकांचे वाचन मानक व्होल्टमीटर वापरून निर्धारित केले जाते. पुढे, SB1 आणि SB2 ही बटणे दाबून, HG1 इंडिकेटरवर डिस्चार्ज करंटचे आवश्यक मूल्य दर्शविले जाते, ITUN करंटचे मानक ॲमीटरने मोजमाप करा आणि रेझिस्टर R9 निवडा आणि HG1 इंडिकेटरच्या रीडिंगच्या बरोबरीने मोजलेला प्रवाह सेट करा. .

P.S. जर मायक्रोकंट्रोलर क्लॉक जनरेटरमध्ये स्वयं-उत्तेजना नसेल, तर त्याचे पिन 9 आणि 10 समान क्षमतेच्या 12...22 pF च्या कॅपेसिटरद्वारे सामान्य वायरशी जोडले जावेत.

मायक्रोकंट्रोलर प्रोग्राम डाउनलोड केले जाऊ शकतात.


प्रकाशन तारीख: 07.06.2012


वाचकांची मते
  • [ईमेल संरक्षित] / 18.07.2019 - 21:40
    प्रिय ओझोलिन M.A. मी तुमच्या सर्किट रेडिओ क्र. 7, 2015 चा लेआउट ATtiny26 वर तयार केला आहे, जसे मला समजले आहे की, सर्किटमध्ये क्वार्ट्जमध्ये त्रुटी आहे. आकृती 32768Hz घड्याळ रेझोनेटर दाखवते. आणि फ्यूज (एच-17, एल-ईई) 4 मेगाहर्ट्झ क्वार्ट्जसह काम करू लागले. कदाचित फ्यूज चुकीचे सूचित केले आहेत? कृपया मला सांगा.. टायपो कुठे आहे? जेणेकरुन वर्णनाप्रमाणे LED 0.5Hz च्या वारंवारतेने ब्लिंक होईल. कदाचित तुम्हाला कमी क्वार्ट्जची गरज आहे? 3.2MHz/3.579575/3.68640/ Piezoceramic resonator ZTA 3.58 MHz टाइप करा? आकृती सोपी आणि मस्त आहे. अनावश्यक काहीही नाही. हे सध्या 4MHz वर काम करते. तुझा आभारी आहे. जर तुम्ही मला क्वार्ट्जबद्दल सांगितले तर ते खूप छान होईल. आदराने, रोमन.
  • Ozolin M. A / 05/11/2015 - 10:26
    प्रतिकार R8 1 असावा, 10 kOhm नाही! रेडिओ मासिकाच्या संपादकांची चूक आणि ज्याने न बघता लेख इथे पोस्ट केला. लेख प्रकाशित झाल्यानंतर आणि "आमच्या सल्लामसलत" विभागात सुधारणा प्रकाशित झाल्यानंतर मी लगेचच ही त्रुटी त्यांच्या निदर्शनास आणून दिली. वर्किंग डायग्रामची लिंक http://maxoz.ru/newAk/newAk.gif
  • Ozolin M. A / 05/11/2015 - 10:13
    सज्जन बोरिस आणि अलेक्झांडर केजी, भागांची सेवाक्षमता तपासा किंवा इंस्टॉलेशनमधील त्रुटी पहा! फर्मवेअर कार्यरत आहे आणि अनेक वेळा तपासले गेले आहे!
  • अलेक्झांडर जी.के. / 04/23/2015 - 10:02
    मी बोरिसशी सहमत आहे - योजना कार्य करत नाही! "टंबोरीने नाचणे" नंतर, ते कधीही सुरू झाले नाही. फक्त एकच गोष्ट शोधली जाऊ शकते ती म्हणजे 1 V च्या वर किंवा खाली व्होल्टेज. (तीन किंवा दोन "बीप") श्री. एम. ओझोलिन, प्रतिसाद देऊ नका (!) - *. मी विचारणार नाही. खराब धंदा....
  • सर्जी / 09/18/2013 - 07:36
    कंट्रोलर फर्मवेअरसाठी फ्यूज कसे सेट करावे?
  • बोरिस / 05/28/2013 - 06:59
    सर्किट काम करत नाही; जेव्हा दाबले जाते, तेव्हा सर्व बटणे दोन कमीत कमी लक्षणीय अंकांमध्ये समान संख्या प्रदर्शित करतात. मि. एम. ओझोलिन, तुम्ही प्रतिसाद द्याल का?
  • विटाली / 11/16/2012 - 03:55
    B (ITUN) - चांगली रेखीयता प्राप्त करण्यासाठी, MCP601 सह LM357N op-amp बदलणे चांगले.
  • अलेक्झांडर / 10.22.2012 - 17:10
    या मीटरने Li-ion आणि Li-pol बॅटरी तपासल्या जाऊ शकतात का?

दातगोरियाच्या नागरिकांनो! मी तुम्हाला माझ्या पुढील निर्मितीची ओळख करून देतो - बॅटरी क्षमता परीक्षक. डिव्हाइस, अर्थातच, प्रत्येक दिवसासाठी नाही, परंतु कधीकधी आपण त्याशिवाय करू शकत नाही!

मला ऍसिड बॅटरीची उर्वरित क्षमता मोजण्याची आवश्यकता आहे, हिवाळ्यात, सर्व अँपिअर मोजले जाते, कदाचित बॅटरी बदलण्याची वेळ आली आहे? लोड फोर्क आणि घनतेच्या मोजमापांसह साध्या चाचण्या मला शोभल्या नाहीत; त्यांनी मला RV वर 40 मिनिटे (सुमारे 8 A/h) कार गरम करण्यासाठी पुरेशी उर्जा मिळेल की नाही याबद्दल माहिती दिली नाही; स्टार्टर सह.

बॅटरी क्षमता परीक्षक सर्किट

कोणत्याही मुलाप्रमाणे, ते दुःखाने जन्माला आले. मुख्यतः "प्रसूतीतज्ञ" च्या चुकांमुळे.

तुकडा वगळला. वाचकांच्या देणग्यांवर आमचे मासिक अस्तित्वात आहे. या लेखाची संपूर्ण आवृत्ती केवळ उपलब्ध आहे



नियंत्रित डिस्चार्ज कंट्रोलर



ATmega8A MK प्रोग्रामिंग करताना फ्यूज प्लेसमेंट


5. सर्व भाग रेटिंग सॉफ्टवेअरवर सूचित केले आहेत.

--
आपण लक्ष दिल्याबद्दल धन्यवाद!
इगोर कोटोव्ह, दाटागोर मासिकाचे मुख्य संपादक


लेआउटमध्ये मुद्रित सर्किट बोर्ड: ▼ 🕗 10/24/14 ⚖️ 144.03 Kb ⇣ 124 नमस्कार, वाचक!माझे नाव इगोर आहे, मी 45 वर्षांचा आहे, मी एक सायबेरियन आहे आणि एक हौशी इलेक्ट्रॉनिक्स अभियंता आहे. मी 2006 पासून ही अद्भुत साइट आणली, तयार केली आणि देखरेख करत आहे.
10 वर्षांहून अधिक काळ आमचे मासिक केवळ माझ्या खर्चावर अस्तित्वात आहे.

छान! फ्रीबी संपली. तुम्हाला फाइल्स आणि उपयुक्त लेख हवे असल्यास, मला मदत करा!

अलीकडे, माझ्या लक्षात येऊ लागले की माझा स्मार्टफोन वेगाने डिस्चार्ज होऊ लागला. “एनर्जी ईटर” सॉफ्टवेअरच्या शोधात फळ आले नाही, म्हणून मला आश्चर्य वाटू लागले की बॅटरी बदलण्याची वेळ आली आहे का. पण बॅटरी कारणीभूत आहे याची पूर्ण खात्री नव्हती. म्हणून, नवीन बॅटरी ऑर्डर करण्यापूर्वी, मी जुन्या बॅटरीची वास्तविक क्षमता मोजण्याचा प्रयत्न करण्याचा निर्णय घेतला. हे करण्यासाठी, एक साधी बॅटरी क्षमता मीटर एकत्र करण्याचा निर्णय घेण्यात आला, विशेषत: ही कल्पना बर्याच काळापासून उबविण्यात आली होती - दैनंदिन जीवनात आपल्याभोवती अनेक बॅटरी आणि संचयक आहेत आणि ते सक्षम असणे चांगले होईल. वेळोवेळी त्यांची चाचणी घेण्यासाठी.

डिव्हाइसच्या ऑपरेशनची अंतर्निहित कल्पना अत्यंत सोपी आहे: चार्ज केलेली बॅटरी आणि रेझिस्टरच्या स्वरूपात लोड आहे, आपल्याला फक्त बॅटरी डिस्चार्ज दरम्यान वर्तमान, व्होल्टेज आणि वेळ मोजण्याची आवश्यकता आहे आणि प्राप्त केलेला डेटा वापरणे आवश्यक आहे. त्याची क्षमता मोजा. तत्वतः, आपण व्होल्टमीटर आणि अँमीटरसह जाऊ शकता, परंतु अनेक तास उपकरणांवर बसणे हा एक संशयास्पद आनंद आहे, म्हणून आपण डेटा लॉगर वापरून हे अधिक सोपे आणि अधिक अचूकपणे करू शकता. मी अशा रेकॉर्डर म्हणून Arduino Uno प्लॅटफॉर्म वापरले.

1. योजना

Arduino मध्ये व्होल्टेज आणि वेळ मोजण्यात कोणतीही अडचण नाही - एक ADC आहे, परंतु विद्युत प्रवाह मोजण्यासाठी तुम्हाला शंटची आवश्यकता आहे. मला लोड रेझिस्टर स्वतः शंट म्हणून वापरण्याची कल्पना होती. म्हणजेच, त्यावरील व्होल्टेज जाणून घेतल्यावर आणि पूर्वी प्रतिकार मोजल्यानंतर, आपण नेहमी विद्युत् प्रवाह मोजू शकतो. म्हणून, सर्किटच्या सर्वात सोप्या आवृत्तीमध्ये फक्त लोड आणि बॅटरीचा समावेश असेल, जो Arduino च्या ॲनालॉग इनपुटशी जोडलेला असेल. परंतु बॅटरीवरील थ्रेशोल्ड व्होल्टेज गाठल्यावर लोड बंद करण्यासाठी प्रदान करणे चांगले होईल (ली-आयनसाठी हे सहसा 2.5-3V असते). म्हणून, मी सर्किटमध्ये एक रिले समाविष्ट केला, जो ट्रान्झिस्टरद्वारे डिजिटल पिन 7 द्वारे नियंत्रित केला जातो. सर्किटची अंतिम आवृत्ती खालील आकृतीमध्ये दर्शविली आहे.

मी सर्किटचे सर्व घटक ब्रेडबोर्डच्या तुकड्यावर ठेवले, जे थेट युनोवर स्थापित केले आहे. लोड म्हणून मी 0.5 मिमी जाड निक्रोम वायरचा सर्पिल वापरला, ज्याचा प्रतिकार सुमारे 3 ओहम आहे. हे 0.9-1.2A चा गणना केलेला डिस्चार्ज करंट देते.

2. वर्तमान मोजमाप

वर नमूद केल्याप्रमाणे, सर्पिल आणि त्याच्या प्रतिकारावरील व्होल्टेजच्या आधारावर वर्तमान मोजले जाते. परंतु हे लक्षात घेण्यासारखे आहे की सर्पिल गरम होते आणि निक्रोमचा प्रतिकार तापमानावर जोरदार अवलंबून असतो. त्रुटीची भरपाई करण्यासाठी, मी प्रयोगशाळेतील वीज पुरवठा वापरून कॉइलचे वर्तमान-व्होल्टेज वैशिष्ट्य घेतले आणि प्रत्येक मोजमापाच्या आधी ते गरम होऊ दिले. पुढे, मी एक्सेल (खाली आलेख) मध्ये ट्रेंड लाइन समीकरण तयार केले, जे खाते गरम करणे लक्षात घेऊन अगदी अचूक अवलंबन देते. हे पाहिले जाऊ शकते की रेषा सरळ नाही.

3. व्होल्टेज मापन

या टेस्टरची अचूकता थेट व्होल्टेज मापनाच्या अचूकतेवर अवलंबून असल्याने, मी यावर विशेष लक्ष देण्याचे ठरविले. इतर लेखांनी आधीच एक पद्धत वारंवार नमूद केली आहे जी आपल्याला एटमेगा कंट्रोलर्ससह सर्वात अचूकपणे व्होल्टेज मोजण्याची परवानगी देते. मी फक्त थोडक्यात पुनरावृत्ती करेन - सार म्हणजे कंट्रोलरचा वापर करून अंतर्गत संदर्भ व्होल्टेज निश्चित करणे. मी या लेखातील साहित्य वापरले.

4. कार्यक्रम

कोड काहीही क्लिष्ट नाही:

कार्यक्रम मजकूर

#define A_PIN 1 #define NUM_READS 100 #define pinRelay 7 const float typVbg = 1.095; // 1.0 -- 1.2 फ्लोट वोफ = 2.5; // शटडाउन व्होल्टेज फ्लोट I; फ्लोट कॅप = 0; फ्लोट V; फ्लोट Vcc; floatWh = 0; स्वाक्षरी न केलेले लांब prevMillis; स्वाक्षरी नसलेली लांब चाचणी प्रारंभ; void सेटअप() ( Serial.begin(9600); pinMode(pinRelay, OUTPUT); Serial.println("चाचणी सुरू करण्यासाठी कोणतीही की दाबा..."); तर (Serial.available() == 0) ( ) Serial.println("Test लाँच झाले आहे..."); Serial.print("mAh"); Vcc"); digitalWrite(pinRelay, HIGH); testStart = millis(); prevMillis = millis(); void loop() ( Vcc = readVcc(); // वाचा संदर्भ व्होल्टेज V = (readAnalog(A_PIN) ) * Vcc) / 1023.000; //बॅटरी व्होल्टेज वाचणे (V > 0.01) I = -13.1 * V * V + 344.3 * V + 23.2; // सर्पिलच्या I-V वैशिष्ट्यानुसार गणना करणे; millis() - prevMillis) ///mAh += I * V * (millis() - prevMillis / 3600000000 मधील बॅटरी क्षमतेची गणना; ); // सिरीयल पोर्टवर डेटा पाठवा जर (V< Voff) { //выключение нагрузки при достижении порогового напряжения digitalWrite(pinRelay, LOW); Serial.println("Test is done"); while (2 >1) ( ) ) ) void sendData() ( Serial.print((millis() - testStart) / 1000); Serial.print(" "); Serial.print(V, 3); Serial.print("") ; Serial.print(cap, 0); Serial.println(Vcc, 3) (// read multiple); (int i = 0; i.) साठी मूल्ये आणि क्रमवारी लावा< NUM_READS; i++) { delay(25); int value = analogRead(pin); int j; if (value < sortedValues || i == 0) { j = 0; //insert at first position } else { for (j = 1; j < i; j++) { if (sortedValues <= value && sortedValues[j] >= मूल्य) ( // j म्हणजे इन्सर्ट पोझिशन ब्रेक; ) ) ) साठी (int k = i; k >< (NUM_READS / 2 + 5); i++) { returnval += sortedValues[i]; } return returnval / 10; } float readVcc() { // read multiple values and sort them to take the mode float sortedValues; for (int i = 0; i < NUM_READS; i++) { float tmp = 0.0; ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); ADCSRA |= _BV(ADSC); // Start conversion delay(25); while (bit_is_set(ADCSRA, ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both tmp = (high << 8) | low; float value = (typVbg * 1023.0) / tmp; int j; if (value < sortedValues || i == 0) { j = 0; //insert at first position } else { for (j = 1; j < i; j++) { if (sortedValues <= value && sortedValues[j] >= मूल्य) ( // j हे इन्सर्ट पोझिशन ब्रेक आहे; ) ) ) साठी (int k = i; k > j; k--) ( // सर्व व्हॅल्यूज सध्याच्या वाचनापेक्षा उच्च स्थानावर हलवा ] = sorted Values; ) sorted Values[j] = value; //करंट रीडिंग घाला ) // 10 व्हॅल्यूजचा स्केल मोड रिटर्न फ्लोट रिटर्नव्हल = 0; साठी (int i = NUM_READS / 2 - 5; i< (NUM_READS / 2 + 5); i++) { returnval += sortedValues[i]; } return returnval / 10; }

दर 5 सेकंदाला, वेळेवरचा डेटा, बॅटरी व्होल्टेज, डिस्चार्ज करंट, mAh आणि Wh मधील वर्तमान क्षमता आणि पुरवठा व्होल्टेज सिरीयल पोर्टवर प्रसारित केले जातात. चरण 2 मध्ये प्राप्त केलेल्या फंक्शनचा वापर करून विद्युत् प्रवाह मोजला जातो. थ्रेशोल्ड व्होल्टेज व्हॉफ गाठल्यावर, चाचणी थांबते.
माझ्या मते, कोडमधील एकमेव मनोरंजक मुद्दा म्हणजे डिजिटल फिल्टरचा वापर. वस्तुस्थिती अशी आहे की व्होल्टेज वाचताना, मूल्ये अपरिहार्यपणे वर आणि खाली "नृत्य" करतात. सुरुवातीला मी फक्त 5 सेकंदात 100 मोजमाप घेऊन आणि सरासरी घेऊन हा प्रभाव कमी करण्याचा प्रयत्न केला. पण तरीही निकालाने माझे समाधान झाले नाही. माझ्या शोध दरम्यान, मला असे सॉफ्टवेअर फिल्टर आढळले. हे त्याच प्रकारे कार्य करते, परंतु सरासरी करण्याऐवजी, ते सर्व 100 मापन मूल्ये चढत्या क्रमाने क्रमवारी लावते, मध्यवर्ती 10 निवडते आणि त्यांची सरासरी काढते. परिणामाने मला प्रभावित केले - मापन चढउतार पूर्णपणे थांबले. मी अंतर्गत संदर्भ व्होल्टेज मोजण्यासाठी ते वापरण्याचे ठरवले (कोडमधील व्हीसीसी फंक्शन वाचा).

5. परिणाम

सीरियल पोर्ट मॉनिटरवरील डेटा काही क्लिक्समध्ये एक्सेलमध्ये आयात केला जातो आणि यासारखा दिसतो:

माझ्या Nexus 5 च्या बाबतीत, BL-T9 बॅटरीची घोषित क्षमता 2300 mAh आहे. मी मोजलेले एक 2040 mAh आहे ज्याचे डिस्चार्ज 2.5 V पर्यंत आहे. प्रत्यक्षात, कंट्रोलर बॅटरीला इतक्या कमी व्होल्टेजपर्यंत काढून टाकण्याची परवानगी देऊ शकत नाही, बहुधा थ्रेशोल्ड मूल्य 3V आहे. या प्रकरणात क्षमता 1960 mAh आहे. दीड वर्षाच्या फोन सेवेमुळे क्षमता सुमारे 15% कमी झाली. नवीन बॅटरी खरेदी करणे थांबवण्याचा निर्णय घेण्यात आला.
या टेस्टरचा वापर करून, इतर अनेक Li-Ion बॅटरी आधीच डिस्चार्ज केल्या गेल्या आहेत. परिणाम अतिशय वास्तववादी दिसतात. नवीन बॅटरीची मोजलेली क्षमता 2% पेक्षा कमी विचलनासह घोषित क्षमतेशी जुळते.
हे टेस्टर मेटल हायड्राइड एए बॅटरीसाठी देखील योग्य आहे. या प्रकरणात डिस्चार्ज करंट सुमारे 400 एमए असेल.