فهرست مطالب:

کاهش مصرف باتری برای Digispark ATtiny85: 7 مرحله
کاهش مصرف باتری برای Digispark ATtiny85: 7 مرحله

تصویری: کاهش مصرف باتری برای Digispark ATtiny85: 7 مرحله

تصویری: کاهش مصرف باتری برای Digispark ATtiny85: 7 مرحله
تصویری: آموزش لحیم کاری 2024, نوامبر
Anonim
کاهش مصرف باتری برای Digispark ATtiny85
کاهش مصرف باتری برای Digispark ATtiny85
کاهش مصرف باتری برای Digispark ATtiny85
کاهش مصرف باتری برای Digispark ATtiny85

یا: اجرای آردوینو با سلول سکه 2032 به مدت 2 سال.

با استفاده از برد Digispark Arduino خارج از جعبه با برنامه آردوینو ، 20 میلی آمپر در 5 ولت می گیرد.

با یک پاوربانک 5 ولتی 2000 میلی آمپر ساعتی تنها 4 روز کار می کند.

مرحله 1: کاهش ولتاژ منبع تغذیه با استفاده از باتری LiPo

کاهش ولتاژ منبع تغذیه با استفاده از باتری LiPo
کاهش ولتاژ منبع تغذیه با استفاده از باتری LiPo

با استفاده از باتری LiPo با ولتاژ 3.7 ولت ، منبع Digispark شما فقط 13 میلی آمپر مصرف می کند.

با باتری 2000 میلی آمپر ساعت به مدت 6 روز کار می کند.

مرحله 2: ساعت CPU را کاهش دهید

اگر در برنامه خود از اتصال USB ، ریاضیات سنگین یا نظرسنجی سریع استفاده نمی کنید ، سرعت ساعت را کاهش دهید. به عنوان مثال. IRMP کتابخانه گیرنده مادون قرمز رای گیری بسیار خوب در 8 مگاهرتز اجرا می شود.

در 1 مگاهرتز Digispark شما 6 میلی آمپر می گیرد. با باتری 2000 میلی آمپر ساعت به مدت 14 روز کار می کند.

مرحله 3: LED Power Power Power Regulator و پاور را بردارید

با شکستن سیم مسی که LED قدرت را به دیود با چاقو متصل می کند ، LED قدرت را غیرفعال کنید یا مقاومت 102 را بردارید / غیرفعال کنید.

از آنجا که در حال حاضر از باتری LiPo استفاده می کنید ، می توانید IC تنظیم کننده برق داخلی را نیز حذف کنید. ابتدا پین های بیرونی را با کمک آهن لحیم کاری و سنجاق بلند کنید. سپس کانکتور بزرگ را لحیم کرده و تنظیم کننده را بردارید. برای تنظیم کننده های کوچک ، از لحیم کاری بسیار زیاد استفاده کنید و هر 3 پین را با هم گرم کنید ، سپس آن را بردارید.

Digispark شما در 1 مگاهرتز و 3.8 ولت اکنون 4.3 میلی آمپر می گیرد. با باتری 2000 میلی آمپر ساعت به مدت 19 روز کار می کند.

مرحله 4: قطع اتصال USB D- Pullup Resistor (با علامت 152) از 5 ولت (VCC) و اتصال آن به USB V+

قطع اتصال USB D- Pullup Resistor (با علامت 152) از 5 ولت (VCC) و اتصال آن به USB V+
قطع اتصال USB D- Pullup Resistor (با علامت 152) از 5 ولت (VCC) و اتصال آن به USB V+

این اصلاح با نسخه های all1.x بوت لودر micronucleus سازگار است. اگر قبلاً یک بوت لودر 2.x جدید در برد خود دارید ، باید به یکی از نسخه های 2.5 با "activePullup" به نام آن ارتقا دهید. ساده ترین راه برای انجام این کار ، نصب بسته هیئت مدیره digispark جدید و سوزاندن بوت لودر با نسخه توصیه شده (نه پیش فرض یا تهاجمی !!!) است.

سیم مسی را در کنار مقاومت که به ATtiny اشاره می کند بشکنید. این رابط USB را غیرفعال می کند و به نوبه خود امکان برنامه ریزی برد Digispark از طریق USB را دارد. برای فعال کردن مجدد ، اما همچنان در مصرف برق ، مقاومت (با علامت 152) را مستقیماً به USB V+ وصل کنید که به راحتی در قسمت بیرونی دیود شاتک موجود است. با استفاده از دستگاه تست پیوستگی ، دیود و طرفهای صحیح آن را می توان یافت. یک طرف این دیود به پین 8 ATtiny (VCC) و Digispark 5V متصل است. طرف دیگر به USB V+متصل است. در حال حاضر مقاومت خروجی USB فقط در صورتی فعال می شود که برد Digispark به USB وصل شده باشد. در حین برنامه نویسی

2 مرحله اخیر نیز در اینجا مستند شده است.

Digispark شما در 1 مگاهرتز و 3.8 ولت 3 میلی آمپر می گیرد. با باتری 2000 میلی آمپر ساعتی به مدت 28 روز کار می کند.

مرحله 5: از Sleep به جای Delay () استفاده کنید

استفاده از Sleep به جای تأخیر ()
استفاده از Sleep به جای تأخیر ()

به جای تأخیرهای طولانی می توانید از خواب CPU صرفه جویی در مصرف برق استفاده کنید. خواب می تواند از 15 میلی ثانیه تا 8 ثانیه در مراحل 15 ، 30 ، 60 ، 120 ، 250 ، 500 میلی ثانیه و 1 ، 2 ، 4 ، 8 ثانیه طول بکشد.

از آنجا که زمان راه اندازی از خواب 65 میلی ثانیه با تنظیمات فیوز دیگ اسپارک کارخانه است ، فقط تاخیرهای بزرگتر از 80 میلی ثانیه را می توان با خواب جایگزین کرد.

در هنگام خواب Digispark شما 27 میکرو آمپر می کشد. با سلول دکمه ای 200 میلی آمپری 2032 ، 10 ماه می خوابد.

برای درست بودن ، Digispark باید حداقل هر 8 ثانیه از خواب بیدار شود ، حداقل 65 میلی ثانیه کار کند و جریان 2 میلی آمپر را بکشد. این منجر به جریان متوسط 42 میکرو آمپر و 6 ماه می شود. در این سناریو تقریباً هیچ فرقی نمی کند که برنامه شما به مدت 10 میلی ثانیه (هر 8 ثانیه) اجرا شود.

کد استفاده از خواب عبارت است از:

#شامل #شامل #فرار uint16_t sNumberOfSleeps = 0 ؛ خارجی فرار بدون علامت طولانی millis_timer_millis؛ void setup () {sleep_enable ()؛ set_sleep_mode (SLEEP_MODE_PWR_DOWN) ؛ // عمیق ترین حالت خواب…} حلقه خالی () {… sleepWithWatchdog (WDTO_250MS ، درست) ؛ // خواب برای 250 میلی ثانیه… sleepWithWatchdog (WDTO_2S ، درست) ؛ // خواب 2 ثانیه…}/ * * aWatchdogPrescaler می تواند 0 (15 میلی ثانیه) تا 3 (120 میلی ثانیه) ، 4 (250 میلی ثانیه) تا 9 (8000 میلی ثانیه) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000؛ for (uint8_t i = 0؛ i 200 uA // صرفه جویی می کند // از wdt_enable () استفاده کنید زیرا نشان می دهد که بیت WDP3 در بیت 5 ثبت WDTCR wdt_enable (aWatchdogPrescaler) ؛ WDTCR | = _BV (WDIE) | _BV (WDIF) ؛ // وقفه Watchdog فعال + تنظیم مجدد پرچم وقفه -> نیاز به ISR (WDT_vect) sei ()؛ // فعال کردن وقفه های sleep_cpu ()؛ // // وقفه نگهبان ما را از خواب بیدار می کند wdt_disable ()؛ // زیرا وقفه بعدی در غیر این صورت انجام می شود منجر به بازنشانی شود ، زیرا wdt_enable () تنظیم مجدد WDE / Watchdog System Reset را فعال می کند ADCSRA | = ADEN ؛ / * * از آنجایی که ساعت تایمر ممکن است غیرفعال باشد ، تنها درصورتی که در حالت IDLE نخوابید میلی ثانیه تنظیم کنید (SM2… 0 بیت 000 است) * / اگر (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler)؛}} / * * این وقفه cpu را از خواب بیدار می کند * / ISR (WDT_vect) {sNumberOfSleeps ++؛}

مرحله 6: فیوزها را اصلاح کنید

22 میلی آمپر از 27 میلی آمپر توسط BOD (تشخیص BrownOutDetection/undervoltage detection) ترسیم می شود. BOD را فقط می توان با برنامه ریزی مجدد فیوزها غیرفعال کرد ، که فقط با برنامه نویس ISP قابل انجام است. با استفاده از این اسکریپت می توانید جریان را تا 5.5 µA کاهش دهید و همچنین زمان راه اندازی از خواب را به 4 میلی ثانیه کاهش دهید.

5 عدد از 5.5 µA باقیمانده توسط شمارنده فعال نگهبان ترسیم می شود. اگر می توانید از تنظیمات مجدد خارجی برای بیدار شدن استفاده کنید ، میزان مصرف فعلی همانطور که در برگه داده ذکر شده است به 0.3 µA می رسد.

اگر نمی توانید به این مقدار برسید ، دلیل آن می تواند این باشد که جریان معکوس دیود شاتکی بین VCC و pullup بسیار زیاد است. به خاطر داشته باشید که یک مقاومت 12 MOhm نیز 0.3 میکرو آمپر را در 3.7 ولت می گیرد.

این امر به طور متوسط مصرف فعلی 9 میکرو آمپر (2.5 سال با سلول دکمه ای 200 میلی آمپر ساعتی 2032) را به دنبال دارد ، در صورتی که می خواهید. مانند اینجا ، هر 8 ثانیه داده ها را به مدت 3 میلی ثانیه پردازش کنید.

مرحله 7: اطلاعات بیشتر

نقاشی فعلی تخته Digispark.

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

توصیه شده: