فهرست مطالب:

کنترل کننده باتری با دما و انتخاب باتری: 23 مرحله (همراه با تصاویر)
کنترل کننده باتری با دما و انتخاب باتری: 23 مرحله (همراه با تصاویر)

تصویری: کنترل کننده باتری با دما و انتخاب باتری: 23 مرحله (همراه با تصاویر)

تصویری: کنترل کننده باتری با دما و انتخاب باتری: 23 مرحله (همراه با تصاویر)
تصویری: این تنظیمات آیفون را همین حالا تغییر دهید ⛔❗ 2024, جولای
Anonim
Image
Image
تغییر از پروژه پایه
تغییر از پروژه پایه

تست کننده ظرفیت باتری

با استفاده از این دستگاه می توانید ظرفیت باتری 18650 ، اسید و سایر موارد را بررسی کنید (بزرگترین باتری که تست کردم این باتری اسیدی 6 ولت 4 ، 2A است). نتیجه آزمایش بر حسب میلی آمپر/ساعت است.

من این دستگاه را ایجاد می کنم زیرا برای بررسی ظرفیت باتری چینی جعلی به آن نیاز دارم.

برای ایمنی ، با استفاده از ترمیستور ، درجه حرارت مقاومت و باتری را برای جلوگیری از داغ شدن زیاد اضافه کردم ، با این ترفند می توانم باتری اسیدی 6 ولت را بدون آتش زدن صفحه بررسی کنم (در چرخه تخلیه مدتی به مقاومت قدرت گرم بروید و دستگاه 20 ثانیه منتظر بماند تا دما کاهش یابد).

من کنترل کوچک میکرو کنترل atmega328 nano (eBay) را انتخاب می کنم.

تمام کد اینجاست

مرحله 1: تغییر از پروژه اصلی

من این ایده را از پروژه OpenGreenEnergy ربودم و برای افزودن ویژگی ها ، هیئت مدیره را دوباره انجام می دهم ، بنابراین اکنون عمومی تر شوید.

v0.1

  • VCC آردوینو اکنون به طور خودکار محاسبه می شود.
  • اضافه متغیر برای تغییر تنظیمات در یک راه راحت تر.
  • درصد تخلیه اضافه شده است
  • اضافه شدن دمای باتری و مقاومت قدرت

v0.2

  • اضافه شدن امکان انتخاب باتری
  • صفحه اولیه ، صفحه نمایش ، دکمه و بلندگو خارج از برد ایجاد شده است ، زیرا در آینده می خواهم یک بسته ایجاد کنم.
  • مدیریت محدودیت دما به مقاومت قدرت اضافه شده است تا بتوانم هنگام افزایش دما به بیش از 70 درجه (با تخریب مقاومت مقاومت در برابر دما) روند را مسدود کنم.

v0.3

به زودی تابلویی از این سرویس

مرحله 2: V0.2 هیئت مدیره

V0.2 هیئت مدیره
V0.2 هیئت مدیره

در نسخه 2.0 برای پشتیبانی از انواع مختلف باتری ، ساختاری ایجاد کردم که باید با نام باتری ، حداقل ولتاژ و حداکثر ولتاژ پر شود (برای پر کردن آن به کمک نیاز دارم: P).

// ساختار باتری typeestruct BatteryType {char name [10]؛ float maxVolt؛ شناور minVolt؛ }؛ #تعریف BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650" ، 4.3 ، 2.9} ، {"17550" ، 4.3 ، 2.9} ، {"14500" ، 4.3 ، 2.75} ، {"6v Acid" ، 6.50 ، 5.91 }}؛

اکنون از مجموعه ای از مقاومتهای 10k برای تقسیم ولتاژ برای خواندن دمای دوگانه ورودی آنالوگ استفاده می کنم. اگر می خواهید پشتیبانی ولتاژ را تغییر دهید ، باید این مقدار را تغییر دهید (در ادامه بهتر توضیح دهید):

// مقاومت ولتاژ باتری

#تعریف BAT_RES_VALUE_GND 10.0 #تعریف BAT_RES_VALUE_VCC 10.0 // مقاومت ولتاژ مقاومت مقاومت #تعریف RES_RES_VALUE_GND 10.0 #تعریف RES_RES_VALUE_VCC 10.0

اگر از ترمیستور استفاده نمی کنید ، این را روی false تنظیم کنید:

#تعریف USING_BATTERY_TERMISTOR درست است

#تعریف USING_RESISTO_TERMISTOR درست است

اگر از صفحه نمایش i2c متفاوتی استفاده می کنید ، باید این روش را دوباره بنویسید:

قرعه کشی باطل (خالی)

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

مرحله 3: Breadboard: I2c Character Controller Controller Expanded

Breadboard: I2c Character Display Controller Expanded
Breadboard: I2c Character Display Controller Expanded

من از یک نمایشگر کاراکتر عمومی استفاده کردم ، و کنترلر i2c را ساختم و از آن با کتابخانه سفارشی خود استفاده کردم.

اما در صورت تمایل ، می توانید یک کنترلر عادی i2c (کمتر از 1 یورو) با یک کتابخانه استاندارد بگیرید ، کد همان است. تمام کد صفحه نمایش در حالت قرعه کشی است ، بنابراین می توانید آن را بدون تغییر سایر موارد تغییر دهید.

بهتر است در اینجا توضیح داده شود.

مرحله 4: Breadboard: Character Display With I2c Integrated

Breadboard: Character Display With I2c Integrated
Breadboard: Character Display With I2c Integrated

همان طرح بدون کنترل i2c گسترش یافته است.

مرحله 5: تحقق بخشیدن

برای اندازه گیری ولتاژ از اصل تقسیم ولتاژ (اطلاعات بیشتر در ویکی پدیا) استفاده می کنیم.

به عبارت ساده ، این کد عامل ضرب کننده برای اندازه گیری ولتاژ باتری است.

batResValueGnd / (batResValueVolt + batResValueGnd)

من 2 مقاومت batResValueVolt و batResValueGnd را قبل و قبل از سیم خواندن آنالوگ وارد کردم.

batVolt = (sample1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc ؛

sample1 متوسط قرائت های آنالوگ است.

مرجع vcc ولتاژ آردوینو ؛

1023.0 حداکثر مقدار مرجع خواندن آنالوگ است (خواندن آنالوگ آردوینو از 0 به 1023 می رسد).

برای بدست آوردن آمپر به ولتاژ بعد و قبل از مقاومت قدرت نیاز دارید.

هنگامی که ولتاژ را بعد و قبل از مقاومت قدرت اندازه گیری می کنید ، می توانید میلی آمپر مصرف کننده باتری را محاسبه کنید.

MOSFET برای شروع و توقف تخلیه باتری از مقاومت استفاده می شود.

برای ایمنی ، 2 ترمیستور برای نظارت بر باتری و دمای مقاومت قدرت وارد کردم.

مرحله 6: قابلیت توسعه

قابلیت توسعه
قابلیت توسعه
قابلیت توسعه
قابلیت توسعه

من سعی می کنم یک نمونه اولیه از صفحه را بسط دهم ، اما در حال حاضر فقط از حداقل مجموعه ای از پین ها استفاده می کنم (در آینده led ها و دکمه های دیگر را اضافه می کنم).

اگر می خواهید ولتاژ پشتیبانی بیشتر از 10 ولت باشد ، باید مقدار مقاومت باتری و مقاومت را مطابق فرمول تغییر دهید

(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)

در طرح ولتاژ قدرت مقاومت

ولتاژ قدرت مقاومت GND 1/2/(ولتاژ توان مقاومت 2/2 + ولتاژ توان مقاومت GND 1/2)

رنگ صورتی در حال لحیم کاری است

مرحله 7: لیست قطعات

مقدار نوع ویژگی ها

  • 2 قطر پیچ 5 میلی متری بلوک ترمینال PCB Mount Screw 8A 250V LW SZUS (eBay)
  • 1 کلون Arduino Pro Mini (سازگار با نانو) (eBay)
  • 1 FET P-Channel IRF744N یا IRLZ44N (eBay)
  • 11 مقاومت 10kΩ مقاومت 10kΩ (eBay)
  • 2 سنسور دما (ترمیستور) 10kΩ ؛ (eBay)
  • * فرم هدر عمومی مرد ♂ (مرد) ؛ (eBay)
  • * فرم هدر عمومی زن female (زن) ؛ (eBay)
  • 1 تخته PerfBoard نمونه اولیه تخته 24x18 (eBay)
  • 10R ، 10W

    مقاومت قدرت (eBay) من خودم را در یک تلویزیون قدیمی crt پیدا می کنم.

مرحله 8: برد: بازنشانی ، دکمه Gnd E برای انتخاب باتری

برد: تنظیم مجدد ، دکمه Gnd E برای انتخاب باتری
برد: تنظیم مجدد ، دکمه Gnd E برای انتخاب باتری

در قسمت سمت چپ پین ها می توانید دکمه و زنگ را بیابید.

من از 3 دکمه استفاده می کنم:

  1. یکی برای تغییر نوع باتری ؛
  2. یکی برای شروع تخلیه باتری انتخاب شده ؛
  3. سپس از ریست پین برای راه اندازی مجدد همه و فعال کردن عملیات جدید استفاده می کنم.

تمام پین در حال حاضر پایین کشیده شده است بنابراین باید با VCC فعال کنید

تنظیم مجدد با GND فعال می شود

رنگ صورتی در حال لحیم کاری است

مرحله 9: برد: I2c و پین های منبع تغذیه

برد: I2c و پین های منبع تغذیه
برد: I2c و پین های منبع تغذیه

در پایه می توانید VCC ، GND و SDA ، SCL را برای نمایش (و سایر موارد در آینده) مشاهده کنید.

رنگ صورتی در حال لحیم کاری است

مرحله 10: برد: ترمیستور و اندازه گیری ولتاژ

برد: ترمیستور و اندازه گیری ولتاژ
برد: ترمیستور و اندازه گیری ولتاژ

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

سپس پین های آنالوگ وجود دارد که ولتاژ دیفرانسیل بعد و قبل از مقاومت را اندازه گیری می کنند.

رنگ صورتی در حال لحیم کاری است

مرحله 11: برد: مقاومت در برابر اندازه گیری ولتاژ

برد: مقاومت در برابر اندازه گیری ولتاژ
برد: مقاومت در برابر اندازه گیری ولتاژ
برد: مقاومت در برابر اندازه گیری ولتاژ
برد: مقاومت در برابر اندازه گیری ولتاژ

در اینجا می توانید مقاومتی را مشاهده کنید که اجازه می دهد ولتاژ را دو برابر پین آردوینو (10 ولت) پشتیبانی کند ، باید این را برای پشتیبانی از ولتاژ بیشتر تغییر دهید.

رنگ صورتی در حال لحیم کاری است

مرحله 12: مرحله لحیم کاری: همه پین ها

مرحله لحیم کاری: همه پین ها
مرحله لحیم کاری: همه پین ها
مرحله لحیم کاری: همه پین ها
مرحله لحیم کاری: همه پین ها

ابتدا همه پین ها را اضافه کرده و لحیم می کنم.

مرحله 13: مراحل لحیم کاری: مقاومت Pulldown و ترمیستور

مراحل لحیم کاری: مقاومت Pulldown و ترمیستور
مراحل لحیم کاری: مقاومت Pulldown و ترمیستور
مراحل لحیم کاری: مقاومت Pulldown و ترمیستور
مراحل لحیم کاری: مقاومت Pulldown و ترمیستور

سپس من همه pulldown resitor (برای دکمه ها) و اتصال i2c (صفحه نمایش) را اضافه می کنم.

سپس مقاومت در برابر ترمیستور مقاومت بسیار مهم است ، زیرا باتری اسیدی بیش از حد داغ می شود.

مرحله 14: مراحل لحیم کاری: MOSFET ، مقاومت در برابر بررسی ولتاژ

مراحل لحیم کاری: MOSFET ، مقاومت در برابر بررسی ولتاژ
مراحل لحیم کاری: MOSFET ، مقاومت در برابر بررسی ولتاژ
مراحل لحیم کاری: MOSFET ، مقاومت در برابر بررسی ولتاژ
مراحل لحیم کاری: MOSFET ، مقاومت در برابر بررسی ولتاژ

اکنون باید mosfet را برای فعال کردن تخلیه و مقاومت در برابر بررسی ولتاژ وارد کنیم.

2 مقاومت برای ولتاژ قبل از مقاومت قدرت 2 مقاومت ولتاژ بعد از مقاومت قدرت ، هنگامی که این ولتاژ را دارید می توانید مصرف میلی آمپر را محاسبه کنید.

مرحله 15: کد

میکروکنترلر نانو سازگار است ، بنابراین باید IDE خود را برای بارگذاری Arduino Nano تنظیم کنید.

برای کار باید کد را از مخزن github من بارگیری کنید.

از این رو باید 3 کتابخانه اضافه کنید:

  1. سیم: کتابخانه استاندارد arduino برای پروتکل i2c ؛
  2. کتابخانه ترمیستور از اینجا نه کتابخانه ای که می توانید در arduino IDE پیدا کنید ، بلکه نسخه من است.
  3. LiquidCrystal_i2c: اگر از نسخه آداپتور i2c توسعه یافته/سفارشی (نسخه من) استفاده می کنید ، باید کتابخانه را از اینجا بارگیری کنید ، اگر از مولفه استاندارد استفاده می کنید ، می توانید کتابخانه را از arduino IDE بگیرید ، اما همه چیز در اینجا بهتر توضیح داده شده است.

من LCD را با کتابخانه استاندارد آزمایش نمی کنم ، به نظر می رسد که آنها قابل تعویض هستند ، اما اگر مشکلی وجود داشت ، می توانید با من تماس بگیرید.

مرحله 16: نتیجه پس از مونتاژ

Image
Image
نتیجه بعد از مونتاژ
نتیجه بعد از مونتاژ
نتیجه بعد از مونتاژ
نتیجه بعد از مونتاژ

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

مرحله 17: ابتدا نوع باتری را انتخاب کنید

ابتدا نوع باتری را انتخاب کنید
ابتدا نوع باتری را انتخاب کنید

همانطور که توضیح داده شد ، نقشه ای با مقدار پیکربندی باتری داریم.

// ساختار باتری typeestruct BatteryType {char name [10]؛ float maxVolt؛ شناور minVolt؛ }؛ #تعریف BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650" ، 4.3 ، 2.9} ، {"17550" ، 4.3 ، 2.9} ، {"14500" ، 4.3 ، 2.75} ، {"6v Acid" ، 6.50 ، 5.91 }}؛

مرحله 18: شروع به تخلیه کنید

شروع به تخلیه کنید
شروع به تخلیه کنید
شروع به تخلیه کنید
شروع به تخلیه کنید

روی دکمه دوم شروع به تخلیه کلیک کنید.

در صفحه نمایش می توانید میلی آمپر فعلی ، میلی آمپر/ساعت ، درصد تخلیه ، ولتاژ باتری و دمای مقاومت قدرت و باتری را مشاهده کنید.

مرحله 19: موارد استثنا: باتری برداشته شده است

Image
Image
موارد استثنا: هشدار دما
موارد استثنا: هشدار دما

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

مرحله 20: استثنائات: هشدار دما

موارد استثنا: هشدار دما
موارد استثنا: هشدار دما
موارد استثنا: هشدار دما
موارد استثنا: هشدار دما
موارد استثنا: هشدار دما
موارد استثنا: هشدار دما

اگر دما (باتری یا مقاومت قدرت) داغ شود ، روند تخلیه به حالت مکث می رود.

#تعریف BATTERY_MAX_TEMP 50

#تعریف RESISTANCE_MAX_TEMP 69 // 70 درجه در برگه اطلاعات (کاهش مقاومت ها) #تعریف TEMP_TO_REMOVE_ON_MAX_TEMP 20

مقدار پیش فرض برای حداکثر دما 50 درجه برای باتری و 69 برای مقاومت در برابر قدرت است.

همانطور که در کامنت مشاهده می کنید ، هنگام افزایش بیش از 70 درجه ، مقاومت قدرت تحت تأثیر کاهش درجه حرارت قرار می گیرد.

در صورت افزایش هشدار TEMP_TO_REMOVE_ON_MAX_TEMP ثانیه مکث را برای قرار دادن دمای پایین آغاز کنید.

مرحله 21: آمپراژ را آزمایش کنید

امپراژ تست
امپراژ تست

نتیجه آزمایش آمپراژ خوب است.

مرحله 22: بسته بندی

با اجزای جدا شده ، نتیجه بسته به سادگی قابل درک است.

در یک جعبه باید یک مستطیل برای LCD ، سوراخ های دکمه های فشار و یک بشکه خارجی زن برای تأمین ولتاژ منبع تغذیه انجام شود.

دکمه فشاری نیازی به مقاومت کشویی ندارد زیرا آن را از قبل روی صفحه اضافه می کنم.

وقتی کمی وقت دارم ، آن را ایجاد و ارسال می کنم.

توصیه شده: