Kazalo:
- 1. korak: Zmanjšajte napajalno napetost z uporabo LiPo baterije
- 2. korak: Zmanjšajte uro procesorja
- 3. korak: Odstranite vgrajeno LED diodo za napajanje in regulator moči
- Korak 4: Odklopite USB D-Pullup upor (označen s 152) od 5 voltov (VCC) in ga priključite na USB V+
- 5. korak: Namesto zamika uporabite stanje spanja ()
- 6. korak: spremenite varovalke
- 7. korak: Dodatne informacije
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
Č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+
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 ()
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.