تحلیل کتابخانه

تحلیل و بررسی کتابخانه LC709230F

lc709230f-h-arduino-library-digispark
نوشته شده توسط معین صابری

باتری ها یکی از منابع اصلی تغذیه در سیستم های مختلف به شمار می روند. به کمک باتری ها می توان تغذیه دستگاه های قابل حمل را فراهم نمود و در زمان هایی که جریان برق شهری از دسترس خارج می شود؛ باتری تامین تغذیه سیستم را بر عهده گیرد. جهت بررسی وضعیت شارژ، دما و سایر پارامترها، آی سی LC70930F طراحی شده است. به کمک این آی سی می توان از پارامترهای باتری مطلع شد. جهت راه اندازی و کار با این آی سی کتابخانه تحت آردوینو توسط شرکت AdaFruit توسعه یافته است. در این آموزش قصد داریم تا به تحلیل و بررسی کتابخانه lc709230f بپردازیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.

 


نصب کتابخانه LC709230 توسعه AdaFruit


 به منظور استفاده از کتابخانه LC70930F، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه سنسور شتاب سنج با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.

روش نصب کتابخانه PCF8574.h - دیجی اسپارک

 

 مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت LC70930F را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه مشخص شده با کادر قرمز رنگ را با کلیک بر روی گزینه install، نصب کنید.

دانلود کتابخانه lc709230f.h - دیجی اسپارک

 


الزامات و نکات فنی کتابخانه LC709230 توسعه یافته توسط AdaFruit


 پس از نصب کتابخانه و پیش از تحلیل توابع کلیدی، نگاهی به نکات فنی کتابخانه خواهیم داشت. آی سی LC70930F جهت ارتباط با میکروکنترلرها از پورت I2C سخت افزاری استفاده می کند. کتابخانه توسعه یافته این آی سی نیز از پورت I2C سخت افزاری پشتیبانی می کند. بنابراین می توان انتظار داشت که این کتابخانه بر روی کلیه بردها و ماژول ها، قابل استفاده باشد.

کاربرد کتابخانه lc709230f.h - دیجی اسپارک

 


توابع کلیدی و کاربردی کتابخانه LC709230 توسعه یافته توسط AdaFruit


پس از نصب و بررسی الزامات فنی، نوبت به تحلیل و بررسی توابع کلیدی می رسد. جدول زیر لیست توابع کتابخانه را نمایش می دهد.

شرح ورودی ها تابع
به کمک این تابع ارتباط با آی سی برقرار می شود. ورودی این تابع از نوع اشاره گر به پورت I2C است. شما می توانید این ورودی را خالی بگذارید، در این صورت پورت I2C به طور خودکار شناسایی خواهد شد. ورودی از نوع اشاره گر به پورت I2C bool begin(TwoWire *wire = &Wire)
این تابع مد کاری آی سی را تعیین می کند. این مد در ورودی قرار می گیرد. ورودی های معتبر برای این تابع عبارتند از:

LC709203F_POWER_OPERAT: حالت کاری عادی

LC709203F_POWER_SLEEP:

حالت کاری کم مصرف

خروجی این تابع از نوع بولین بوده که در صورت موفقیت آمیز بودن اجرا، خروجی true خواهد شد.

 

ورودی از نوع داده کلاس کتابخانه bool setPowerMode(lc709203_powermode_t t)
به کمک این تابع ظرفیت باتری تعیین می شود. این ظرفیت در ورودی تابع قرار می گیرد. مقادیر معتبر عبارتند از:

LC709203F_APA_100MAH:
ظرفیت ۱۰۰ میلی آمپر

****/**********

LC709203F_APA_200MAH:
ظرفیت ۲۰۰ میلی آمپر

***************

LC709203F_APA_500MA:
ظرفیت ۵۰۰ میلی آمپر

*************

LC709203F_APA_1000MAH:

ظرفیت ۱۰۰۰ میلی آمپر

***********
LC709203F_APA_2000MAH:
ظرفیت ۲۰۰۰ میلی آمپر
***********
LC709203F_APA_3000MAH:
ظرفیت ۳۰۰۰ میلی آمپر

 

ورودی از نوع کلاس کتابخانه bool setPackSize(lc709203_adjustment_t apa)
به کمک این تابع ورژن آی سی خوانده شده و در خروجی قرار می گیرد. بدون ورودی uint16_t getICversion(void)
به کمک این تابع ولتاژ سلول خوانده شده و در خروجی قرار می گیرد. خروجی از نوع اعشاری است. بدون ورودی float cellVoltage(void)
به کمک این تابع درصد شارژ سلول در خروجی قرار می گیرد. خروجی از نوع اعشاری است. بدون ورودی float cellPercent(void)
به کمک این تابع ترمیستور ماژول تنظیم می شود. این مقدار در ورودی تابع قرار گرفته و در صورت اجرای موفقیت آمیز تابع، خروجی true خواهد شد. ورودی از نوع ۱۶ بیتی بدون علامت   bool setThermistorB(uint16_t b)
به کمک این تابع دمای باتری اندازه گیری شده و در خروجی آن قرار می گیرد. خروجی از نوع اعشاری است. بدون ورودی float getCellTemperature(void)
به کمک این تابع با تنظیم مقدار درصد شارژ در ورودی، هرگاه میزان شارژ باتری از درصد قرار گرفته در ورودی کمتر شود، ماژول آلارم خواهد داد. ورودی از نوع بدون علامت ۸ بیتی bool setAlarmRSOC(uint8_t percent)
به کمک این تابع ترمیستور متصل به ماژول تنظیم می شود. یکی از راه های اندازه گیری دمای باتری در این ماژول، اتصال ترمیستور به ورودی آن است. این تابع اندازه گیری دما با ترمیستور را ممکن می سازد. در ورودی این تابع باید مقاومت ترمیتسور به اهم درج گردد. ووردی از نوع ۱۶ بیتی بدون علامت bool setThermistorB(uint16_t b)
به کمک این تابع با تنظیم مقدار درصد ولتاژ در ورودی، هرگاه میزان ولتاژ باتری از مقدار قرار گرفته در ورودی کمتر شود، ماژول آلارم خواهد داد. ورودی از نوع اعشاری

 

bool setAlarmVoltage(float voltage)

 

پس از برسی توابع کلیدی و کاربردی نوبت به اجرای یک نمونه برنامه می رسد. در قسمت بعدی به این موضوع می پردازیم.

 


اجرای یک نمونه برنامه


 در این قسمت به اجرای یک نمونه برنامه می پردازیم. در این برنامه دما، ولتاژ و درصد شارژ باتری خوانده شده و در سریال مانیتور قرار می گیرد.

#include "Adafruit_LC709203F.h"  //اضافه نمودن کتابخانه به پروژه

Adafruit_LC709203F lc;  //ایجاد یک شی از کلاس کتابخانه

void setup() {
  Serial.begin(115200);
  delay(10);
  Serial.println("\nAdafruit LC709203F demo");

  if (!lc.begin()) {   //راه اندازی کتابخانه
    Serial.println(F("Couldnt find Adafruit LC709203F?\nMake sure a battery is plugged in!"));
    while (1) delay(10);
  }
  Serial.println(F("Found LC709203F"));
  Serial.print("Version: 0x"); 
  Serial.println(lc.getICversion(), HEX);  //چاپ آدرس آی سی در خروجی
  lc.setThermistorB(3950);  //  تعیین ترمیستور و مقاومت آن در ورودی
  lc.setPackSize(LC709203F_APA_500MAH); //تعیین ظرفیت باتری و نوع آن
  lc.setAlarmVoltage(3.8);  //تعیین آلارم بر روی ولتاژ ۳٫۸
}

void loop() {
  Serial.print("Batt Voltage: ");
  Serial.println(lc.cellVoltage(), 3); //نمایش ولتاژ سلول باتری
  Serial.print("Batt Percent: "); 
  Serial.println(lc.cellPercent(), 1);   //نمایش درصد شارژ باتری با دقت  یک رقم اعشار
  Serial.print("Batt Temp: "); 
  Serial.println(lc.getCellTemperature(), 1);   //نمایش دمای باتری
  delay(2000);  // تایخر برای آماده سازی و خواندن مجدد مقادیر
}

 


لوازم متناسب با آموزش


ماژول باتری LC709230F

انواع برد آردوینو

انواع ماژول ESP

 


جمع بندی


 در این آموزش به تحلیل و بررسی کتابخانه LC709203F، توسعه یافته توسط شرکت AdaFruit پرداختیم. مطابق رویه معمول آموزش های کتابخانه ای، ابتدا به نحوه نصب و بررسی نکات فنی کتابخانه پرداختیم. سپس در ادامه توابع کلیدی کتابخانه را مورد تحلیل و بررسی قرار دادیم. در نهایت با ارائه یک مثال، نحوه استفاده از توابع را در ک برنامه عملی مشاهده نمودیم.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه