Tartalomjegyzék:

Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében: 7 lépés
Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében: 7 lépés

Videó: Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében: 7 lépés

Videó: Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében: 7 lépés
Videó: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, November
Anonim
Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében
Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében
Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében
Az akkumulátor fogyasztásának csökkentése a Digispark ATtiny85 esetében

vagy: Arduino futtatása 2032 -es érmecellával 2 évig.

A Digispark Arduino tábla használata Arduino program segítségével a dobozból 20 mA -t vesz fel 5 volton.

Az 5 voltos, 2000 mAh -os tápegységgel csak 4 napig működik.

1. lépés: Csökkentse a tápfeszültséget LiPo akkumulátor használatával

Tápfeszültség csökkentése LiPo akkumulátor használatával
Tápfeszültség csökkentése LiPo akkumulátor használatával

Ha 3,7 voltos LiPo akkumulátort használ tápellátásként, a Digispark kártya csak 13 mA -t fogyaszt.

2000 mAh akkumulátorral 6 napig működik.

2. lépés: Csökkentse a CPU órát

Ha nem használ USB -csatlakozást, nehéz matematikát vagy gyors lekérdezést a programban, csökkentse az órajelet. Például. a nehéz lekérdezésű infravörös vevőkönyvtár IRMP jól működik 8 MHz -en.

1 MHz -en a Digispark 6 mA -t vesz fel. 2000 mAh akkumulátorral 14 napig működik.

3. lépés: Távolítsa el a fedélzeti tápellátást jelző LED -et és a tápszabályozót

Kapcsolja ki a tápellátás LED -ét, ha késsel megszakítja a tápellátást jelző LED -et a diódához kötő rézhuzalt, vagy távolítsa el / tiltsa le a 102 -es ellenállást.

Mivel most LiPo akkumulátort használ, eltávolíthatja a fedélzeti teljesítményszabályozó IC -t is. Először emelje fel a külső csapokat forrasztópáka és csap segítségével. Ezután forrasztja a nagy csatlakozót, és távolítsa el a szabályozót. A kis szabályozókhoz használjon sok forrasztást, és melegítse fel mind a 3 csapot, majd távolítsa el.

1 MHz -en és 3,8 volton a Digispark most 4,3 mA -t vesz fel. 2000 mAh akkumulátorral 19 napig üzemel.

4. lépés: Válassza le az USB D-felhúzó ellenállást (152 jelzéssel) 5 voltról (VCC), és csatlakoztassa az USB V+ -hoz

Az USB D-felhúzó ellenállás (152 jelzéssel) leválasztása 5 voltról (VCC), és csatlakoztatása az USB V+ csatlakozóhoz
Az USB D-felhúzó ellenállás (152 jelzéssel) leválasztása 5 voltról (VCC), és csatlakoztatása az USB V+ csatlakozóhoz

Ez a módosítás kompatibilis a micronucleus bootloader all1.x verzióival. Ha már van új 2.x rendszerbetöltő az alaplapon, akkor frissítenie kell egy 2.5 -ös verzióra, és a nevében "ActivePullup". Ennek legegyszerűbb módja, ha telepíti az új digispark táblacsomagot, és a rendszerbetöltőt az ajánlott (!!! nem az alapértelmezett vagy agresszív !!!) verzióval égeti el.

Szakítsa meg a rézhuzalt az ellenállás oldalán, amely az ATtiny -re mutat. Ez letiltja az USB interfészt, és lehetőséget ad a Digispark kártya USB -n keresztüli programozására. Az ismételt engedélyezéshez, de az energiatakarékossághoz csatlakoztassa az ellenállást (152 jelzéssel) közvetlenül az USB V+ -hoz, amely könnyen hozzáférhető a fényes dióda külső oldalán. A dióda és a megfelelő oldalak egy folytonossági teszt segítségével megtalálhatók. Ennek a diódának az egyik oldala az ATtiny (VCC) és a Digispark 5V 8 -as csatlakozójához van csatlakoztatva. A másik oldal az USB V+-hoz van csatlakoztatva. Most az USB felhúzó ellenállás csak akkor aktiválódik, ha a Digispark kártya USB -hez van csatlakoztatva, pl. programozás közben.

Az utóbbi 2 lépést itt is dokumentáljuk.

1 MHz -en és 3,8 volton a Digispark most 3 mA -t vesz fel. 2000 mAh akkumulátorral 28 napig működik.

5. lépés: Alvás használata késleltetés helyett ()

Alvás használata késleltetés helyett ()
Alvás használata késleltetés helyett ()

A hosszú késleltetések helyett energiatakarékos CPU alvó üzemmódot használhat. Az alvás 15 milliszekundumtól 8 másodpercig tarthat 15, 30, 60, 120, 250, 500 milliszekundum és 1, 2, 4, 8 másodperces lépésekben.

Mivel a készenléti indítási idő 65 milliszekundum a gyári digispark biztosíték -beállításokkal, csak a 80 ms -nál nagyobb késleltetéseket lehet alvással helyettesíteni.

Alvás közben a Digispark 27 µA -t vesz fel. A 200 mAh 2032 -es gombelemmel 10 hónapig alszik.

A helyes megfogalmazás érdekében a Digisparknak legalább 8 másodpercenként fel kell ébrednie, legalább 65 ezredmásodpercig kell futnia, és 2 mA körüli áramot kell felvennie. Ez átlagosan 42 µA áramot és 6 hónapot eredményez. Ebben a forgatókönyvben szinte nincs különbség, ha a program 10 ezredmásodpercig (8 másodpercenként) fut.

Az alvás használatának kódja:

#include #include illékony uint16_t sNumberOfSleeps = 0; extern illékony előjel nélküli hosszú millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // legmélyebb alvó mód…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // alvás 250 ms -ig… sleepWithWatchdog (WDTO_2S, igaz); // 2 másodperc alvás…}/ * * aWatchdogPrescaler lehet 0 (15 ms) - 3 (120 ms), 4 (250 ms) - akár 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i 200 uA / // wdt_enable () -t ment, mivel kezeli, hogy a WDP3 bit a WDTCR regiszter 5. bitjében legyen wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Watchdog interrupt enable + reset interrupt flag -> ISR (WDT_vect) sei (); // megszakítások engedélyezése sleep_cpu (); // A watchdog interrupt felébreszt bennünket az alvásból wdt_disable (); // Mert a következő megszakítás egyébként visszaállításhoz vezethet, mivel a wdt_enable () beállítja a WDE / Watchdog rendszer alaphelyzetbe állítását Engedélyezi az ADCSRA | = ADEN; / * * Mivel az időzítőt le lehet tiltani, csak akkor állítsa be a milliszt, ha nem alszik IDLE módban (SM2… 0 bit 000) * / ha (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Ez a megszakítás felébreszti a CPU -t alvó állapotból * / ISR (WDT_vect) {sNumberOfSleeps ++;}

6. lépés: Módosítsa a biztosítékokat

A 27 mA -ből 22 mA -t húz a BOD (BrownOutDetection/alulfeszültség -érzékelés). A BOD csak a biztosítékok újraprogramozásával tiltható le, ami csak ISP programozóval lehetséges. Ezzel a szkripttel 5,5 µA -ra csökkentheti az áramot, és az alvó állapotból 4 milliszekundumra csökkentheti az indítási időt.

A fennmaradó 5,5 µA -ból 5 -öt az aktív felügyeleti számláló húz le. Ha az ébresztéshez külső nullázást használhat, akkor az áramfelvétel 0,3 µA -ra csökkenhet, amint azt az adatlap megadja.

Ha nem tudja elérni ezt az értéket, annak az lehet az oka, hogy a Schottky dióda fordított árama a VCC és a felhúzás között túl magas. Ne feledje, hogy egy 12 MOhm -os ellenállás 0,3 µA -t is fogyaszt 3,7 volton.

Ez átlagosan 9 µA áramfelvételt eredményez (2,5 év 200 mAh -s gombelemmel 2032), ha pl. feldolgozza az adatokat 8 másodpercenként 3 ezredmásodpercig, mint itt.

7. lépés: További információk

A Digispark tábla aktuális rajza.

Tervezze meg ezeket az utasításokat.

Ajánlott: