সুচিপত্র:

আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক: 6 টি ধাপ
আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক: 6 টি ধাপ

ভিডিও: আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক: 6 টি ধাপ

ভিডিও: আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক: 6 টি ধাপ
ভিডিও: কে জিতবে? ১৮৬৫০ ব্যাটারির রিয়েল ক্যাপাসিটি নির্ণয়ে HW586? নাকি Liitokala Lii 500? 2024, নভেম্বর
Anonim
আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক
আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক
আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক
আরেকটি ব্যাটারি ক্যাপাসিটি পরীক্ষক

কেন আরও একটি ক্ষমতা পরীক্ষক

আমি বিভিন্ন পরীক্ষক বিল্ড নির্দেশাবলী পড়েছি কিন্তু তাদের কোনটিই আমার প্রয়োজনের সাথে মেলে বলে মনে হচ্ছে না। আমি শুধু Singe NiCd/NiMH বা সিংহ কোষের চেয়েও বেশি পরীক্ষা করতে সক্ষম হতে চেয়েছিলাম। আমি পাওয়ার টুল ব্যাটারিকে প্রথম অংশে না নিয়ে পরীক্ষা করতে সক্ষম হতে চেয়েছিলাম। অতএব, আমি সিদ্ধান্ত নিয়েছি বিষয়টাকে ঘনিষ্ঠভাবে দেখার এবং আমার নিজের একটি ডিজাইন করার। একটি জিনিস অন্য দিকে নিয়ে যায় এবং আমি অবশেষে নিজেই একটি নির্দেশযোগ্য লেখার সিদ্ধান্ত নিয়েছি। আমি আসলে কিভাবে পরীক্ষক তৈরি করতে হয় তার সমস্ত বিবরণে না যাওয়ার সিদ্ধান্ত নিয়েছি কারণ প্রত্যেকে নির্দিষ্ট পছন্দগুলি সম্পর্কে সিদ্ধান্ত নিতে পারে যেমন কোন আকারের প্রতিরোধক ব্যবহার করতে হবে অথবা যদি একটি পিসিবি প্রয়োজন হয় বা ভেরোবোর্ড যথেষ্ট এবং সেখানে কিভাবে নির্দেশনা দেওয়া যায় agগল ইনস্টল করুন বা কিভাবে একটি PCB তৈরি করবেন। অন্য কথায়, আমি স্কিম্যাটিক্স এবং কোড এবং কিভাবে পরীক্ষককে ক্যালিব্রেট করব তার উপর মনোনিবেশ করব।

ধাপ 1: ইতিহাস - সংস্করণ 1

ইতিহাস - সংস্করণ 1
ইতিহাস - সংস্করণ 1

উপরে প্রথম সংস্করণটি নীচে উল্লিখিত 10V ইনপুট সমর্থন যোগ করা হয়েছে (R12 & R17 এবং Q11 এবং Q12)।

প্রথম সংস্করণটি কমবেশি deba168 দ্বারা একটি নির্দেশযোগ্য থেকে নেওয়া হয়েছিল (দুর্ভাগ্যবশত আমি একটি লিঙ্ক প্রদানের জন্য তার নির্দেশ খুঁজে পাচ্ছি না)। শুধুমাত্র কিছু ছোটখাট পরিবর্তন করা হয়েছে। এই সংস্করণে আমার একটি মসফেট দ্বারা নিয়ন্ত্রিত একটি 10 ওম লোড প্রতিরোধক ছিল। যদিও এটি কিছু সমস্যা নিয়ে এসেছে। একটি NiCd বা NiMH কোষ পরীক্ষা করার সময় প্রয়োজনীয় সময়গুলি দিনের মধ্যে না থাকলে সহজেই ঘন্টার মধ্যে পরিমাপ করা হতো। 1500mAh ব্যাটারি 12 ঘন্টার বেশি সময় নিয়েছিল (বর্তমান মাত্র 120mA ছিল)। অন্যদিকে, প্রথম সংস্করণটি 10V এর নীচে কেবল ব্যাটারি পরীক্ষা করতে পারে। এবং একটি সম্পূর্ণ চার্জ করা 9.6V ব্যাটারি আসলে 11.2V পর্যন্ত হতে পারে যা 10V সীমার কারণে পরীক্ষা করা যায়নি। কিছু করা দরকার ছিল। প্রথমত, ভোল্টেজ ডিভাইডারগুলিকে 10V এর বেশি অনুমতি দিতে সক্ষম করার জন্য আমি কয়েকটি মোসফেট এবং প্রতিরোধক যুক্ত করেছি। কিন্তু অন্যদিকে এটি অন্য সমস্যা নিয়ে এসেছে। একটি 14.4V ব্যাটারি পুরোপুরি লোড হতে পারে tp 16.8V যা 10 ohm রোধের সাথে 1.68A কারেন্ট এবং অবশ্যই প্রায় 30W এর লোড রোধক থেকে বিদ্যুৎ অপচয় হতে পারে। সুতরাং, কম ভোল্টেজের সাথে খুব দীর্ঘ পরীক্ষার সময় এবং উচ্চ ভোল্টেজের সাথে খুব বেশি বর্তমান। স্পষ্টতই এটি একটি পর্যাপ্ত সমাধান ছিল না এবং আরও উন্নয়নের প্রয়োজন ছিল।

ধাপ 2: সংস্করণ 2

আমি একটি সমাধান চেয়েছিলাম যেখানে ব্যাটারি ভোল্টেজ নির্বিশেষে কারেন্ট নির্দিষ্ট সীমার মধ্যে থাকবে। একটি সমাধান পিডব্লিউএম এবং কেবল একটি প্রতিরোধক ব্যবহার করা হত, তবে আমি স্পন্দিত স্রোত ছাড়াই সমাধান পেতে পছন্দ করি বা মোসফেট তাপ অপসারণের প্রয়োজন হয়। এইভাবে, আমি 10 ভোল্টেজ স্লট, প্রতিটি 2V চওড়া, 10 3.3ohm প্রতিরোধক এবং প্রতিটি প্রতিরোধকের জন্য একটি মসফেট ব্যবহার করে একটি সমাধান তৈরি করেছি।

ধাপ 3: এইভাবে এটি চালু হয়েছে

এই পরিণত হয়
এই পরিণত হয়

সার্কিটের উপর মন্তব্য যুক্তি দিতে পারে যে মোসফেটের উপর ভোল্টেজের ক্ষতি নগণ্য কারণ মোসফেটের প্রতিরোধ ক্ষমতা খুবই কম, কিন্তু আমি মোসফেটের পছন্দটি পাঠকের উপর ছেড়ে দিয়েছি এবং এইভাবে প্রতিরোধ 1 ওহম পর্যন্ত যেতে পারে যেখানে এটি শুরু হয় ব্যাপার সংস্করণে একটি সঠিক মোসফেট নির্বাচন করলে নিম্ন বিন্দু পরিমাপের প্রয়োজনীয়তা দূর হবে কিন্তু সংস্করণ 2 -এ আমি সিদ্ধান্ত নিলাম যে শুধুমাত্র একটি প্রতিরোধকের উপর ভোল্টেজ পরিমাপ করতে হবে যা আসলে দুটি পরিমাপের পয়েন্ট থাকা গুরুত্বপূর্ণ করে তোলে। এবং পছন্দের পিছনে কারণটি ছিল ভেরোবোর্ডের ওয়্যারিংয়ের সরলতা। এটি কিছু নির্ভুলতা ত্রুটি যোগ করে কারণ একটি প্রতিরোধক জুড়ে পরিমাপ করা ভোল্টেজ সমস্ত প্রতিরোধকের উপর পরিমাপের তুলনায় উল্লেখযোগ্যভাবে ছোট। কম্পোনেন্ট সিলেকশনে আমি যা আগে থেকেই সহজ ছিল বা যা আমি সহজেই পেতে পারি তা ব্যবহার করার সিদ্ধান্ত নিয়েছি। এই BOM নিম্নলিখিত নেতৃত্বে:

  • 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 টি পুরানো CPU ফ্যান

আমি স্কিম্যাটিক্সে নিম্নলিখিতগুলি যোগ করি নি

  • I2C লাইনে পুলআপ প্রতিরোধক, যা আমি লক্ষ্য করেছি প্রদর্শনটি আরও স্থিতিশীল
  • পাওয়ার লাইন
  • 5V লাইনে ক্যাপাসিটর যা ডিসপ্লেকেও স্থিতিশীল করে

পরীক্ষার সময় আমি লক্ষ্য করেছি যে লোড প্রতিরোধকগুলি বেশ গরম হয়ে উঠবে, বিশেষ করে যদি সেগুলি সব ব্যবহার করা হয়। তাপমাত্রা 100 ডিগ্রী সেলসিয়াস (যা 212 ডিগ্রি ফারেনহাইটের উপরে) পর্যন্ত বৃদ্ধি পায় এবং যদি পুরো সিস্টেমটি একটি বাক্সে বন্ধ করতে হয় তবে সেখানে এক ধরণের কুলিং সরবরাহ করা উচিত। আমি যে প্রতিরোধকগুলি ব্যবহার করেছি তা হল 3.3 ওহম / 5W এবং সর্বাধিক স্রোত 2V / 3.3 = 0.61A প্রদানকারী প্রতি প্রতিরোধক 2V / 3.3 = 0.61A দিয়ে ঘটতে হবে যার ফলাফল 1.21W। আমি বাক্সে একটি সাধারণ ফ্যান যুক্ত করে শেষ করেছি। বেশিরভাগ কারণ আমার চারপাশে কিছু পুরানো CPU ফ্যান ছিল।

পরিকল্পিত কার্যকারিতা

এটি বেশ সোজা এবং স্ব -ব্যাখ্যামূলক। পরীক্ষা করা ব্যাটারি প্রতিরোধক এবং স্থল সিরিজের সাথে সংযুক্ত। ভোল্টেজ পরিমাপ পয়েন্ট হল ব্যাটারি সংযোগ এবং প্রথম প্রতিরোধক। ভোল্টেজ ডিভাইডারগুলি তখন ভোল্টেজটিকে এমন একটি স্তরে নামানোর জন্য ব্যবহার করা হয় যা আরডুইনোকে ভাল করে। একটি ডিজিটাল আউটপুট বিভাজকের 10V বা 20V পরিসীমা নির্বাচন করতে ব্যবহৃত হয়। লোডের প্রতিটি প্রতিরোধক মোসফেট ব্যবহার করে পৃথকভাবে গ্রাউন্ড করা যেতে পারে, যা সরাসরি Arduino দ্বারা চালিত হয়। এবং অবশেষে, ডিসপ্লেটি Arduino I2C পিনের সাথে সংযুক্ত। পরিকল্পিত জে সম্পর্কে খুব বেশি কিছু বলার নেই

ধাপ 4: কোড

কোড
কোড

উপরে কোডের মোটামুটি কার্যকারিতা দেখা যায়। আসুন কোডটি ঘনিষ্ঠভাবে দেখি (arduino ino ফাইল সংযুক্ত করা আছে)। ফাংশন একটি সংখ্যা এবং তারপর প্রধান লুপ আছে।

প্রধান লুপ

যখন পরিমাপ প্রস্তুত হয় ফলাফল দেখানো হয়, এবং মৃত্যুদন্ড সেখানেই শেষ হয়। যদি পরিমাপ এখনও সম্পন্ন না হয়, তাহলে প্রথমে পরীক্ষা করা হয় কোন ব্যাটারির ধরন নির্বাচন করা হয়েছে এবং তারপর ইনপুট জুড়ে ভোল্টেজ। যদি ভোল্টেজ 0.1V অতিক্রম করে তবে কমপক্ষে কোন ধরণের ব্যাটারি সংযুক্ত থাকতে হবে। এই ক্ষেত্রে একটি সাবরুটিনকে বলা হয় কিভাবে ব্যাটারিতে কতটা কোষ আছে তা বের করার চেষ্টা করে কিভাবে পরীক্ষা করা যায়। কোষের সংখ্যা কম -বেশি তথ্য যা আরও ভালভাবে ব্যবহার করা যেতে পারে কিন্তু, এই সংস্করণে, এটি শুধুমাত্র সিরিয়াল ইন্টারফেসের মাধ্যমে রিপোর্ট করা হয়। যদি সবকিছু ঠিক থাকে তবে স্রাব প্রক্রিয়া শুরু হয় এবং প্রধান লুপের প্রতিটি রাউন্ডে ব্যাটারির ক্ষমতা গণনা করা হয়। প্রধান লুপের শেষে ডিসপ্লেটি পরিচিত মানসম্পন্ন।

ফলাফল দেখানোর পদ্ধতি

ShowResults ফাংশন কেবল ডিসপ্লেতে দেখানো লাইন এবং সিরিয়াল ইন্টারফেসে পাঠানো স্ট্রিং সেট করে।

ভোল্টেজ পরিমাপের পদ্ধতি

ফাংশনের শুরুতে Arduino এর Vcc পরিমাপ করা হয়। এনালগ ইনপুট ব্যবহার করে পরিমাপ করা ভোল্টেজগুলি গণনা করতে সক্ষম হওয়া প্রয়োজন। তারপর ব্যাটারি ভোল্টেজ 20V পরিসীমা ব্যবহার করে পরিমাপ করা হয় যে কোন পরিসীমা ব্যবহার করতে হবে তা নির্ধারণ করতে সক্ষম। তারপর ব্যাটারি ভোল্টেজ এবং রেজিস্টর ভোল্টেজ উভয়ই গণনা করা হয়। ব্যাটারি ভোল্টেজ পরিমাপ ডিভাইডারইনপুট ক্লাসের সুবিধা গ্রহণ করে যার পদ্ধতিগুলি পড়ার এবং ভোল্টেজের জন্য কাঁচা পড়া বা এনালগ ইনপুটের গণনা করা ভোল্টেজ দেওয়া হয়।

ব্যবহৃত মান নির্বাচন করার পদ্ধতি

SelectUsedValues ফাংশনে কোষের সংখ্যা অনুমান করা হয় এবং স্রাব পদ্ধতির সাথে ব্যাটারির উচ্চ এবং নিম্ন সীমা ব্যবহার করা হয়। এছাড়াও পরিমাপ শুরু হিসাবে চিহ্নিত করা হয়েছে, এই পদ্ধতির সীমাগুলি গ্লোবাল ভেরিয়েবলের শুরুতে সেট করা আছে। যদিও তারা ধ্রুবক হতে পারে, এবং তারা প্রক্রিয়াটির ভিতরেও সংজ্ঞায়িত হতে পারে কারণ সেগুলি বিশ্বব্যাপী ব্যবহৃত হয় না। কিন্তু আরে সবসময় উন্নতি করার কিছু আছে:)

ব্যাটারির ক্ষমতা গণনা করার পদ্ধতি

স্রাব ফাংশন আসলে ব্যাটারির ক্ষমতা গণনার যত্ন নেয়। এটি প্যারামিটার হিসাবে পরীক্ষার অধীনে ব্যাটারির ভোল্টেজের নিম্ন এবং উচ্চ সীমা পায়। এই সংস্করণে উচ্চ মান ব্যবহার করা হয় না, তবে পরীক্ষাটি কখন বন্ধ করা হবে তা নির্ধারণ করতে কম মান ব্যবহার করা হয়। ফাংশনের প্রারম্ভে এই উদ্দেশ্যে তৈরি ফাংশন ব্যবহার করে ব্যবহারকারীদের প্রতিরোধের সংখ্যা খুঁজে পাওয়া যায়। ফাংশন রোধের সংখ্যা প্রদান করে এবং একই সাথে স্রাব শুরু করে এবং কাউন্টার পুনরায় সেট করে। তারপর ভোল্টেজগুলি পরিমাপ করা হয় এবং বর্তমান গণনা করার জন্য পরিচিত প্রতিরোধক মান সহ ব্যবহার করা হয়। এখন যেহেতু আমরা ভোল্টেজ এবং কারেন্ট জানি এবং এটি থেকে শেষ পরিমাপের সময় হয়েছে, আমরা ক্ষমতা গণনা করতে পারি। স্রাব প্রক্রিয়ার শেষে ব্যাটারি ভোল্টেজকে কম সীমার সাথে তুলনা করা হয় এবং যদি এটি সীমার নিচে চলে যায় স্রাব পর্ব বন্ধ হয়ে যায়, মসফেট বন্ধ থাকে এবং পরিমাপ প্রস্তুত হিসাবে চিহ্নিত করা হয়।

ব্যবহার করার জন্য প্রতিরোধক সংখ্যা খুঁজে বের করার পদ্ধতি

SelectNumOfResistors ফাংশনে প্রিসেট মানগুলির সাথে ভোল্টেজের একটি সহজ তুলনা করা হয় এবং ফলস্বরূপ প্রতিষেধকের সংখ্যা নির্ধারণ করা হয়। কিছু প্রতিরোধক এড়িয়ে যাবার জন্য উপযুক্ত মোসফেট খোলা হয়। ভোল্টেজ স্লটগুলি নির্বাচন করা হয় যাতে স্রাবের সময় সর্বাধিক স্রোত 600mA (2V/3.3Ohm = 606mA) থেকে কিছুটা বেশি থাকে। ফাংশন ব্যবহৃত প্রতিরোধকের সংখ্যা প্রদান করে। কারণ ফ্যানটি প্রথম মোসফেটের মতো একই লাইন থেকে চালিত হয় যখন স্রাব চলার সময় এটি সর্বদা খোলা থাকে।

ধাপ 5: মিটার ক্যালিব্রেট করা

মিটার ক্যালিব্রেট করা
মিটার ক্যালিব্রেট করা

মিটার ক্যালিব্রেটেড করার জন্য আমি আরেকটি অ্যাপ (সংযুক্ত) তৈরি করেছি। এটি একই হার্ডওয়্যার ব্যবহার করে। শুরুতে সংশোধন বিভাজক মান সব 1000 সেট করা হয়।

const int divCorrectionB10V = 1000; // 10V const int divCorrectionR10V = 1000 রেঞ্জে বিভাজক সংশোধন গুণক; // 10V const int divCorrectionB20V = 1000 পরিসরে বিভাজক সংশোধন গুণক; // বিভাজক সংশোধন গুণক 20V const int divCorrectionR20V = 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 = 998; // বিভাজক সংশোধন বিভাজক 10V const int divCorrectionR10V = 1022; // বিভাজক সংশোধন বিভাজক 10V const int divCorrectionB20V = 1044; // বিভাজক সংশোধন বিভাজক 20V const int divCorrectionR20V = 1045; // 20V পরিসরে বিভাজক সংশোধন বিভাজক

ইনপুটে (যেমন 2V) কিছু ভোল্টেজ প্রদান, ব্যাট টাইপ সুইচ (লোড পেতে) এবং প্রথম রেজিস্টর জুড়ে কারেন্ট এবং ভোল্টেজ পরিমাপ করে এবং ভোল্টেজকে কারেন্ট দিয়ে ভাগ করে রেসিস্টরের মান সামঞ্জস্য করা যায়। । আমার জন্য 2V 607mA দিয়েছে যা 2/0.607 = 3.2948 ohms দেয় যা আমি 3.295 ohms এ পরিণত করেছি। সুতরাং এখন ক্রমাঙ্কন সম্পন্ন হয়েছে।

ধাপ 6: শেষ নোট

এখানে একটি গুরুত্বপূর্ণ নোট। ব্যাটারি থেকে রেসিস্টর পর্যন্ত সব কানেকশন থাকা জরুরী। আমার একটি খারাপ সংযোগ ছিল এবং আমি ভাবছিলাম কেন ব্যাটারির তুলনায় আমি প্রতিরোধক গ্রিডে 0.3V কম ভোল্ট পেয়েছি। এর মানে হল যে পরিমাপ প্রক্রিয়াটি 1.2V NiCd কোষের সাথে প্রায় অবিলম্বে শেষ হয়েছিল কারণ 0.95V এর নিম্ন সীমাটি দ্রুত পৌঁছেছিল।

প্রস্তাবিত: