Turinys:

Akumuliatoriaus energijos suvartojimo mažinimas „Digispark ATtiny85“: 7 žingsniai
Akumuliatoriaus energijos suvartojimo mažinimas „Digispark ATtiny85“: 7 žingsniai

Video: Akumuliatoriaus energijos suvartojimo mažinimas „Digispark ATtiny85“: 7 žingsniai

Video: Akumuliatoriaus energijos suvartojimo mažinimas „Digispark ATtiny85“: 7 žingsniai
Video: Naujo elektros energijos vartotojo prijungimo paraiškos instrukcija 2024, Lapkritis
Anonim
„Digispark ATtiny85“baterijos energijos suvartojimo mažinimas
„Digispark ATtiny85“baterijos energijos suvartojimo mažinimas
„Digispark ATtiny85“baterijos energijos suvartojimo mažinimas
„Digispark ATtiny85“baterijos energijos suvartojimo mažinimas

arba: 2 metus paleisti „Arduino“su 2032 monetų elementu.

Naudojant „Digispark Arduino“plokštę iš dėžutės su „Arduino“programa, ji sunaudoja 20 mA esant 5 voltų įtampai.

Su 5 voltų maitinimo bloku, kurio talpa yra 2000 mAh, jis veiks tik 4 dienas.

1 žingsnis: Sumažinkite maitinimo įtampą naudodami „LiPo“akumuliatorių

Maitinimo įtampos sumažinimas naudojant LiPo akumuliatorių
Maitinimo įtampos sumažinimas naudojant LiPo akumuliatorių

Naudojant 3,7 volto LiPo bateriją, „Digispark“plokštė sunaudoja tik 13 mA.

Su 2000 mAh baterija jis veiks 6 dienas.

2 žingsnis: sumažinkite procesoriaus laikrodį

Jei savo programoje nenaudojate USB jungties, sunkių matematikų ar greito apklausos, sumažinkite laikrodžio greitį. Pvz. intensyvios apklausos infraraudonųjų spindulių priėmimo biblioteka IRMP gerai veikia 8 MHz dažniu.

1 MHz dažniu jūsų „Digispark“naudoja 6 mA. Su 2000 mAh baterija jis veiks 14 dienų.

3 veiksmas: nuimkite maitinimo indikatorių ir maitinimo reguliatorių

Išjunkite maitinimo šviesos diodą, peiliu nutraukdami varinę vielą, jungiančią maitinimo šviesos diodą su diodu, arba nuimkite / išjunkite 102 rezistorių.

Kadangi dabar naudojate „LiPo“akumuliatorių, taip pat galite pašalinti įmontuotą maitinimo reguliatorių IC. Pirmiausia pakelkite išorinius kaiščius, naudodami lituoklį ir kaištį. Tada lituokite didelę jungtį ir nuimkite reguliatorių. Mažiems reguliatoriams naudokite daug lydmetalio ir kartu pašildykite visus 3 kaiščius, tada nuimkite.

Esant 1 MHz ir 3,8 voltų greičiui, „Digispark“dabar naudoja 4,3 mA. Su 2000 mAh baterija jis veiks 19 dienų.

4 veiksmas: atjunkite USB D ištraukimo rezistorių (pažymėtą 152) nuo 5 voltų (VCC) ir prijunkite jį prie USB V+

USB D-Pullup rezistoriaus (pažymėtas 152) atjungimas nuo 5 voltų (VCC) ir prijungimas prie USB V+
USB D-Pullup rezistoriaus (pažymėtas 152) atjungimas nuo 5 voltų (VCC) ir prijungimas prie USB V+

Šis pakeitimas suderinamas su visomis „micronucleus“įkrovos tvarkyklės versijomis. Jei jūsų plokštėje jau yra naujas 2.x įkrovos tvarkyklė, turite atnaujinti į 2.5 versiją, kurios pavadinime yra „ActivePullup“. Lengviausias būdas tai padaryti yra įdiegti naują „digispark“plokštės paketą ir įrašyti įkrovos įkėlimo programą naudojant rekomenduojamą (!!! ne numatytąją ar agresyviąją !!!) versiją.

Nutraukite vario laidą rezistoriaus pusėje, nukreiptoje į ATtiny. Tai išjungia USB sąsają ir savo ruožtu galimybę užprogramuoti „Digispark“plokštę per USB. Norėdami dar kartą įjungti, bet vis tiek taupyti energiją, prijunkite rezistorių (pažymėtą 152) tiesiai prie USB V+, kuris yra lengvai pasiekiamas išorinėje švytinčio diodo pusėje. Diodą ir teisingas jo puses galima rasti naudojant tęstinumo testerį. Viena šio diodo pusė yra prijungta prie „ATtiny“(VCC) ir „Digispark 5V“8 kaiščio. Kita pusė prijungta prie USB V+. Dabar USB traukimo rezistorius aktyvuojamas tik tuo atveju, jei „Digispark“plokštė prijungta prie USB, pvz. programavimo metu.

Pastarieji 2 veiksmai taip pat aprašyti čia.

Esant 1 MHz ir 3,8 voltų greičiui, „Digispark“dabar naudoja 3 mA. Su 2000 mAh baterija jis veiks 28 dienas.

5 veiksmas: naudokite miego režimą, o ne atidėjimą ()

Naudokite miego režimą, o ne vėlavimą ()
Naudokite miego režimą, o ne vėlavimą ()

Vietoj ilgų vėlavimų galite naudoti energiją taupantį procesoriaus miego režimą. Miegas gali trukti nuo 15 milisekundžių iki 8 sekundžių 15, 30, 60, 120, 250, 500 milisekundžių žingsniais ir 1, 2, 4, 8 sekundėmis.

Kadangi paleidimo laikas iš miego režimo yra 65 milisekundės su gamykliniais skaitmeninio kibirkštinio saugiklio nustatymais, tik didesnį nei 80 ms vėlavimą galima pakeisti miego režimu.

Miego metu „Digispark“sugeria 27 µA. Su 200 mAh mygtuku 2032 jis miegos 10 mėnesių.

Kad būtų teisinga, „Digispark“turi pabusti bent kas 8 sekundes, veikti mažiausiai 65 milisekundes ir pritraukti apie 2 mA srovę. Dėl to vidutinė srovė yra 42 µA ir 6 mėnesiai. Šiuo atveju beveik nėra jokio skirtumo, jei jūsų programa veikia 10 milisekundžių (kas 8 sekundes).

Miego naudojimo kodas yra:

#include #include nepastovus uint16_t sNumberOfSleeps = 0; išorinis nepastovus nepasirašytas ilgas millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // giliausias miego režimas…} void loop () {… sleepWithWatchdog (WDTO_250MS, tiesa); // miegoti 250 ms… sleepWithWatchdog (WDTO_2S, tiesa); // miegoti 2 sekundes…}/ * * aWatchdogPrescaler gali būti nuo 0 (15 ms) iki 3 (120 ms), 4 (250 ms) iki 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i sutaupo 200 uA // use wdt_enable (), nes jis tvarko, kad WDP3 bitas yra WDTCR registro 5 bitų wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // „Watchdog“pertraukos įgalinimas + iš naujo nustatyti pertraukimo vėliavą -> reikia ISR (WDT_vect) sei (); // Įgalinti pertraukas sleep_cpu (); // „Watchdog“pertrauka pažadins mus iš miego wdt_disable (); // Kadangi kitas pertraukimas bus kitaip veda prie atstatymo, nes wdt_enable () nustato WDE / Watchdog sistemos atstatymą Įgalinti ADCSRA | = ADEN; / * * Kadangi laikmačio laikrodis gali būti išjungtas, koreguokite milimetrus tik tada, jei nemiegate tuščiosios eigos režimu (SM2… 0 bitų yra 000) * / jei (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Šis pertraukimas pažadina procesorių iš miego režimo * / ISR (WDT_vect) {sNumberOfSleeps ++;}

6 veiksmas: pakeiskite saugiklius

22 mA iš 27 mA nubrėžia BOD („BrownOutDetection“/nepakankamos įtampos aptikimas). BOD galima išjungti tik perprogramavus saugiklius, o tai galima padaryti tik naudojant ISP programuotoją. Naudodami šį scenarijų galite sumažinti srovę iki 5,5 µA, taip pat sutrumpinti paleidimo laiką nuo miego iki 4 milisekundžių.

5 iš likusių 5,5 µA ištraukiami aktyvaus stebėtojo skaitikliu. Jei pabudimui galite naudoti išorinius atstatymus, dabartinis energijos suvartojimas gali sumažėti iki 0,3 µA, kaip nurodyta duomenų lape.

Jei negalite pasiekti šios vertės, priežastis gali būti ta, kad atvirkštinė Schottky diodo srovė tarp VCC ir prisitraukimo yra per didelė. Atminkite, kad 12 MOhm rezistorius taip pat naudoja 0,3 µA esant 3,7 volto įtampai.

Dėl to vidutiniškai sunaudojama 9 µA srovė (2,5 metų su 200 mAh mygtuku 2032), jei pvz. apdoroti duomenis kas 8 sekundes 3 milisekundes, kaip čia.

7 žingsnis: papildoma informacija

Dabartinis „Digispark“plokštės brėžinys.

Projektuokite naudodami šias instrukcijas.

Rekomenduojamas: