Indholdsfortegnelse:

Reducering af batteriforbrug til Digispark ATtiny85: 7 trin
Reducering af batteriforbrug til Digispark ATtiny85: 7 trin

Video: Reducering af batteriforbrug til Digispark ATtiny85: 7 trin

Video: Reducering af batteriforbrug til Digispark ATtiny85: 7 trin
Video: Autodesk Inventor til automatisering af specialfremstillede produkter, HEDEMA A/S 2024, November
Anonim
Nedsættelse af batteriforbrug til Digispark ATtiny85
Nedsættelse af batteriforbrug til Digispark ATtiny85
Nedsættelse af batteriforbrug til Digispark ATtiny85
Nedsættelse af batteriforbrug til Digispark ATtiny85

eller: Kører en Arduino med en 2032 møntcelle i 2 år.

Når du bruger dit Digispark Arduino Board ud af boksen med et Arduino -program, trækker det 20 mA ved 5 volt.

Med en 5 volt powerbank på 2000 mAh kører den kun i 4 dage.

Trin 1: Reducering af forsyningsspænding ved hjælp af et LiPo -batteri

Reduktion af forsyningsspænding ved hjælp af et LiPo -batteri
Reduktion af forsyningsspænding ved hjælp af et LiPo -batteri

Hvis du bruger et LiPo -batteri med 3,7 volt som forsyning, trækker dit Digispark -kort kun 13 mA.

Med et batteri på 2000 mAh vil det køre i 6 dage.

Trin 2: Reducer CPU -uret

Hvis du ikke bruger USB -forbindelse, tung matematik eller hurtig polling i dit program, skal du reducere urets hastighed. F.eks. det infrarøde modtagende bibliotek med tung polling kører godt ved 8 MHz.

Ved 1 MHz trækker din Digispark 6 mA. Med et batteri på 2000 mAh vil det køre i 14 dage.

Trin 3: Fjern indbygget strøm -LED og strømregulator

Deaktiver strøm -LED'en ved at bryde kobbertråden, der forbinder strøm -LED'en til dioden med en kniv, eller fjern / deaktiver 102 -modstanden.

Da du bruger et LiPo -batteri nu, kan du også fjerne den indbyggede strømregulator IC. Løft først de ydre stifter ved hjælp af et loddejern og en nål. Lod derefter det store stik og fjern regulatoren. Til små regulatorer skal du bruge meget loddemetal og varme alle 3 ben sammen, og derefter fjerne det.

Ved 1 MHz og 3,8 volt trækker din Digispark nu 4,3 mA. Med et batteri på 2000 mAh vil det køre i 19 dage.

Trin 4: Afbrydelse af USB D- Pullup-modstanden (mærket 152) Fra 5 Volt (VCC) og tilslut den til USB V+

Afbrydelse af USB D- Pullup-modstanden (mærket 152) Fra 5 Volt (VCC) og tilslut den til USB V+
Afbrydelse af USB D- Pullup-modstanden (mærket 152) Fra 5 Volt (VCC) og tilslut den til USB V+

Denne ændring er kompatibel med alle1.x versioner af mikronukleus bootloader. Hvis du allerede har en ny 2.x bootloader på dit bord, skal du opgradere til en af de 2.5 versioner med "activePullup" i sit navn. Den nemmeste måde at gøre dette på er at installere den nye digispark board -pakke og brænde bootloaderen med den anbefalede (!!! ikke standard eller aggressive !!!) version.

Knæk kobbertråden på siden af modstanden, der peger på ATtiny. Dette deaktiverer USB -interfacet og igen mulighed for at programmere Digispark -kortet via USB. For at aktivere det igen, men stadig spare strøm, skal du tilslutte modstanden (mærket 152) direkte til USB V+, der er let tilgængelig på ydersiden af den shottky -diode. Dioden og dens korrekte sider kan findes ved hjælp af en kontinuitetstester. Den ene side af denne diode er forbundet til pin 8 på ATtiny (VCC) og Digispark 5V. Den anden side er tilsluttet USB V+. Nu aktiveres USB pullup -modstanden kun, hvis Digispark -kortet er tilsluttet USB f.eks. under programmeringen.

De sidstnævnte 2 trin er også dokumenteret her.

Ved 1 MHz og 3,8 volt trækker din Digispark nu 3 mA. Med et batteri på 2000 mAh vil det køre i 28 dage.

Trin 5: Brug søvn i stedet for forsinkelse ()

Brug søvn i stedet for forsinkelse ()
Brug søvn i stedet for forsinkelse ()

I stedet for lange forsinkelser kan du bruge strømbesparende CPU -søvn. Soveperioder kan vare fra 15 millisekunder til 8 sekunder i trin på 15, 30, 60, 120, 250, 500 millisekunder og 1, 2, 4, 8 sekunder.

Da opstartstid fra søvn er 65 millisekunder med indstillingerne for digispark -sikring fra fabrikken, kan kun forsinkelser større end 80 ms erstattes af søvn.

Under søvn trækker din Digispark 27 µA. Med en 200 mAh knapcelle 2032 vil den sove i 10 måneder.

For at være korrekt skal Digispark mindst vågne hvert 8. sekund, køre i mindst 65 millisekunder og trække omkring 2 mA strøm. Dette fører til en gennemsnitlig strøm på 42 µA og 6 måneder. I dette scenario gør det næsten ingen forskel, hvis dit program kører i 10 millisekunder (hvert 8. sekund).

Koden til brug af søvn er:

#include #include flygtige uint16_t sNumberOfSleeps = 0; ekstern flygtig usigneret lang millis_timer_millis; tomrumsopsætning () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // dybeste dvaletilstand…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // sove i 250 ms … sleepWithWatchdog (WDTO_2S, sand); // sove i 2 sekunder…}/ * * aWatchdogPrescaler kan være 0 (15 ms) til 3 (120 ms), 4 (250 ms) op til 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; jeg gemmer 200 uA // brug wdt_enable (), da den håndterer, at WDP3 -bit er i bit 5 i WDTCR -registret wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Watchdog interrupt enable + reset interrupt flag -> needs ISR (WDT_vect) sei (); // Enable interrupts sleep_cpu (); // Watchdog interrupt will wake us from sleep wdt_disable (); // Fordi næste afbrydelse ellers vil føre til en nulstilling, da wdt_enable () indstiller WDE / Watchdog System Reset Aktiver ADCSRA | = ADEN; / * * Da timeruret muligvis er deaktiveret, kan du kun justere millis, hvis det ikke sov i inaktiv tilstand (SM2 … 0 bit er 000) * / hvis (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Denne afbrydelse vågner cpuen fra søvn * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Trin 6: Rediger sikringerne

22 mA af de 27 mA tegnes af BOD (BrownOutDetection/underspændingsdetektering). BOD kan kun deaktiveres ved omprogrammering af sikringerne, hvilket kun kan udføres med en internetudbyder. Ved hjælp af dette script kan du reducere strømmen ned til 5,5 µA og også reducere opstartstiden fra søvn til 4 millisekunder.

5 af de resterende 5,5 µA tegnes af den aktive vagthundstæller. Hvis du kan bruge eksterne nulstillinger til vågning, kan strømforbruget falde til 0,3 µA som angivet i databladet.

Hvis du ikke kan nå denne værdi, kan årsagen være, at den omvendte strøm af schottky -dioden mellem VCC og pullup er for høj. Husk, at en 12 MOhm modstand også trækker 0,3 µA ved 3,7 volt.

Dette resulterer i et gennemsnitligt strømforbrug på 9 µA (2,5 år med en 200 mAh knapcelle 2032), hvis du f.eks. behandle data hvert 8. sekund i 3 millisekunder som her.

Trin 7: Yderligere information

Nuværende tegning af et Digispark -bræt.

Projekt ved hjælp af denne vejledning.

Anbefalede: