تستر ظرفیت باتری لیتیومی با آردوینو
باتریهای لیتیومی مثل مدلهای 18650 این روزا تو خیلی از پروژهها و گجتها استفاده میشن، اما یکی از بزرگترین مشکلاتی که باهاشون داریم اینه که ظرفیت واقعیشون معمولا با چیزی که روشون نوشته متفاوته. گاهی اوقات باتریها به مرور زمان افت کیفیت پیدا میکنن یا حتی ممکنه مدلهای تقلبی تو بازار به پستت بخوره. برای همین، داشتن یه دستگاه که بتونه ظرفیت واقعی باتری رو بر حسب میلیآمپر ساعت (mAh) بهمون نشون بده، برای هر کسی که با الکترونیک سروکار داره از نون شب واجبتره!
تو این پروژه قراره دقیقا همین دستگاه رو بسازیم؛ یه تستر باتری هوشمند که با تخلیه کنترلشدهی باتری و محاسبه جریان در طول زمان، ظرفیت واقعی رو به دست میاره. این دستگاه به یه نمایشگر OLED مجهزه که اطلاعات رو به صورت لحظهای نشون میده و یه بازر هم داره تا وقتی کار تموم شد یا مشکلی پیش اومد، با صدای بوق بهت خبر بده.
تیم آیسیمدار این آموزش رو طوری برات طراحی کرده که بتونی خیلی راحت و قدمبهقدم این گجت کاربردی رو برای میز کارت بسازی. پس قطعات و هویهات رو آماده کن تا بریم سراغ ساخت این تستر جذاب و ببینیم باتریهامون واقعا چقدر جون دارن!
- eBook
- جلد نرم - چاپ سیاهوسفید
- جلد نرم - چاپ رنگی
- اندازهگیری دقیق ظرفیت واقعی باتریهای لیتیومی
- نمایش لحظهای ولتاژ، جریان و ظرفیت روی نمایشگر OLED
- سیستم هشدار صوتی برای جلوگیری از تخلیه بیش از حد باتری
قطعات و ابزارهای مورد نیاز برای ساخت تستر
برای شروع این پروژه به یه برد Arduino Nano و یک نمایشگر OLED سایز 0.96 اینچ نیاز داری. این دو تا قطعه در واقع مغز متفکر و چشم دستگاهت هستن که تمام محاسبات رو انجام میدن و بهت نشون میدن.
علاوه بر اینها، باید یه ماسفت مدل IRLZ44، چهار تا مقاومت 10 کیلواهم (یکچهارم وات) و یه مقاومت آجری 10 اهم 10 وات هم تهیه کنی. برای اتصال راحتتر باتری و مقاومتها به مدار، به 3 عدد ترمینال پیچی هم احتیاج داریم. یه بازر کوچک و یه برد سوراخدار (پروتوتیپ) هم بگیر تا مدار روش پیادهسازی بشه. برای نگه داشتن باتری روی دستگاه، حتما یه جا باتری 18650 مخصوص هم لازم داری.
در نهایت، یه باتری 18650 سالم برای تست مدار و چند تا اسپیسر (پایه نگهدارنده) برای زیر برد آماده کن تا مدارت شکیلتر بشه. از بین ابزارها هم سیمچین، سیملختکن و هویه لحیمکاری برای مونتاژ قطعات کافیه. اگه شارژر باتری لیتیومی یا دماسنج لیزری هم دم دستت داری میتونه موقع تست دستگاه خیلی بهت کمک کنه.
نقشه مدار و نحوه کارکرد دستگاه
برای اینکه نقشه مدار رو راحتتر متوجه بشی، علاوه بر شماتیک اصلی، شکل چیدمان قطعات روی برد سوراخدار هم کشیده شده. جای قطعات و سیمکشیها دقیقا مشابه همون چیزیه که قراره در نهایت بسازیم. فقط تو شماتیک، بازر و نمایشگر OLED رو بیرون از کادر کشیدیم تا اتصالاتشون واضحتر باشه. اما تو واقعیت و موقع مونتاژ، این دو قطعه رو هم روی خود برد اصلی لحیم میکنیم تا همهچیز جمعوجور بمونه.
طراحی این مدار بر پایه آردوینو نانو انجام شده و خیلی ساده است. نمایشگر وظیفه نشون دادن پارامترها رو داره، ترمینالهای پیچی برای اتصال باتری و مقاومت بار استفاده میشن و بازر هم وظیفه داره که هشدارهای مختلف رو با بوق زدن به گوشت برسونه.
تو این مدار از دو تا مدار مقسم ولتاژ استفاده کردیم تا ولتاژ دو سر مقاومت بار رو اندازه بگیریم. کار اصلی ماسفت هم اینجا اینه که مثل یه کلید الکترونیکی عمل کنه و اتصال بین مقاومت بار و باتری رو برقرار یا قطع کنه. حالا بریم ببینیم مدار چطور کار میکنه:
آردوینو اول وضعیت باتری رو چک میکنه. اگه ولتاژ باتری تو محدوده مجاز باشه، به ماسفت دستور میده که روشن بشه. با روشن شدن ماسفت، جریان از قطب مثبت باتری خارج میشه، از مقاومت بار عبور میکنه و از طریق ماسفت به قطب منفی برمیگرده. این فرآیند باعث میشه باتری کمکم دشارژ بشه.
در همین حین، آردوینو مدام ولتاژ دو سر مقاومت رو اندازه میگیره و با تقسیم کردنش بر مقدار مقاومت، جریان لحظهای رو حساب میکنه.
در نهایت، با ضرب کردن این جریان در زمان سپری شده، ظرفیت واقعی باتری بر حسب میلیآمپر ساعت به دست میاد.
نحوه اندازهگیری ولتاژ، جریان و ظرفیت باتری
برای اندازهگیری ولتاژ دو سر مقاومت بار، از دو تا مدار مقسم ولتاژ استفاده کردیم. هر کدوم از این مقسمها از دو تا مقاومت 10 کیلواهم تشکیل شدن. خروجی این مقسمهای ولتاژ مستقیما به پینهای آنالوگ A0 و A1 آردوینو وصل میشه تا آردوینو بتونه تغییرات ولتاژ رو بخونه.
شاید بپرسی وقتی پینهای آنالوگ آردوینو میتونن تا 5 ولت رو اندازه بگیرن و باتری ما نهایتا 4.2 ولت داره، چه نیازی به مقسم ولتاژ هست؟ دلیلش اینه که ما میخوایم مدارمون طوری طراحی بشه که در آینده بتونیم باتریهایی با ترکیبات شیمیایی و ولتاژهای بالاتر رو هم باهاش تست کنیم. پس این طراحی دستت رو برای ارتقای پروژه کاملا باز میذاره.
حالا برسیم به محاسبه جریان:
طبق قانون اهم، جریان برابر است با ولتاژ دو سر مقاومت تقسیم بر مقدار خود مقاومت. البته ما اینجا از افت ولتاژ ناچیز روی ماسفت چشمپوشی میکنیم. تو این مدار مقاومت ما 10 اهم هست. عددی که به دست میاد بر حسب آمپره که با ضرب کردنش در 1000، به میلیآمپر تبدیل میشه.
به عنوان مثال، وقتی باتری کاملا پره، بیشترین جریان تخلیه حدود 0.42 آمپر یا همون 420 میلیآمپر خواهد بود. اما ظرفیت چطور حساب میشه؟
ظرفیت باتری (Q) برابر است با جریان ضربدر زمان. ما جریان رو تو مرحله قبل حساب کردیم، پس فقط به زمان نیاز داریم. برای محاسبه زمان سپری شده هم از تابع ()millis در برنامهنویسی آردوینو استفاده میکنیم تا ظرفیت نهایی به دقت روی نمایشگر ثبت بشه.
انتخاب مقاومت بار مناسب برای تخلیه باتری
انتخاب مقاومت بار کاملا به این بستگی داره که بخوای باتری رو با چه جریانی تخلیه کنی. فرض کن میخوای باتری با جریان 500 میلیآمپر دشارژ بشه. تو این حالت، با تقسیم ولتاژ ماکزیمم (4.2 ولت) بر جریان (0.5 آمپر)، به مقاومت 8.4 اهم میرسی.
از طرفی، این مقاومت قراره انرژی باتری رو به شکل گرما تلف کنه، پس توانش خیلی مهمه! توان مصرفی در اینجا حدود 2.1 وات میشه (مجذور جریان ضربدر مقاومت).
برای اینکه مقاومتت داغ نکنه و نسوزه، باید توانش رو بالاتر در نظر بگیری. یه مقاومت 5 وات میتونه کار رو راه بندازه، اما اگه میخوای خیالت کاملا راحت باشه، بهتره مثل من از یه مقاومت 10 اهم با توان 10 وات استفاده کنی که هم در دسترسه و هم موقع کار اصلا فشار بهش نمیاد.
دلیل استفاده از ماسفت و انتخاب مدل مناسب
تو این مدار، ماسفت نقش یه کلید هوشمند رو بازی میکنه. پین D2 آردوینو مستقیما این کلید رو کنترل میکنه. وقتی یه سیگنال 5 ولت به پایه گیت (Gate) ماسفت فرستاده میشه، مسیر جریان باز میشه و انرژی از باتری وارد مقاومت شده و به قطب منفی برمیگرده.
این فرآیند تخلیه باید برای مدت زمان مشخصی انجام بشه، بنابراین ماسفتی که انتخاب میکنی باید بتونه جریان دشارژ رو بدون اینکه بیش از حد داغ کنه، از خودش عبور بده.
من تو این پروژه از ماسفت قدرت نوع N مدل IRLZ44 استفاده کردم. حرف L تو اسم این قطعه خیلی مهمه؛ یعنی این ماسفت از نوع Logic-Level هست و طوری طراحی شده که با ولتاژهای پایین میکروکنترلرها کاملا روشن بشه. ماسفتهای معمولی مثل سری IRF برای روشن شدن کامل به حدود 10 ولت نیاز دارن.
اگه از سری IRF استفاده کنی، همون 5 ولت خروجی آردوینو نمیتونه اونا رو به طور کامل تحریک کنه و ماسفت نمیتونه جریان نامی رو از خودش عبور بده. برای استفاده از اونها مجبوری یه مدار بوستر اضافه کنی تا ولتاژ گیت رو بالا ببره که خب کار رو خیلی پیچیده میکنه.
پس بهت پیشنهاد میکنم حتما از یه ماسفت Logic-Level استفاده کنی. لزوما نیازی نیست IRLZ44 باشه، هر مدل دیگهای که این ویژگی رو داشته باشه کارت رو راه میندازه.
راهاندازی نمایشگر OLED برای نمایش اطلاعات
برای اینکه بتونیم ولتاژ باتری، جریان دشارژ و ظرفیت نهایی رو به کاربر نشون بدیم، از یه نمایشگر 0.96 اینچی OLED استفاده میکنیم. این نمایشگر رزولوشن 128 در 64 پیکسل داره و با استفاده از پروتکل I2C با آردوینو ارتباط برقرار میکنه. تو آردوینو، پین A4 به عنوان SDA و پین A5 به عنوان SCL برای این ارتباط در نظر گرفته شدن.
ما برای راهاندازی و نمایش گرافیکی پارامترها از کتابخونه U8glib کمک میگیریم. پس قبل از هر کاری، باید این کتابخونه رو تو نرمافزار آردوینو نصب کنی.
اتصالات نمایشگر به آردوینو هم خیلی ساده است: پایه Vcc نمایشگر رو به 5 ولت آردوینو وصل کن، GND رو به GND، پایه SDA رو به پین A4 و در نهایت پایه SCL رو به پین A5 متصل کن.
اضافه کردن بازر برای هشدارهای صوتی
برای اینکه دستگاهت بتونه شرایط خطرناک رو بهت خبر بده، از یه بازر پیزو استفاده کردیم. این بازر تو سه تا حالت شروع به بوق زدن میکنه: اول وقتی ولتاژ باتری خیلی پایین بیاد، دوم وقتی ولتاژ باتری بیش از حد مجاز باشه، و سوم وقتی اصلا باتری تو هولدر قرار نگرفته باشه.
بازرها معمولا دو تا پایه دارن؛ پایه بلندتر قطب مثبت و پایه کوتاهتر قطب منفیه. روی برچسب بازرهای نو هم معمولا علامت "+" زده شده تا پایه مثبت رو راحت پیدا کنی. برای اتصالش، پایه مثبت رو به پین D9 آردوینو و پایه منفی رو به GND متصل کن.
تو کدهای آردوینو هم ما یه تابع جداگانه به اسم ()beep نوشتیم. این تابع یه سیگنال PWM به بازر میفرسته، یه مکث کوتاه میکنه و بعد خاموشش میکنه. با این روش، بازر میتونه صدای بوقهای مقطع و واضحی تولید کنه.
مونتاژ قطعات و لحیمکاری مدار
تا اینجا وظیفه تکتک قطعات رو بررسی کردیم. اما قبل از اینکه بری سراغ لحیمکاری، همیشه پیشنهاد میکنم اول کل مدار رو روی یه برد بورد (Breadboard) ببندی و تست کنی. اگه همهچیز درست کار کرد، اونوقت با خیال راحت برو سراغ مونتاژ روی برد سوراخدار. یه برد پروتوتیپ به ابعاد 7 در 5 سانتیمتر برای این پروژه کاملا مناسبه.
اول از همه باید آردوینو نانو رو روی برد قرار بدی. دو ردیف پین هدر مادگی 15 پین رو با سیمچین جدا کن و روی برد لحیم کن. حواست باشه فاصلهشون دقیقا اندازه پایههای آردوینو باشه.
برای نمایشگر OLED هم یه پین هدر 4 تایی مادگی لحیم کن تا بعدا بتونی به راحتی سوکتی جاش بزنی. بعد از این کار، بقیه قطعات و ترمینالها رو همونطور که تو عکسها مشخصه روی برد بچین و لحیم کن.
در نهایت، با استفاده از سیمهای رنگی اتصالات رو طبق نقشه شماتیک برقرار کن. استفاده از سیمهای رنگی باعث میشه بعدا اگه خواستی عیبیابی کنی، خیلی راحتتر مسیرها رو پیدا کنی.
نصب پایههای نگهدارنده برد
وقتی تمام مراحل لحیمکاری و سیمکشی تموم شد، تو چهار گوشه برد، پایههای نگهدارنده (اسپیسر) رو پیچ کن. این کار باعث میشه بین پایههای لحیمشده زیر برد و سطح میز فاصله ایجاد بشه و جلوی اتصالیهای ناخواسته رو بگیره.
برنامهنویسی و کدهای آردوینو
کدی که برای این پروژه نوشته شده چند تا کار مهم رو انجام میده: اول از همه، برای اینکه مقادیر ولتاژ دقیقتر باشن و نویز کمتری داشته باشیم، از پینهای آنالوگ 100 تا نمونه میگیره، اونا رو با هم جمع میکنه و میانگینشون رو حساب میکنه.
کار دوم، بررسی وضعیت باتریه تا اگه لازم بود هشدار بده یا فرآیند دشارژ رو شروع کنه. هشدار Low-V! وقتی نمایش داده میشه که ولتاژ باتری به کمتر از حد مجاز تخلیه (برای لیتیومیون حدود 2.9 ولت) برسه. هشدار High-V! هم موقعی فعال میشه که ولتاژ باتری از حالت فولشارژ بالاتر باشه. اگر هم هولدر خالی باشه خطای No Battery! رو میبینی.
اما اگه ولتاژ باتری تو محدوده ایمن یعنی بین 2.9 ولت تا 4.3 ولت باشه، چرخه دشارژ شروع میشه. در این حالت، جریان و ظرفیت با همون فرمولهایی که قبلا توضیح دادیم مدام محاسبه میشن. وظیفه سوم کد، نمایش این پارامترها به صورت زنده روی نمایشگر OLED هست.
در نهایت، کدها طوری نوشته شدن که دیتا رو به پورت سریال هم بفرستن تا بتونی از طریق کامپیوتر اطلاعات رو مانیتور کنی. فقط کافیه کدها رو روی آردوینو آپلود کنی و دستگاه رو روشن کنی.
استخراج دادهها و رسم نمودار در اکسل
برای تست دستگاه، اول یه باتری 18650 سالم رو با یه شارژر استاندارد کاملا شارژ کن و بعد اون رو داخل هولدر دستگاهت بذار. برای اینکه بتونی روند تخلیه باتری رو دقیقا تحلیل کنی، میتونی دادههای سریال رو به یه فایل صفحه گسترده مثل اکسل منتقل کنی.
وقتی این کار رو انجام بدی، به راحتی میتونی نمودار تخلیه باتری رو رسم کنی و رفتارش رو در طول زمان ببینی. این قابلیت به شدت حرفهایه و خروجی خیلی تمیزی بهت میده. برای این کار از نرمافزارهای رابط مثل PLX-DAQ استفاده میشه که دیتا رو مستقیما از پورت سریال به اکسل میبره. با یه جستجوی ساده میتونی این نرمافزار رو پیدا و نصب کنی.
کار با این محیط خیلی ساده است و فقط کافیه پورت آردوینو رو بهش معرفی کنی. البته یادت باشه که این نرمافزار فقط روی سیستمعامل ویندوز اجرا میشه.
جمعبندی و نتیجهگیری نهایی پروژه
بعد از چند بار تست، متوجه میشی که نتایج این دستگاه واقعا قابل اعتماده و ظرفیتی که نشون میده نهایتا 50 تا 70 میلیآمپر ساعت با تسترهای صنعتی و برند بازار اختلاف داره. مقاومت آجری هم حین کار نهایتا به دمای 51 درجه سانتیگراد میرسه که کاملا طبیعی و ایمنه.
البته تو این طراحی ساده، جریان تخلیه ثابت نیست و به ولتاژ لحظهای باتری بستگی داره، برای همین نمودار دشارژش دقیقا شبیه دیتاشیت رسمی کارخونه باتریسازی درنمیاد. همچنین تو این نسخه فقط میتونی باتریهای تکسلولی لیتیومیون رو تست کنی که برای شروع کار عالیه.
امیدوارم از این پروژه کاربردی در آیسیمدار حسابی لذت برده باشی و روی میز کارت جای ثابتی براش پیدا کنی. حتما این تستر رو بساز و این آموزش رو برای دوستات هم بفرست تا اونا هم بتونن ظرفیت واقعی باتریهاشون رو تست کنن و دیگه گول باتریهای فیک بازار رو نخورن. موفق باشی!
فایلهای پیوست
تو میتونی اولین سازنده باشی!
اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر
این آموزش با استانداردهای اختصاصی آیسیمدار بازنویسی و بهینهسازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.












































گفتگوهای کاربران
هنوز نظری ثبت نشده؛ تو شروع کن!
هنوز نظری ثبت نشده؛ تو شروع کن!