Smanjenje potrošnje energije baterije za Digispark ATtiny85: 7 koraka
Smanjenje potrošnje energije baterije za Digispark ATtiny85: 7 koraka
Smanjenje potrošnje energije baterije za Digispark ATtiny85
Smanjenje potrošnje energije baterije za Digispark ATtiny85
Smanjenje potrošnje energije baterije za Digispark ATtiny85
Smanjenje potrošnje energije baterije za Digispark ATtiny85

ili: Pokretanje Arduina s novčanicom od 2032 dvije godine.

Koristeći vašu Digispark Arduino ploču iz kutije s programom Arduino, ona crpi 20 mA na 5 volti.

S 5 voltnom baterijom od 2000 mAh radit će samo 4 dana.

Korak 1: Smanjivanje napona napajanja pomoću LiPo baterije

Smanjivanje napona napajanja korištenjem LiPo baterije
Smanjivanje napona napajanja korištenjem LiPo baterije

Korištenje LiPo baterije s 3,7 V za napajanje vaša Digispark ploča troši samo 13 mA.

Uz bateriju od 2000 mAh radit će 6 dana.

Korak 2: Smanjite CPU sat

Ako ne koristite USB vezu, tešku matematiku ili brzo prozivanje u svom programu, smanjite brzinu takta. Npr. infracrvena biblioteka za prijem podataka IRMP radi dobro na 8 MHz.

Na 1 MHz vaš Digispark crpi 6 mA. S baterijom od 2000 mAh radit će 14 dana.

Korak 3: Uklonite ugrađenu LED diodu za napajanje i regulator snage

Onemogućite LED za napajanje tako što ćete nožem prekinuti bakrenu žicu koja LED diodu za napajanje povezuje s diodom ili ukloniti / onemogućiti otpornik 102.

Budući da sada koristite LiPo bateriju, možete ukloniti i ugrađeni IC regulator regulatora snage. Najprije podignite vanjske igle uz pomoć lemilice i igle. Zatim zalemite veliki priključak i uklonite regulator. Za male regulatore upotrijebite mnogo lema i zagrijte sve 3 igle zajedno, a zatim ih uklonite.

Na 1 MHz i 3,8 volta vaš Digispark sada crpi 4,3 mA. S baterijom od 2000 mAh radit će 19 dana.

Korak 4: Odspojite USB D-Pullup otpornik (označen 152) s 5 V (VCC) i spojite ga na USB V+

Odspojite USB D- Pullup otpornik (označeno 152) s 5 V (VCC) i spojite ga na USB V+
Odspojite USB D- Pullup otpornik (označeno 152) s 5 V (VCC) i spojite ga na USB V+

Ova je izmjena kompatibilna sa svim1.x verzijama mikronuklearnog pokretača. Ako već imate novi 2.x bootloader na ploči, morate nadograditi na jednu verziju 2.5 s "activePullup" u imenu. Najlakši način za to je instaliranje novog paketa digispark ploče i snimanje pokretačkog programa s preporučenom (!!! ne zadanom ili agresivnom !!!) verzijom.

Prekinite bakrenu žicu na strani otpornika koja pokazuje na ATtiny. To onemogućuje USB sučelje i zauzvrat mogućnost programiranja ploče Digispark putem USB -a. Da biste ga ponovno omogućili, ali ipak uštedjeli energiju, priključite otpornik (označen 152) izravno na USB V+ koji je lako dostupan na vanjskoj strani šokirane diode. Dioda i njene ispravne strane mogu se pronaći pomoću ispitivača kontinuiteta. Jedna strana ove diode spojena je na pin 8 ATtiny (VCC) i Digispark 5V. Druga strana je spojena na USB V+. Sada se USB pullup otpornik aktivira samo ako je ploča Digispark spojena na USB, npr. tijekom programiranja.

Posljednja 2 koraka također su ovdje dokumentirana.

Na 1 MHz i 3,8 volta vaš Digispark sada troši 3 mA. Uz bateriju od 2000 mAh radit će 28 dana.

Korak 5: Upotrijebite stanje mirovanja umjesto odgode ()

Koristi spavanje umjesto odgode ()
Koristi spavanje umjesto odgode ()

Umjesto dugih odgoda možete koristiti spavanje CPU -a za uštedu energije. Spavanje može trajati od 15 milisekundi do 8 sekundi u koracima od 15, 30, 60, 120, 250, 500 milisekundi i 1, 2, 4, 8 sekundi.

Budući da je vrijeme pokretanja iz stanja mirovanja 65 milisekundi s tvorničkim postavkama osigurača digispark, samo se kašnjenja veća od 80 ms mogu nadomjestiti.

Tijekom spavanja vaš Digispark troši 27 µA. S ćelijom s gumbom od 200 mAh 2032 spavat će 10 mjeseci.

Da budemo točni, Digispark se mora probuditi barem svakih 8 sekundi, raditi najmanje 65 milisekundi i vući struju od 2 mA. To dovodi do prosječne struje od 42 µA i 6 mjeseci. U ovom scenariju nema gotovo nikakve razlike ako vaš program radi 10 milisekundi (svakih 8 sekundi).

Kôd za korištenje sna je:

#include #include volatile uint16_t sNumberOfSleeps = 0; vanjski hlapivi nepotpisani dugi millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // najdublji način mirovanja…} void loop () {… sleepWithWatchdog (WDTO_250MS, istina); // spavanje 250 ms… sleepWithWatchdog (WDTO_2S, istina); // spavanje 2 s…}/ * * aWatchdogPrescaler može biti 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 sprema 200 uA // koristi wdt_enable () budući da obrađuje da je bit WDP3 u bitu 5 registra WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Stražarski prekid omogućavanje + poništavanje zastavice prekida -> treba ISR (WDT_vect) sei (); // Omogućivanje prekida sleep_cpu (); // Prekid stražara probudit će nas iz sna wdt_disable (); // Budući da će sljedeći prekid u protivnom dovesti do resetiranja, budući da wdt_enable () postavlja WDE / Watchdog Reset sustava Omogući ADCSRA | = ADEN; / * * Budući da sat vremena može biti onemogućen, podesite milise samo ako nije u stanju mirovanja (SM2 … 0 bita su 000) * / ako (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Ovaj prekid budi CPU iz stanja spavanja * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Korak 6: Izmijenite osigurače

22 mA od 27 mA dobiva BOD (BrownOutDetection/detekcija podnapona). BPK se može onemogućiti samo ponovnim programiranjem osigurača, što se može učiniti samo s ISP programatorom. Pomoću ove skripte možete smanjiti struju na 5,5 µA i također smanjiti vrijeme pokretanja iz stanja mirovanja na 4 milisekunde.

5 od preostalih 5,5 µA izvlači aktivni brojač nadzornika. Ako za buđenje možete koristiti vanjska resetiranja, trenutni potrošač može se spustiti na 0,3 µA kako je navedeno u podatkovnoj tablici.

Ako ne možete doseći tu vrijednost, razlog može biti taj što je obrnuta struja schottky diode između VCC -a i pullapa previsoka. Imajte na umu da otpornik od 12 MOhm također troši 0,3 µA na 3,7 volti.

To rezultira prosječnom potrošnjom struje od 9 µA (2,5 godine s ćelijom s gumbom od 200 mAh 2032) ako npr. obrađujte podatke svakih 8 sekundi tijekom 3 milisekunde kao ovdje.

Korak 7: Dodatne informacije

Trenutni crtež Digispark ploče.

Projektirajte prema ovim uputama.

Preporučeni: