باتری ها یکی از مهم ترین منابع تغذیه در سیستم های مختلف به شمار می روند. به کمک باتری ها می توان در زمان قطع برق دستگاه مد نظر را پایدار نگاه داشت؛ یا اینکه به کمک باتری ها می توان دستگاه های قابل حمل بسازیم. یکی از مسائل مهم در برخورد با باتری ها، مسئله شارژ آن هاست. در صورتیکه باتری ها به درستی شارژ نشوند، عمر آن ها کاهش می یابد. در کنار این، عدم شارژ صحیح می تواند سبب گرم شدن و حتی انفجار آن شود.
جهت شارژ و کنترل فرایند شارژ باتری ها، چیپ های مختلفی توسعه یافته اند. یکی از این چیپ ها، تراشه BQ21195 است. این تراشه می تواند به سادگی باتری ها را شارژ کرده و از سلامت آن ها مراقبت کند. در کنار این، تراشه BQ21195 دارای پورت سریال I2C بوده که می تواند با میکروکنترلرها و بردهای آردوینو ارتباط برقرار نماید. جهت راه اندازی و کار با این تراشه کتابخانه تحت آردوینو توسعه یافته است. در این آموزش به تحلیل و بررسی این کتابخانه می پردازیم. در ابتدا به معرفی تراشه خواهیم پرداخت. در ادامه به نصب کتابخانه و الزامات فنی آن خواهیم پرداخت. در نهایت با تحلیل توابع کلیدی و کاربردی کتابخانه و مشاهده یک نمونه برنامه، آموزش را به پایان خواهیم برد. در ادامه تحلیل کتابخانه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
معرفی تراشه کنترل شارژ BQ21195
همانطور که گفته شد، تراشه شارژ یکی از مهم ترین ابزارها در کنترل شارژ و سلامت باتری ها به شمار می روند. تراشه BQ21195 یک تراشه کاربردی جهت شارژ باتری های تک سلول است. این ماژول می تواند تا ۵٫۱ ولتاژ در خروجی ایجاد می کند. همچنین این ماژول می تواند تا ۲٫۱ آمپر در خروجی ایجاد کند.
ماژول شارژر باتری BQ21195 دارای ارتباط سریال I2C است. بدین ترتیب این ماژول می تواند به سادگی فرامین را از میکروکنترل دریافت کند. از طرف دیگر این ماژول دارای پورت USB است. همچنین این ماژول دارای ولتاژ ورودی بین ۵ الی ۱۷ ولت است.
نصب کتابخانه BQ24195.h
همانطور که اطلاع دارید، کتابخانه ها یکی از ابزارهای کلیدی و کاربردی در برنامه نویسی به شمار می روند. به کمک این ابزار، می توانیم توابع نوشته شده در فایلهایی به نام کتابخانه ذخیره کرده و سپس در پروژه های متعدد از آن استفاده کنیم. همانطور که پیشتر گفته شد، برای راه اندازی و کار با ماژول کتابخانه توسعه داده شده است. برای استفاده از این کتابخانه، ابتدا باید آن را نصب کنیم. برای نصب کتابخانه در محیط آردویینو، ابتدا مطابق تصویر زیر بر روی گزینه Tools و سپس Manage Libraries کلیک کنید.
پس از کلیک بر روی گزینه Manage Libraries، در صفحه ظاهر شده، در قسمت کادر جستجو، عبارت BQ24195.h را جستجو نموده و کتابخانه مشخص شده در تصویر را نصب نمایید.
الزامات و نکات فنی کتابخانه BQ21195.h
پس از نصب، نوبت به بررسی الزامات فنی می رسد. توجه داشته باشید که کتابخانه BQ21195.h تنها بر روی بردهای آردوینو با تراشه MKR، ZERO و برد NANO33IOT قابلیت اجرا دارد. به عبارت دیگر این کتابخانه را نمی توان بر روی بردهای دیگر نظیر ESP و UNO اجرا کرد. در کنار این، توجه داشته باشید که تراشه BQ21195 دارای ارتباط I2C جهت دریافت فرمان ارسال داده به میکروکنترلر است؛ از این رو دقت نظر لازم را در نظر داشته باشید.
توابع کلیدی و کاربردی کتابخانه BQ21195.h
پس از بررسی الزامات فنی، نوبت به تحلیل توابع کلیدی و کاربردی می رسد. جدول زیر شرح این توابع را نمایش می دهد.
شرح | ورودی ها | تابع |
این تابع درحقیقت تابع سازنده کلاس کتابخانه است. در ورودی تابع آدرس اشاره گر به پورت I2C قرار می گیرد. | ورودی از نوع اشاره گر به پورت I2C | PMICClass(TwoWire & wire) |
این تابع ارتباط بین میکروکنترلر و آی سی شارژ را برقرار می کند. | بدون ورودی | bool begin() |
این تابع ارتباط بین میکروکنترلر و آی سی شارژ را قطع می کند. | بدون ورودی | void end() |
این تابع واحد شارژ باتری را فعال می کند. | بدون ورودی | bool enableCharge() |
این تابع مد بوست تراشه را فعال می کند. | بدون ورودی | bool enableBoostMode() |
این تابع شارژ باتری را قطع می کند. | بدون ورودی | bool disableCharge() |
این تابع مد بوست تراشه را قطع می کند. | بدون ورودی | bool disableBoostMode() |
این تابع مد باک تراشه را فعال می کند. | بدون ورودی | bool enableBuck(void) |
این تابع مد باک تراشه را غیر فعال می کند. | بدون ورودی | bool disableBuck(void) |
به کمک این تابع جریان ورودی به تراشه را می توان محدود کرد. میزان جریان در ورودی قرار می گیرد. | ورودی از نوع اعشاری برای جریان | bool setInputCurrentLimit(float current) |
این تابع میزان جریان ورودی تراشه را خوانده و در خروجی قرار می دهد. | بدون ورودی | float getInputCurrentLimit(void) |
به کمک این تابع ولتاژ ورودی به تراشه را می توان محدود کرد. میزان ولتاژ در ورودی قرار می گیرد. | ورودی از نوع اعشاری برای تعیین ولتاژ ورودی | bool setInputVoltageLimit(float voltage) |
این تابع میزان ولتاژ ورودی تراشه را خوانده و در خروجی قرار می دهد. | بدون ورودی | float getInputVoltageLimit(void) |
این تابع میزان جریان شارژ خروجی تراشه را با مقدار قرار گرته در ورودی تعیین می کند. | ورودی از نوع اعشاری | bool setChargeCurrent(float current) |
این تابع میزان جریان خروجی شارژر را در خروجی خود نمایش می دهد. | بدون ورودی | float getChargeCurrent(void) |
به کمک این تابع می توان ولتاژ شارژر را تنظیم کرد. میزان ولتاژ در ورودی قرار می گیرد. | ورودی از نوع اعشاری برای تعیین ولتاژ | bool setChargeVoltage(float voltage) |
این تابع مد خرابی شارژ را به صورت وقفه فعال می کند. هرگاه شارژ باتری به اشکال بخورد، از طرف تراشه وقفه صادر می شود. | بدون ورودی | bool enableChargeFaultINT() |
این تابع مد خرابی باتری را به صورت وقفه فعال می کند. هرگاه باتری به اشکال بخورد، از طرف تراشه وقفه صادر می شود. | بدون ورودی | bool enableBatFaultINT() |
این تابع وضعیت شارژ باتری را در خروجی خود قرار می دهد. | بدون ورودی | int chargeStatus() |
این تابع تشخیص می دهد که آیا باتری متصل است یا خیر، در صورت اتصال خروجی true می شود. | بدون ورودی | bool isBattConnected() |
این تابع وضعیت خوب بودن توان منبع تغذیه شارژر را در خروجی قرار می دهد. در صورت مناسب بودن وضعیت توان شارژر، خروجی true خواهد شد. | بدون ورودی | bool isPowerGood(void) |
پس از تحلیل و بررسی توابع کلیدی وکاربردی، نوبت به اجرای یک نمونه برنامه می رسد. برای این مورد در منوی File->Examples کتابخانه را یافته و یکی از مثال ها را اجرا کنید.
لوازم مورد نیاز
لینک خرید برد nano 33 IOT، کلیک کنید
تراشه BQ24195
جمع بندی
در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو، این قسمت را به کتابخانه BQ24195 اختصاص دادیم. به کمک این تراشه می توانید به سادگی یک باتری را شارژ کنید. در این آموزش مطابق رویه معمول، ابتدا به معرفی تراشه، سپس نصب کتابخانه و بررسی الزامات فنی آن پرداختیم. در نهایت با تحلیل و بررسی توابع کلیدی، آموزش را به پایان رساندیم. البته مثال های کتابخانه درون نرم افزار آردوینو موجود بوده که می توانید آن را اجرا کنید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.