Obsah:
- Krok 1: Zníženie napájacieho napätia pomocou batérie LiPo
- Krok 2: Znížte takt procesora
- Krok 3: Odstráňte palubnú diódu LED a regulátor napájania
- Krok 4: Odpojte odpínač USB D-pullup (označený 152) z 5 V (VCC) a pripojte ho k USB V+
- Krok 5: Použite spánok namiesto oneskorenia ()
- Krok 6: Upravte poistky
- Krok 7: Ďalšie informácie
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
alebo: Prevádzka Arduina s mincovou bunkou 2032 2 roky.
Pomocou dosky Digispark Arduino vybalenej z krabice s programom Arduino odoberá 20 mA pri 5 voltoch.
S 5 voltovou power bankou 2 000 mAh pobeží iba 4 dni.
Krok 1: Zníženie napájacieho napätia pomocou batérie LiPo
Pri napájaní batériou LiPo s napätím 3,7 V napája doska Digispark iba 13 mA.
S batériou 2 000 mAh vydrží 6 dní.
Krok 2: Znížte takt procesora
Ak vo svojom programe nepoužívate pripojenie USB, náročnú matematiku alebo rýchle polling, znížte takty. Napr. infračervená prijímacia knižnica IRMP s ťažkým pollingom funguje dobre na 8 MHz.
Pri frekvencii 1 MHz váš Digispark čerpá 6 mA. S batériou 2 000 mAh vydrží 14 dní.
Krok 3: Odstráňte palubnú diódu LED a regulátor napájania
Vypnite napájaciu diódu LED prerušením medeného drôtu, ktorý spája diódu LED napájania s diódou nožom, alebo vyberte / deaktivujte odpor 102.
Pretože teraz používate batériu LiPo, môžete tiež odstrániť integrovaný integrovaný regulátor napájania. Vonkajšie čapy najskôr nadvihnite pomocou spájkovačky a špendlíka. Potom spájkujte veľký konektor a odstráňte regulátor. Pri malých regulátoroch použite veľkú spájku a zahrejte všetky 3 kolíky dohromady a potom ich vyberte.
Pri 1 MHz a 3,8 V váš Digispark teraz odoberá 4,3 mA. S batériou 2 000 mAh pobeží 19 dní.
Krok 4: Odpojte odpínač USB D-pullup (označený 152) z 5 V (VCC) a pripojte ho k USB V+
Táto úprava je kompatibilná so všetkými verziami 1.x mikronukleového bootloadera. Ak už na svojej doske máte nový bootloader 2.x, musíte upgradovať na jednu z verzií 2.5 s názvom „activePullup“v názve. Najľahšie to urobíte tak, že si nainštalujete nový balík dosky digispark a vypustíte bootloader s odporúčanou (!!! nie predvolenou alebo agresívnou !!!) verziou.
Zlomte medený drôt na strane rezistora, ktorý ukazuje na ATtiny. Tým sa vypne rozhranie USB a následne možnosť naprogramovať dosku Digispark cez USB. Aby ste to znova povolili, ale stále šetrili energiou, pripojte rezistor (označený 152) priamo k USB V+, ktoré je ľahko dostupné na vonkajšej strane shottkyho diódy. Diódu a jej správne strany nájdete pomocou testera spojitosti. Jedna strana tejto diódy je pripojená k pinu 8 ATtiny (VCC) a Digispark 5V. Druhá strana je pripojená k USB V+. Teraz je USB pullup odpor aktivovaný iba vtedy, ak je doska Digispark pripojená k USB napr. počas programovania.
Tu sú zdokumentované aj posledné 2 kroky.
Pri 1 MHz a 3,8 V váš Digispark teraz odoberá 3 mA. S batériou 2 000 mAh pobeží 28 dní.
Krok 5: Použite spánok namiesto oneskorenia ()
Namiesto dlhého zdržania môžete použiť úsporný režim CPU. Spánok môže trvať od 15 milisekúnd do 8 sekúnd v krokoch po 15, 30, 60, 120, 250, 500 milisekundách a 1, 2, 4, 8 sekúnd.
Pretože doba spustenia z režimu spánku je 65 milisekúnd s výrobnými nastaveniami poistky digispark, spánkom je možné nahradiť iba oneskorenia dlhšie ako 80 ms.
Počas spánku váš Digispark čerpá 27 µA. S 200 mAh gombíkovou bunkou 2032 bude spať 10 mesiacov.
Aby bola správna, Digispark sa musí aspoň 8 sekúnd prebúdzať, bežať najmenej 65 milisekúnd a čerpať okolo 2 mA prúdu. To vedie k priemernému prúdu 42 µA a 6 mesiacov. V tomto prípade nie je takmer žiadny rozdiel, ak váš program beží 10 milisekúnd (každých 8 sekúnd).
Kód na používanie spánku je:
#include #include volatile uint16_t sNumberOfSleeps = 0; externé prchavé bez znamienka dlhé millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // režim najhlbšieho spánku …} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // spánok 250 ms … sleepWithWatchdog (WDTO_2S, true); // spánok na 2 s…}/ * * aWatchdogPrescaler môže byť 0 (15 ms) až 3 (120 ms), 4 (250 ms) až 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i save 200 uA // use wdt_enable () because it handle that the WDP3 bit is in bit 5 of the WDTCR register wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Povolenie prerušenia Watchdog + reset vlajky prerušenia -> potrebuje ISR (WDT_vect) sei (); // Povoliť prerušenia sleep_cpu (); // Prerušenie strážneho psa nás prebudí zo spánku wdt_disable (); // Pretože ďalšie prerušenie bude inak viesť k resetu, pretože wdt_enable () nastaví WDE / Watchdog Reset systému Povoliť ADCSRA | = ADEN; / * * Pretože hodiny časovača môžu byť deaktivované, nastavte ich iba v prípade, že nespia v režime IDLE (SM2… 0 bitov je 000) * / ak (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Toto prerušenie prebudí procesor zo spánku * / ISR (WDT_vect) {sNumberOfSleeps ++;}
Krok 6: Upravte poistky
22 mA z 27 mA sa odoberá BOD (BrownOutDetection/detekcia podpätia). BSK je možné deaktivovať iba preprogramovaním poistiek, ktoré je možné vykonať iba pomocou programátora ISP. Pomocou tohto skriptu môžete znížiť prúd až na 5,5 µA a tiež skrátiť čas spustenia z režimu spánku na 4 milisekundy.
5 zo zostávajúcich 5,5 µA sa odoberá aktívnym počítadlom strážneho psa. Ak môžete na prebudenie použiť externé resety, súčasná spotreba môže klesnúť na 0,3 µA, ako je uvedené v technickom liste.
Ak nemôžete dosiahnuť túto hodnotu, môže to byť spôsobené tým, že spätný prúd schottkyho diódy medzi VCC a pullup je príliš vysoký. Majte na pamäti, že odpor 12 MOhm tiež odoberá 0,3 µA pri 3,7 voltoch.
To má za následok priemernú spotrebu prúdu 9 µA (2,5 roka s 200 mAh gombíkovým článkom 2032), ak napr. spracovávajte údaje každých 8 sekúnd po dobu 3 milisekúnd, ako tu.
Krok 7: Ďalšie informácie
Aktuálna kresba dosky Digispark.
Projektujte podľa týchto pokynov.