Innehållsförteckning:

Minska batteriförbrukningen för Digispark ATtiny85: 7 steg
Minska batteriförbrukningen för Digispark ATtiny85: 7 steg

Video: Minska batteriförbrukningen för Digispark ATtiny85: 7 steg

Video: Minska batteriförbrukningen för Digispark ATtiny85: 7 steg
Video: Dells 5G-dator 2024, November
Anonim
Minska batteriförbrukningen för Digispark ATtiny85
Minska batteriförbrukningen för Digispark ATtiny85
Minska batteriförbrukningen för Digispark ATtiny85
Minska batteriförbrukningen för Digispark ATtiny85

eller: Kör en Arduino med en 2032 myntcell i 2 år.

Om du använder din Digispark Arduino Board ur lådan med ett Arduino -program drar den 20 mA vid 5 volt.

Med en 5 volts powerbank på 2000 mAh fungerar den bara i 4 dagar.

Steg 1: Minska matningsspänningen med ett LiPo -batteri

Minska matningsspänningen med ett LiPo -batteri
Minska matningsspänningen med ett LiPo -batteri

Om du använder ett LiPo -batteri med 3,7 volt som strömförsörjning drar ditt Digispark -kort endast 13 mA.

Med ett batteri på 2000 mAh kommer det att fungera i 6 dagar.

Steg 2: Minska CPU -klockan

Om du inte använder USB -anslutning, tung matematik eller snabb polling i ditt program, minska klockhastigheten. T.ex. det infraröda mottagande biblioteket för tung polling IRMP fungerar bra vid 8 MHz.

Vid 1 MHz drar Digispark 6 mA. Med ett batteri på 2000 mAh kommer det att fungera i 14 dagar.

Steg 3: Ta bort strömlampan och strömregulatorn ombord

Inaktivera strömlampan genom att bryta koppartråden som ansluter strömlampan till dioden med en kniv eller ta bort / inaktivera 102 -motståndet.

Eftersom du använder ett LiPo -batteri nu kan du också ta bort den inbyggda effektregulatorn IC. Lyft först de yttre stiften med hjälp av ett lödkolv och en nål. Löd sedan den stora kontakten och ta bort regulatorn. För små regulatorer, använd mycket löd och värm upp alla tre stiften tillsammans, ta sedan bort det.

Vid 1 MHz och 3,8 volt drar din Digispark nu 4,3 mA. Med ett batteri på 2000 mAh kommer det att fungera i 19 dagar.

Steg 4: Koppla bort USB D- Pullup-motståndet (märkt 152) från 5 Volt (VCC) och anslut det till USB V+

Koppla bort USB D- Pullup-motståndet (märkt 152) från 5 Volt (VCC) och anslut det till USB V+
Koppla bort USB D- Pullup-motståndet (märkt 152) från 5 Volt (VCC) och anslut det till USB V+

Denna modifiering är kompatibel med all1.x -versioner av mikronukleus bootloader. Om du redan har en ny 2.x bootloader på ditt kort måste du uppgradera till en av de 2.5 versionerna med "activePullup" i sitt namn. Det enklaste sättet att göra detta är att installera det nya digispark -kortpaketet och bränna startladdaren med den rekommenderade (!!! inte standard- eller aggressiva !!!) versionen.

Bryt koppartråden på sidan av motståndet som pekar på ATtiny. Detta inaktiverar USB -gränssnittet och i sin tur möjligheten att programmera Digispark -kortet via USB. För att aktivera det igen, men ändå spara ström, ansluter du motståndet (märkt 152) direkt till USB V+ som är lättillgänglig på utsidan av den skottiga dioden. Dioden och dess rätta sidor kan hittas med hjälp av en kontinuitetstester. Ena sidan av denna diod är ansluten till stift 8 på ATtiny (VCC) och Digispark 5V. Den andra sidan är ansluten till USB V+. Nu aktiveras USB -pullup -motståndet endast om Digispark -kortet är anslutet till USB t.ex. under programmeringen.

De två sistnämnda stegen dokumenteras också här.

Vid 1 MHz och 3,8 volt drar din Digispark nu 3 mA. Med ett batteri på 2000 mAh kommer det att fungera i 28 dagar.

Steg 5: Använd sömn istället för fördröjning ()

Använd sömn istället för fördröjning ()
Använd sömn istället för fördröjning ()

Istället för långa förseningar kan du använda energisparande CPU -viloläge. Sovplatser kan pågå från 15 millisekunder till 8 sekunder i steg om 15, 30, 60, 120, 250, 500 millisekunder och 1, 2, 4, 8 sekunder.

Eftersom starttiden från sömn är 65 millisekunder med fabriksinställningarna för digispark -säkring kan endast förseningar som är större än 80 ms ersättas med viloläge.

Under sömnen drar din Digispark 27 µA. Med en 200 mAh knappcell 2032 sover den i 10 månader.

För att vara korrekt måste Digispark minst vakna var 8: e sekund, springa i minst 65 millisekunder och dra runt 2 mA ström. Detta leder till en genomsnittlig ström på 42 µA och 6 månader. I det här scenariot spelar det nästan ingen roll om ditt program körs i 10 millisekunder (var 8: e sekund).

Koden för att använda sömn är:

#include #include flyktiga uint16_t sNumberOfSleeps = 0; extern flyktig osignerad lång millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // djupaste viloläge…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // sova i 250 ms … sleepWithWatchdog (WDTO_2S, true); // sova i 2 s…}/ * * aWatchdogPrescaler kan vara 0 (15 ms) till 3 (120 ms), 4 (250 ms) upp till 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; för (uint8_t i = 0; jag sparar 200 uA // använd wdt_enable () eftersom det hanterar att WDP3 -biten är i bit 5 i WDTCR -registret wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Watchdog interrupt enable + reset interrupt flagga -> behöver ISR (WDT_vect) sei (); // Aktivera avbrott sleep_cpu (); // Watchdog interrupt kommer att väcka oss från sömn wdt_disable (); // Eftersom nästa avbrott annars leda till en återställning, eftersom wdt_enable () ställer in WDE / Watchdog System Reset Aktivera ADCSRA | = ADEN; / * * Eftersom timerklockan kan vara inaktiverad justera millis bara om den inte har sovit i IDLE -läge (SM2 … 0 bitar är 000) * / om (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Detta avbrott väcker cpu från sömn * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Steg 6: Ändra säkringarna

22 mA av de 27 mA dras av BOD (BrownOutDetection/underspänningsdetektering). BOD kan endast inaktiveras genom omprogrammering av säkringarna, vilket bara kan göras med en ISP -programmerare. Med detta skript kan du minska strömmen ner till 5,5 µA och även minska starttiden från sömn till 4 millisekunder.

5 av de återstående 5,5 µA dras av den aktiva vakthundräknaren. Om du kan använda externa återställningar för väckning kan strömförbrukningen sjunka till 0,3 µA som anges i databladet.

Om du inte kan nå detta värde kan orsaken vara att den omvända strömmen för schottky -dioden mellan VCC och pullup är för hög. Tänk på att ett 12 MOhm -motstånd också drar 0,3 µA vid 3,7 volt.

Detta resulterar i en genomsnittlig strömförbrukning på 9 µA (2,5 år med en 200 mAh knappcell 2032) om du t.ex. behandla data var 8: e sekund i 3 millisekunder som här.

Steg 7: Ytterligare information

Nuvarande ritning av en Digispark -bräda.

Projicera med denna instruktion.

Rekommenderad: