Obsah:

Snížení spotřeby baterie u Digispark ATtiny85: 7 kroků
Snížení spotřeby baterie u Digispark ATtiny85: 7 kroků

Video: Snížení spotřeby baterie u Digispark ATtiny85: 7 kroků

Video: Snížení spotřeby baterie u Digispark ATtiny85: 7 kroků
Video: Jak efektivně zlepšit výdrž iPhone baterie? 🔋 2024, Listopad
Anonim
Snížení spotřeby baterie u Digispark ATtiny85
Snížení spotřeby baterie u Digispark ATtiny85
Snížení spotřeby baterie u Digispark ATtiny85
Snížení spotřeby baterie u Digispark ATtiny85

nebo: Provozování Arduina s mincovou buňkou 2032 po dobu 2 let.

Pomocí desky Digispark Arduino Board vybalené z krabice s programem Arduino odebírá 20 mA při 5 voltech.

S 5voltovou powerbankou 2 000 mAh poběží pouze 4 dny.

Krok 1: Snížení napájecího napětí pomocí baterie LiPo

Snížení napájecího napětí pomocí baterie LiPo
Snížení napájecího napětí pomocí baterie LiPo

Použitím baterie LiPo s 3,7 V jako zdroje napájení deska Digispark odebírá pouze 13 mA.

S baterií 2 000 mAh poběží 6 dní.

Krok 2: Snižte takt procesoru

Pokud ve svém programu nepoužíváte připojení USB, těžkou matematiku nebo rychlé dotazování, snižte rychlost hodin. Např. infračervená přijímací knihovna IRMP pro intenzivní polling funguje dobře na 8 MHz.

Při 1 MHz odebírá váš Digispark 6 mA. S baterií 2 000 mAh poběží 14 dní.

Krok 3: Demontujte integrovanou LED napájení a regulátor napájení

Vypněte LED diodu napájení přerušením měděného drátu, který spojuje LED diodu napájení s diodou, nožem nebo odstraňte / deaktivujte odpor 102.

Protože nyní používáte baterii LiPo, můžete také odstranit integrovaný integrovaný regulátor napájení IC. Vnější čepy nejprve nadzvedněte pomocí páječky a čepu. Poté připájejte velký konektor a odstraňte regulátor. U malých regulátorů použijte hodně pájky a zahřejte všechny 3 piny dohromady a poté je odeberte.

Při frekvenci 1 MHz a 3,8 V nyní váš Digispark odebírá 4,3 mA. S baterií 2 000 mAh poběží 19 dní.

Krok 4: Odpojte USB D- Pullup Resistor (označený 152) z 5 V (VCC) a připojte jej k USB V+

Odpojení USB D- vytahovacího odporu (označeného 152) z 5 V (VCC) a připojení k USB V+
Odpojení USB D- vytahovacího odporu (označeného 152) z 5 V (VCC) a připojení k USB V+

Tato úprava je kompatibilní se všemi verzemi 1.x zavaděče mikronukleů. Pokud již na desce máte nový zavaděč 2.x, musíte upgradovat na verzi 2.5 s názvem „activePullup“. Nejjednodušší způsob, jak to udělat, je nainstalovat nový balíček desky digispark a vypálit zavaděč doporučenou (!!! ne výchozí nebo agresivní !!!) verzí.

Přerušte měděný vodič na straně rezistoru, který ukazuje na ATtiny. Tím se deaktivuje rozhraní USB a následně možnost naprogramovat desku Digispark přes USB. Chcete -li jej znovu povolit, ale přitom ušetřit energii, připojte odpor (označený 152) přímo k USB V+, které je snadno dostupné na vnější straně diody shottky. Diodu a její správné strany lze zjistit pomocí testeru spojitosti. Jedna strana této diody je připojena k pinu 8 ATtiny (VCC) a Digispark 5V. Druhá strana je připojena k USB V+. Nyní je USB pullup rezistor aktivován pouze v případě, že je deska Digispark připojena k USB, např. během programování.

Poslední 2 kroky jsou zde také zdokumentovány.

Při frekvenci 1 MHz a 3,8 V nyní váš Digispark odebírá 3 mA. S baterií 2 000 mAh poběží 28 dní.

Krok 5: Místo zpoždění použijte spánek ()

Použít spánek místo zpoždění ()
Použít spánek místo zpoždění ()

Místo dlouhých prodlev můžete využít úsporný režim CPU. Spánek může trvat od 15 milisekund do 8 sekund v krocích po 15, 30, 60, 120, 250, 500 milisekundách a 1, 2, 4, 8 sekund.

Protože doba spuštění z režimu spánku je 65 milisekund s továrním nastavením pojistky digispark, spánkem lze nahradit pouze zpoždění větší než 80 ms.

Během spánku váš Digispark čerpá 27 µA. S 200 mAh knoflíkovým článkem 2032 spí 10 měsíců.

Aby to bylo správné, Digispark se musí alespoň každých 8 sekund probudit, běžet alespoň 65 milisekund a odebírat proud přibližně 2 mA. To vede k průměrnému proudu 42 µA a 6 měsíců. V tomto scénáři není téměř žádný rozdíl, pokud váš program běží po dobu 10 milisekund (každých 8 sekund).

Kód pro použití spánku je:

#include #include volatile uint16_t sNumberOfSleeps = 0; externí nestálý nepodepsaný dlouhý millis_timer_millis; neplatné nastavení () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // nejhlubší režim spánku …} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // spánek 250 ms … sleepWithWatchdog (WDTO_2S, true); // spánek na 2 s…}/ * * aWatchdogPrescaler může být 0 (15 ms) až 3 (120 ms), 4 (250 ms) až 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; pro (uint8_t i = 0; i ušetří 200 uA // použijte wdt_enable (), protože zpracovává, že bit WDP3 je v bitu 5 registru WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Povolení přerušení Watchdog + reset vlajky přerušení -> potřebuje ISR (WDT_vect) sei (); // Povolení přerušení sleep_cpu (); // Přerušení hlídacího psa nás probudí ze spánku wdt_disable (); // Protože další přerušení bude jinak vést k resetu, protože wdt_enable () nastavuje WDE / Watchdog Reset systému Povolit ADCSRA | = ADEN; / * * Protože hodiny časovače mohou být deaktivovány, nastavte milis pouze v případě, že nespíte v režimu IDLE (SM2… 0 bitů je 000) * / pokud (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Toto přerušení probouzí procesor ze spánku * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Krok 6: Upravte pojistky

22 mA z 27 mA je odebíráno pomocí BOD (BrownOutDetection/detekce podpětí). BOD lze deaktivovat pouze přeprogramováním pojistek, což lze provést pouze pomocí programátoru ISP. Pomocí tohoto skriptu můžete snížit proud až na 5,5 µA a také zkrátit dobu spuštění z režimu spánku na 4 milisekundy.

5 ze zbývajících 5,5 µA je odebíráno aktivním čítačem hlídacího psa. Pokud můžete pro probuzení použít externí resety, současná spotřeba může klesnout na 0,3 µA, jak je uvedeno v datovém listu.

Pokud této hodnoty nejste schopni dosáhnout, může to být z toho důvodu, že zpětný proud schottkyho diody mezi VCC a pullupem je příliš vysoký. Mějte na paměti, že odpor 12 MOhm také odebírá 0,3 µA při 3,7 voltu.

To má za následek průměrnou spotřebu proudu 9 µA (2,5 roku s 200 mAh knoflíkovým článkem 2032), pokud např. zpracovávejte data každých 8 sekund po dobu 3 milisekund, jako zde.

Krok 7: Další informace

Aktuální kresba desky Digispark.

Projektujte podle těchto pokynů.

Doporučuje: