Բովանդակություն:

Digispark ATtiny85 մարտկոցի էներգիայի սպառման նվազեցում. 7 քայլ
Digispark ATtiny85 մարտկոցի էներգիայի սպառման նվազեցում. 7 քայլ

Video: Digispark ATtiny85 մարտկոցի էներգիայի սպառման նվազեցում. 7 քայլ

Video: Digispark ATtiny85 մարտկոցի էներգիայի սպառման նվազեցում. 7 քայլ
Video: LDmicro 14: I2C LCD & DS3231 Real-Time Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, Հուլիսի
Anonim
Digispark ATtiny85- ի համար մարտկոցի էներգիայի սպառման նվազեցում
Digispark ATtiny85- ի համար մարտկոցի էներգիայի սպառման նվազեցում
Digispark ATtiny85- ի համար մարտկոցի էներգիայի սպառման նվազեցում
Digispark ATtiny85- ի համար մարտկոցի էներգիայի սպառման նվազեցում

կամ. Arduino- ի վարում 2032 մետաղադրամի բջիջով 2 տարի:

Օգտագործելով ձեր Digispark Arduino տախտակը Arduino ծրագրով տուփից դուրս, այն ձգում է 20 մԱ 5 վոլտ հզորությամբ:

5 վոլտ հզորությամբ 2000 մԱ / ժ հզորությամբ այն կաշխատի ընդամենը 4 օր:

Քայլ 1. Մատակարարման լարման նվազեցում ՝ օգտագործելով LiPo մարտկոց

Մատակարարման լարման նվազեցում ՝ օգտագործելով LiPo մարտկոց
Մատակարարման լարման նվազեցում ՝ օգտագործելով LiPo մարտկոց

Օգտագործելով LiPo մարտկոց ՝ 3.7 վոլտ հզորությամբ, որպես Digispark տախտակ վերցնում է ընդամենը 13 մԱ:

2000 մԱ / ժ մարտկոցով այն կաշխատի 6 օր:

Քայլ 2: Կրճատեք պրոցեսորի ժամացույցը

Եթե ձեր ծրագրում չեք օգտագործում USB կապ, ծանր մաթեմատիկա կամ արագ քվեարկություն, նվազեցրեք ժամացույցի արագությունը: Օրինակ ՝ ծանր ինֆրակարմիր ընդունման գրադարանը IRMP- ն լավ է աշխատում 8 ՄՀց հաճախականությամբ:

1 ՄՀց հաճախականությամբ ձեր Digispark- ը նկարում է 6 մԱ: 2000 մԱ / ժ մարտկոցով այն կաշխատի 14 օր:

Քայլ 3: Հեռացրեք բորտը Power LED- ն և էներգիայի կարգավորիչը

Անջատեք հոսանքի LED- ն ՝ կոտրելով պղնձե մետաղալարը, որը դանակով միացնում է հոսանքի LED- ն դիոդին կամ հեռացրեք / անջատեք 102 դիմադրությունը:

Քանի որ դուք այժմ օգտագործում եք LiPo մարտկոցը, կարող եք նաև հեռացնել ներկառուցված էներգիայի կարգավորիչի IC- ն: Սկզբում բարձրացրեք արտաքին կապում զոդի և քորոցի օգնությամբ: Այնուհետև կպցրեք մեծ միակցիչը և հանեք կարգավորիչը: Փոքր կարգավորիչների համար օգտագործեք շատ զոդ և տաքացրեք բոլոր 3 կապում միասին, այնուհետև հեռացրեք այն:

1 ՄՀց և 3.8 վոլտ արագությամբ ձեր Digispark- ը այժմ հավաքում է 4.3 մԱ: 2000 մԱ / ժ մարտկոցով այն կաշխատի 19 օր:

Քայլ 4. USB D- քաշման դիմադրիչի անջատում (նշվում է 152) 5 վոլտից (VCC) և միացրեք այն USB V+- ին

USB D- Pullup Resistor- ի անջատում (նշվում է 152) 5 վոլտից (VCC) և միացրեք այն USB V+- ին
USB D- Pullup Resistor- ի անջատում (նշվում է 152) 5 վոլտից (VCC) և միացրեք այն USB V+- ին

Այս փոփոխությունը համատեղելի է micronucleus bootloader- ի all1.x տարբերակների հետ: Եթե ձեր տախտակին արդեն ունեք նոր 2.x բեռնիչ, ապա պետք է արդիականացնեք 2.5 տարբերակին ՝ «activePullup» անունով: Դա անելու ամենադյուրին ճանապարհը տեղադրել նոր digispark տախտակի փաթեթը և այրել bootloader- ը առաջարկվող (!!! ոչ կանխադրված կամ ագրեսիվ !!!) տարբերակով:

Կոտրեք պղնձե մետաղալարերը դիմադրության այն կողմում, որը մատնանշում է ATtiny- ն: Սա անջատում է USB ինտերֆեյսը և իր հերթին Digispark տախտակը USB- ով ծրագրավորելու հնարավորությունը: Այն նորից միացնելու, բայց և այնպես էներգիան խնայելու համար միացրեք դիմադրությունը (նշվում է 152 -ով) անմիջապես USB V+ - ին, որը հեշտությամբ հասանելի է ցնցող դիոդի արտաքին կողմում: Դիոդը և դրա ճիշտ կողմերը կարելի է գտնել շարունակականության փորձարկիչի միջոցով: Այս դիոդի մի կողմը միացված է ATtiny (VCC) և Digispark 5V կապի 8 -րդ կապին: Մյուս կողմը միացված է USB V+ - ին: Այժմ USB քաշման դիմադրությունը միացված է միայն այն դեպքում, երբ Digispark տախտակը միացված է USB- ին, օրինակ. ծրագրավորման ընթացքում:

Վերջին 2 քայլերը նույնպես փաստաթղթավորված են այստեղ:

1 ՄՀց և 3.8 վոլտ արագությամբ ձեր Digispark- ը այժմ վերցնում է 3 մԱ: 2000 մԱ / ժ մարտկոցով այն կաշխատի 28 օր:

Քայլ 5: Հետաձգման փոխարեն օգտագործեք քուն ()

Հետաձգման փոխարեն օգտագործեք քուն ()
Հետաձգման փոխարեն օգտագործեք քուն ()

Երկար ուշացումների փոխարեն կարող եք օգտագործել էներգախնայող պրոցեսորի քուն: Քնի տևողությունը 15 միլիվայրկյանից մինչև 8 վայրկյան է ՝ 15, 30, 60, 120, 250, 500 միլիվայրկյան և 1, 2, 4, 8 վայրկյան քայլերով:

Քանի որ քնի ժամանակ գործարկման ժամանակը 65 միլիվայրկյան է ՝ գործարանի digispark ապահովիչի կարգավորումներով, միայն 80 ms- ից ավելի մեծ ուշացումները կարող են փոխարինվել քունով:

Քնի ընթացքում ձեր Digispark- ը քաշում է 27 μA: 20032 mAh կոճակով 2032 բջիջով այն քնելու է 10 ամիս:

Correctիշտ լինելու համար Digispark- ը պետք է առնվազն արթնանա յուրաքանչյուր 8 վայրկյանը մեկ `վազելով առնվազն 65 միլիվայրկյան և քաշելով մոտ 2 մԱ հոսանք: Սա հանգեցնում է միջինը 42 μA հոսանքի և 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 ms … sleepWithWatchdog (WDTO_2S, ճշմարիտ); // քնել 2 վայրկյան…}/ * * aWatchdogPrescaler- ը կարող է լինել 0 (15 ms) մինչև 3 (120 ms), 4 (250 ms) մինչև 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i խնայում է 200 uA // օգտագործումը wdt_enable (), քանի որ այն կարգավորում է, որ WDP3 բիթը գտնվում է WDTCR գրանցամատյանի բիթ 5 -ում wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Watchdog ընդհատումը միացնել + վերականգնել ընդհատման դրոշը -> կարիք ունի ISR (WDT_vect) sei (); // Միացնել ընդհատումները sleep_cpu (); // Watchdog ընդհատումը մեզ կարթնացնի քնից 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);}} / * * Այս ընդհատումը արթնացնում է պրոցեսորը քունից * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Քայլ 6: Փոփոխեք ապահովիչները

27 մԱ -ից 22 մԱ -ն գծված է BOD- ի կողմից (BrownOutDetection/ցածր լարման հայտնաբերում): BOD- ը կարող է անջատվել միայն ապահովիչների ծրագրավորման միջոցով, ինչը կարող է կատարվել միայն ISP ծրագրավորողի միջոցով: Այս սցենարի միջոցով դուք կարող եք նվազեցնել հոսանքը մինչև 5.5 μA, ինչպես նաև նվազեցնել գործարկման ժամանակը քնելուց մինչև 4 միլիվայրկյան:

Մնացած 5.5 μA- ից 5 -ը գծված է հսկիչ ակտիվ հաշվիչի կողմից: Եթե կարող եք օգտագործել արտաքին վերագործարկումներ արթնանալու համար, ընթացիկ սպառումը կարող է իջնել մինչև 0,3 μA, ինչպես նշված է տվյալների թերթում:

Եթե դուք չեք կարողանում հասնել այս արժեքին, պատճառը կարող է լինել, որ VCC- ի և քաշման միջև schottky դիոդի հակառակ հոսանքը չափազանց բարձր է: Հիշեք, որ 12 ՄՀմ ռեզիստորը նույնպես ձգում է 0.3 μA ՝ 3.7 վոլտ:

Սա հանգեցնում է միջին ընթացիկ սպառման 9 μA (2.5 տարի ՝ 200 mAh կոճակով 2032 կոճակով), եթե օրինակ. ինչպես 8 վայրկյանը մեկ տվյալները, ինչպես այստեղ ՝ 3 միլիվայրկյան:

Քայլ 7: Լրացուցիչ տեղեկություններ

Digispark տախտակի ընթացիկ գծանկարը:

Նախագիծ ՝ օգտագործելով այս հրահանգները:

Խորհուրդ ենք տալիս: