Innehållsförteckning:
- Steg 1: Minska matningsspänningen med ett LiPo -batteri
- Steg 2: Minska CPU -klockan
- Steg 3: Ta bort strömlampan och strömregulatorn ombord
- Steg 4: Koppla bort USB D- Pullup-motståndet (märkt 152) från 5 Volt (VCC) och anslut det till USB V+
- Steg 5: Använd sömn istället för fördröjning ()
- Steg 6: Ändra säkringarna
- Steg 7: Ytterligare information
Video: Minska batteriförbrukningen för Digispark ATtiny85: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:36
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
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+
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 ()
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:
DIY Arduino Solar Tracker (för att minska global uppvärmning): 3 steg
DIY Arduino Solar Tracker (för att minska global uppvärmning): Hej alla, i den här självstudien kommer jag att visa er hur man gör en solspårare med hjälp av arduino mikrokontroller. I dagens värld lider vi av ett antal frågor. En av dem är klimatförändringar och global uppvärmning. Behovet av
Minska musens klickljud: 3 steg
Minska musens klickljud.: Handledning. Minska klickljudet för vilken mus som helst. Problemet är att många musar där ute ger ett högt och irriterande ljud varje gång deras knappar trycks in. För att lösa det problemet ska jag försöka vägleda dig och visa dig vad du kan göra för att minska med
Minska reläets strömförbrukning - hålla kontra upphämtningsströmmen: 3 steg
Minska reläets strömförbrukning - hålla kontra upptagningsström: De flesta reläer kräver mer ström för att aktiveras initialt än vad som krävs för att hålla reläet på när kontakterna har stängts. Strömmen som krävs för att hålla reläet på (hållström) kan vara väsentligt mindre än den initiala ström som krävs för att aktivera
Minska rörelseoskärpa med GIMP: 6 steg
Minska rörelseoskärpa med hjälp av GIMP: Denna instruktion hjälper dig att minska effekterna av mjuk rörelseoskärpa som du får på grund av kameraskakningar. Detta är en experimentell metod som utvecklats av mig, så testa gärna och lämna kommentarer, helst med bilder. Som framgår av kvaliteten på ph
Minska, rebound, återvinna: 6 steg
Minska, återhämta, återvinna: Sociala evenemang producerar stora mängder avfall från aluminiumburkar till plastkoppar, som alla kan återvinnas. Tidigare fanns det inga program för att uppmuntra denna återvinning, så studenter slängde dem och orsakade negativa effekter på en