Kazalo:

Zmanjšanje porabe energije baterije za Digispark ATtiny85: 7 korakov
Zmanjšanje porabe energije baterije za Digispark ATtiny85: 7 korakov

Video: Zmanjšanje porabe energije baterije za Digispark ATtiny85: 7 korakov

Video: Zmanjšanje porabe energije baterije za Digispark ATtiny85: 7 korakov
Video: КАК БЫСТРО УСНУТЬ ЗА 5 МИНУТ. Сколько Нужно Спать? ЗОЖ: Важные Правила Здорового Сна. 2024, November
Anonim
Zmanjšanje porabe energije baterije za Digispark ATtiny85
Zmanjšanje porabe energije baterije za Digispark ATtiny85
Zmanjšanje porabe energije baterije za Digispark ATtiny85
Zmanjšanje porabe energije baterije za Digispark ATtiny85

ali: Zagon Arduina s kovancem 2032 dve leti.

S svojo ploščo Digispark Arduino iz škatle s programom Arduino črpa 20 mA pri 5 voltih.

S 5 -voltnim napajalnikom 2000 mAh bo deloval le 4 dni.

1. korak: Zmanjšajte napajalno napetost z uporabo LiPo baterije

Zmanjšanje napajalne napetosti z uporabo LiPo baterije
Zmanjšanje napajalne napetosti z uporabo LiPo baterije

Če za napajanje uporabite LiPo baterijo s 3,7 volta, vaša plošča Digispark porabi le 13 mA.

Z baterijo 2000 mAh bo deloval 6 dni.

2. korak: Zmanjšajte uro procesorja

Če v programu ne uporabljate povezave USB, težke matematike ali hitrega glasovanja, zmanjšajte hitrost ure. Npr. infrardeča sprejemna knjižnica IRMP za težko glasovanje dobro deluje pri 8 MHz.

Pri 1 MHz vaš Digispark porabi 6 mA. Z baterijo 2000 mAh bo deloval 14 dni.

3. korak: Odstranite vgrajeno LED diodo za napajanje in regulator moči

Onemogočite LED za napajanje tako, da z nožem zlomite bakreno žico, ki LED za napajanje poveže z diodo, ali odstranite / onemogočite upor 102.

Ker trenutno uporabljate LiPo baterijo, lahko odstranite tudi vgrajen IC regulator regulatorja moči. Zunanji zatiči najprej dvignite s pomočjo spajkalnika in zatiča. Nato spajkajte velik konektor in odstranite regulator. Za majhne regulatorje uporabite veliko spajkanja in segrejte vse 3 zatiče skupaj, nato pa jih odstranite.

Pri 1 MHz in 3,8 volta vaš Digispark zdaj porabi 4,3 mA. Z baterijo 2000 mAh bo deloval 19 dni.

Korak 4: Odklopite USB D-Pullup upor (označen s 152) od 5 voltov (VCC) in ga priključite na USB V+

Odklop USB D-Pullup upora (označen s 152) od 5 voltov (VCC) in ga priključite na USB V+
Odklop USB D-Pullup upora (označen s 152) od 5 voltov (VCC) in ga priključite na USB V+

Ta sprememba je združljiva z vsemi različicami 1.x zagonskega nalagalnika mikronukleusa. Če na plošči že imate nov zagonski nalagalnik 2.x, morate nadgraditi na eno različico 2.5 z imenom "activePullup". Najlažji način za to je, da namestite nov paket plošč digispark in zaženete zagonski nalagalnik s priporočeno (!!! ne privzeto ali agresivno !!!) različico.

Prekinite bakreno žico na strani upora, ki kaže na ATtiny. To onemogoči vmesnik USB in posledično možnost programiranja plošče Digispark prek USB -ja. Če ga želite znova omogočiti, vendar še vedno prihranite energijo, upor (označen s 152) priključite neposredno na USB V+, ki je zlahka dostopen na zunanji strani šokirane diode. Diodo in njene pravilne stranice lahko najdete s pomočjo merilnika kontinuitete. Ena stran te diode je priključena na pin 8 ATtiny (VCC) in Digispark 5V. Druga stran je priključena na USB V+. Sedaj se vlečni upor USB aktivira le, če je plošča Digispark priključena na USB, npr. med programiranjem.

Zadnja 2 koraka sta tukaj tudi dokumentirana.

Pri 1 MHz in 3,8 volta vaš Digispark zdaj porabi 3 mA. Z baterijo 2000 mAh bo deloval 28 dni.

5. korak: Namesto zamika uporabite stanje spanja ()

Uporabi spanje namesto zamika ()
Uporabi spanje namesto zamika ()

Namesto dolgih zamud lahko uporabite varčevalni procesor CPU. Spanje lahko traja od 15 milisekund do 8 sekund v korakih po 15, 30, 60, 120, 250, 500 milisekund in 1, 2, 4, 8 sekund.

Ker je čas zagona iz stanja mirovanja 65 milisekund s tovarniškimi nastavitvami varovalk digispark, je mogoče le mirovanje, večje od 80 ms, nadomestiti s spanjem.

Med spanjem vaš Digispark porabi 27 µA. Z gumbno celico 200 mAh 2032 bo spala 10 mesecev.

Če želimo biti pravilni, se mora Digispark prebuditi vsaj vsakih 8 sekund, delovati najmanj 65 milisekund in črpati okoli 2 mA toka. To vodi do povprečnega toka 42 µA in 6 mesecev. V tem scenariju ni skoraj nobene razlike, če se vaš program izvaja 10 milisekund (vsakih 8 sekund).

Koda za uporabo spanja je:

#include #include hlapni uint16_t sNumberOfSleeps = 0; zunanji hlapni nepodpisani dolgi millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // najgloblji način spanja…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // spanje 250 ms… sleepWithWatchdog (WDTO_2S, res); // spanje 2 s…}/ * * aWatchdogPrescaler je lahko 0 (15 ms) do 3 (120 ms), 4 (250 ms) do 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i prihrani 200 uA // uporabi wdt_enable (), ker obravnava, da je bit WDP3 v bitu 5 registra WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Omogočanje prekinitve nadzorne zastavice + ponastavitev zastavice za prekinitev -> potrebuje ISR (WDT_vect) sei (); // Omogoči prekinitve sleep_cpu (); // Prekinitev nadzornega psa nas bo prebudila iz spanja wdt_disable (); // Ker bo naslednji prekinitev drugače vodijo v ponastavitev, saj wdt_enable () nastavi WDE / Watchdog System Reset Enable ADCSRA | = ADEN; / * * Ker je časovna ura lahko onemogočena, prilagodite milise samo, če niso v stanju mirovanja (SM2… 0 bitov 000) * / če (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Ta prekinitev zbudi procesor iz spanja * / ISR (WDT_vect) {sNumberOfSleeps ++;}

6. korak: spremenite varovalke

BOD črpa 22 mA od 27 mA (BrownOutDetection/podnapetostno zaznavanje). BPK lahko onemogočite le s ponovnim programiranjem varovalk, kar lahko storite samo s programerjem ponudnika internetnih storitev. S tem skriptom lahko zmanjšate tok na 5,5 µA in skrajšate čas zagona iz stanja mirovanja na 4 milisekunde.

5 od preostalih 5,5 µA potegne števec aktivnega nadzornika. Če lahko za prebujanje uporabite zunanje ponastavitve, se lahko trenutni potrošnik zniža na 0,3 µA, kot je navedeno v podatkovnem listu.

Če ne morete doseči te vrednosti, je lahko razlog v tem, da je obratni tok schottky diode med VCC in vlečenjem previsok. Upoštevajte, da 12 MOhm upor črpa tudi 0,3 µA pri 3,7 volta.

Posledica tega je povprečna trenutna poraba 9 µA (2,5 leta z gumbno celico 200 mAh 2032), če npr. obdelujte podatke vsakih 8 sekund za 3 milisekunde, kot tukaj.

7. korak: Dodatne informacije

Trenutna risba plošče Digispark.

Projektirajte po teh navodilih.

Priporočena: