Përmbajtje:

Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85: 7 hapa
Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85: 7 hapa

Video: Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85: 7 hapa

Video: Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85: 7 hapa
Video: Rihapen tenderët për eficiencën e energjisë – Synohet ngritja e databazës së konsumit energjetik 2024, Nëntor
Anonim
Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85
Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85
Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85
Reduktimi i konsumit të energjisë së baterisë për Digispark ATtiny85

ose: Drejtimi i një Arduino me një qelizë monedhe 2032 për 2 vjet.

Duke përdorur Bordin tuaj Digispark Arduino jashtë kutisë me një program Arduino tërheq 20 mA në 5 volt.

Me një fuqi bankare 5 volt prej 2000 mAh do të funksionojë vetëm për 4 ditë.

Hapi 1: Reduktimi i Tensionit të Furnizimit duke Përdorur një Bateri LiPo

Ulja e tensionit të furnizimit duke përdorur një bateri LiPo
Ulja e tensionit të furnizimit duke përdorur një bateri LiPo

Përdorimi i një baterie LiPo me 3.7 volt si furnizues bordi juaj Digispark tërheq vetëm 13 mA.

Me një bateri 2000 mAh do të funksionojë për 6 ditë.

Hapi 2: Reduktoni Orën e CPU

Nëse nuk përdorni lidhje USB, matematikë të rëndë ose sondazhe të shpejta në programin tuaj, zvogëloni shpejtësinë e orës. P.sh. biblioteka IRMP marrëse e votimit të rëndë shkon mirë në 8 MHz.

Në 1 MHz Digispark juaj tërheq 6 mA. Me një bateri 2000 mAh do të funksionojë për 14 ditë.

Hapi 3: Hiqni LED -in e energjisë në bord dhe Rregullatorin e energjisë

Çaktivizoni LED -in e energjisë duke thyer tela bakri që lidh LED -in e energjisë me diodë me thikë ose hiqni / çaktivizoni rezistencën 102.

Meqenëse po përdorni një bateri LiPo tani, gjithashtu mund të hiqni IC -në e rregullatorit të energjisë në bord. Së pari ngrini kunjat e jashtme me ndihmën e një hekuri lidhës dhe një kunj. Pastaj lidhni lidhësin e madh dhe hiqni rregullatorin. Për rregullatorët e vegjël, përdorni shumë saldim dhe ngrohni të tre kunjat së bashku, pastaj hiqeni atë.

Në 1 MHz dhe 3.8 volt Digispark juaj tani tërheq 4.3 mA. Me një bateri 2000 mAh do të funksionojë për 19 ditë.

Hapi 4: Shkëputja e rezistencës USB D-Pullup (e shënuar 152) nga 5 Volt (VCC) dhe lidheni atë me USB V+

Shkëputja e rezistencës USB D-Pullup (e shënuar 152) Nga 5 Volt (VCC) dhe Lidheni atë me USB V+
Shkëputja e rezistencës USB D-Pullup (e shënuar 152) Nga 5 Volt (VCC) dhe Lidheni atë me USB V+

Ky modifikim është i pajtueshëm me të gjitha versionet 1.x të ngarkuesit të mikronukleusit. Nëse tashmë keni një ngarkues të ri 2.x në bordin tuaj, duhet të azhurnoni në një nga versionet 2.5 me "activePullup" në emrin e tij. Mënyra më e lehtë për ta bërë këtë, është të instaloni paketën e re të bordit digispark dhe të digjni ngarkuesin me versionin e rekomanduar (!!! jo të paracaktuar ose agresiv !!!).

Thyejeni tela bakri në anën e rezistencës që tregon ATtiny. Kjo çaktivizon ndërfaqen USB dhe nga ana tjetër mundësinë për të programuar bordin Digispark përmes USB. Për ta aktivizuar përsëri, por akoma për të kursyer energji, lidhni rezistencën (e shënuar me 152) drejtpërdrejt në USB V+ që është lehtësisht i disponueshëm në anën e jashtme të diodës së ndezur. Dioda dhe anët e saj të sakta mund të gjenden duke përdorur një testues të vazhdimësisë. Njëra anë e kësaj diode është e lidhur me kunjin 8 të ATtiny (VCC) dhe Digispark 5V. Ana tjetër është e lidhur me USB V+. Tani rezistenca tërheqëse USB aktivizohet vetëm nëse bordi Digispark është i lidhur me USB p.sh. gjatë programimit.

2 hapat e fundit janë dokumentuar gjithashtu këtu.

Në 1 MHz dhe 3.8 volt Digispark juaj tani tërheq 3 mA. Me një bateri 2000 mAh do të funksionojë për 28 ditë.

Hapi 5: Përdorni gjumin në vend të vonesës ()

Përdorni gjumin në vend të vonesës ()
Përdorni gjumin në vend të vonesës ()

Në vend të vonesave të gjata, mund të përdorni gjumin e procesorit që kursen energji. Gjumi mund të zgjasë nga 15 milisekonda deri në 8 sekonda në hapa prej 15, 30, 60, 120, 250, 500 milisekonda dhe 1, 2, 4, 8 sekonda.

Meqenëse koha e fillimit nga gjumi është 65 milisekonda me cilësimet e siguresave të fabrikës digispark, vetëm vonesat më të mëdha se 80 ms mund të zëvendësohen me gjumë.

Gjatë gjumit Digispark juaj tërheq 27 µA. Me një qelizë butoni 200 mAh 2032 do të flejë për 10 muaj.

Për të qenë i saktë, Digispark duhet të zgjohet të paktën çdo 8 sekonda, duke funksionuar për të paktën 65 milisekonda dhe duke tërhequr rreth 2 mA rrymë. Kjo çon në një rrymë mesatare prej 42 µA dhe 6 muaj. Në këtë skenar nuk ka pothuajse asnjë ndryshim nëse programi juaj funksionon për 10 milisekonda (çdo 8 sekonda).

Kodi për përdorimin e gjumit është:

#include #include volatile uint16_t sNumberOfSleeps = 0; jashtme të paqëndrueshme të panënshkruara të gjata millis_timer_millis; void setup () {sleep_enable (); modaliteti i_vendosjes (SLEEP_MODE_PWR_DOWN); // mënyra më e thellë e gjumit…} lak i zbrazët () {… sleepWithWatchdog (WDTO_250MS, e vërtetë); // fle për 250 ms… sleepWithWatchdog (WDTO_2S, e vërtetë); // fle për 2 sekonda…}/ * * aWatchdogPrescaler mund të jetë 0 (15 ms) deri në 3 (120 ms), 4 (250 ms) deri në 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; për (uint8_t i = 0; i kursen 200 uA // përdor wdt_enable () pasi merret me faktin se biti WDP3 është në bitin 5 të regjistrit WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Ndërprerja Watchdog aktivizoni + rivendosni flamurin e ndërprerjes -> ka nevojë për ISR (WDT_vect) sei (); // Aktivizoni ndërprerjet sleep_cpu (); // Ndërprerja e rojes do të na zgjojë nga gjumi wdt_disable (); // Sepse ndërprerja tjetër do të ndodhë përndryshe të çojë në një rivendosje, pasi wdt_enable () vendos WDE / Watchdog System Reset Enable ADCSRA | = ADEN; / * * Meqenëse ora e kohëmatësit mund të çaktivizohet rregulloni milis vetëm nëse nuk flini në modalitetin IDLE (SM2… 0 bit janë 000) * / nëse (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Kjo ndërprerje zgjon CPU -në nga gjumi * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Hapi 6: Ndryshoni siguresat

22 mA nga 27 mA janë tërhequr nga BOD (BrownOutDetection/zbulimi i nën tensionit). BOD mund të çaktivizohet vetëm duke riprogramuar siguresat, gjë që mund të bëhet vetëm me një programues ISP. Duke përdorur këtë skenar, ju mund të zvogëloni rrymën deri në 5.5 µA dhe gjithashtu të zvogëloni kohën e fillimit nga gjumi në 4 milisekonda.

5 nga 5.5 µA të mbetura tërhiqen nga numëruesi aktiv i rojeve. Nëse mund të përdorni rivendosje të jashtme për zgjim, konsumi aktual mund të zbresë në 0.3 µA siç thuhet në fletën e të dhënave.

Nëse nuk jeni në gjendje të arrini këtë vlerë, arsyeja mund të jetë, se rryma e kundërt e diodës schottky midis VCC dhe tërheqjes është shumë e lartë. Mbani në mend se një rezistencë 12 MOhm tërheq gjithashtu 0.3 µA në 3.7 volt.

Kjo rezulton në një konsum mesatar aktual prej 9 µA (2.5 vjet me një qelizë butoni 200 mAh 2032) nëse p.sh. përpunoni të dhënat çdo 8 sekonda për 3 milisekonda si këtu.

Hapi 7: Informacion shtesë

Vizatimi aktual i një bordi Digispark.

Projektoni duke përdorur këto udhëzime.

Recommended: