INHOUDSOPGAWE:

Verminder die batteryverbruik van Digispark ATtiny85: 7 stappe
Verminder die batteryverbruik van Digispark ATtiny85: 7 stappe

Video: Verminder die batteryverbruik van Digispark ATtiny85: 7 stappe

Video: Verminder die batteryverbruik van Digispark ATtiny85: 7 stappe
Video: Использование плат Digispark Attiny85 Mini Arduino: Урок 108 2024, Desember
Anonim
Verminder die batteryverbruik van Digispark ATtiny85
Verminder die batteryverbruik van Digispark ATtiny85
Verminder die batteryverbruik van Digispark ATtiny85
Verminder die batteryverbruik van Digispark ATtiny85

of: bestuur 'n Arduino met 'n 2032 muntstuk vir 2 jaar.

As u u Digispark Arduino Board uit die boks gebruik met 'n Arduino -program, trek dit 20 mA by 5 volt.

Met 'n 5 volt -kragbank van 2000 mAh werk dit slegs 4 dae.

Stap 1: Verminder voedingsspanning deur 'n LiPo -battery te gebruik

Verminder voedingsspanning deur 'n LiPo -battery te gebruik
Verminder voedingsspanning deur 'n LiPo -battery te gebruik

As u 'n LiPo -battery met 'n 3,7 volt -toevoer gebruik, trek u Digispark -bord slegs 13 mA.

Met 'n battery van 2000 mAh sal dit vir 6 dae werk.

Stap 2: Verminder die CPU -klok

Verminder die kloksnelheid as u geen USB -verbinding, swaar wiskunde of vinnige opname in u program gebruik nie. Bv. die infrarooi ontvangbiblioteek vir swaar opnames werk goed op 8 MHz.

By 1 MHz trek u Digispark 6 mA. Met 'n battery van 2000 mAh werk dit vir 14 dae.

Stap 3: Verwyder die aan boord se krag -LED en kragreguleerder

Skakel die krag -LED uit deur die koperdraad wat die krag -LED met die diode verbind met 'n mes te breek, of verwyder / deaktiveer die 102 weerstand.

Aangesien u nou 'n LiPo -battery gebruik, kan u ook die ingeboude kragreguleerder IC verwyder. Lig eers die buitenste penne op met behulp van 'n soldeerbout en 'n pen. Soldeer dan die groot aansluiting en verwyder die reguleerder. Gebruik baie soldeersels vir klein reguleerders en verhit al drie penne saam, en verwyder dit dan.

By 1 MHz en 3,8 volt trek u Digispark nou 4,3 mA. Met 'n battery van 2000 mAh werk dit vir 19 dae.

Stap 4: Ontkoppel die USB D- Pullup-weerstand (gemerk 152) van 5 Volt (VCC) en koppel dit aan USB V+

Ontkoppel die USB D- Pullup-weerstand (gemerk 152) van 5 Volt (VCC) en koppel dit aan USB V+
Ontkoppel die USB D- Pullup-weerstand (gemerk 152) van 5 Volt (VCC) en koppel dit aan USB V+

Hierdie wysiging is verenigbaar met alle1.x -weergawes van die mikronukleus -laaiprogram. As u reeds 'n nuwe 2.x selflaaiprogram op u kaart het, moet u die 2.5 weergawes opgradeer met 'activePullup' in sy naam. Die maklikste manier om dit te doen, is deur die nuwe digispark board -pakket te installeer en die selflaaiprogram te verbrand met die aanbevole (!!! nie die standaard- of aggressiewe !!!) weergawe.

Breek die koperdraad aan die kant van die weerstand wat na die ATtiny wys. Dit skakel die USB -koppelvlak uit en weer die moontlikheid om die Digispark -bord via USB te programmeer. Koppel die weerstand (gemerk 152) direk aan die USB V+ wat maklik aan die buitekant van die shottky -diode beskikbaar is om dit weer moontlik te maak, maar steeds krag te bespaar. Die diode en sy korrekte sye kan gevind word deur 'n kontinuïteitstoetser te gebruik. Die een kant van hierdie diode is verbind met pen 8 van die ATtiny (VCC) en Digispark 5V. Die ander kant is aan die USB V+gekoppel. Nou word die USB -pullup -weerstand slegs geaktiveer as die Digispark -bord aan USB gekoppel is, bv. tydens programmering.

Laasgenoemde 2 stappe word ook hier gedokumenteer.

By 1 MHz en 3.8 volt trek u Digispark nou 3 mA. Met 'n battery van 2000 mAh werk dit vir 28 dae.

Stap 5: Gebruik slaap in plaas van vertraging ()

Gebruik slaap in plaas van vertraging ()
Gebruik slaap in plaas van vertraging ()

In plaas van lang vertragings, kan u kragbesparende CPU -slaap gebruik. Slaap kan duur van 15 millisekondes tot 8 sekondes in stappe van 15, 30, 60, 120, 250, 500 millisekondes en 1, 2, 4, 8 sekondes.

Aangesien die opstarttyd uit slaap 65 millisekondes is met die fabrieksinstellings vir die digispark -lont, kan slegs vertragings groter as 80 ms deur slaap vervang word.

Tydens slaap trek u Digispark 27 µA. Met 'n 200 mAh knoppiesel 2032 sal dit 10 maande slaap.

Om korrek te wees, moet die Digispark minstens elke 8 sekondes wakker word, minstens 65 millisekondes loop en ongeveer 2 mA stroom trek. Dit lei tot 'n gemiddelde stroom van 42 µA en 6 maande. In hierdie scenario maak dit byna geen verskil as u program 10 millisekondes (elke 8 sekondes) loop nie.

Die kode vir die gebruik van slaap is:

#include #include volatile uint16_t sNumberOfSleeps = 0; eksterne vlugtige ongetekende lang millis_timer_millis; leemte -opstelling () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // diepste slaapmodus…} leemte -lus () {… sleepWithWatchdog (WDTO_250MS, waar); // slaap vir 250 ms … sleepWithWatchdog (WDTO_2S, waar); // slaap vir 2 s…}/ * * aWatchdogPrescaler kan 0 (15 ms) tot 3 (120 ms), 4 (250 ms) tot 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; ek bespaar 200 uA // gebruik wdt_enable () aangesien dit hanteer dat die WDP3 -bit in bit 5 van die WDTCR -register wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF) is; // Waghondonderbreking aktiveer + herstel onderbrekingsvlag -> benodig ISR (WDT_vect) sei (); // Aktiveer onderbrekings slaap_cpu (); // Die waghondonderbreking sal ons wakker maak uit slaap wdt_disable (); // Omdat volgende onderbreking andersins lei tot 'n herstelling, aangesien wdt_enable () die WDE / waghondstelsel herstel stel ADCSRA in staat = | (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Hierdie onderbreking maak die cpu uit die slaap * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Stap 6: Pas die versekerings aan

22 mA van die 27 mA word geteken deur die BOD (BrownOutDetection/onderspanningsopsporing). Die BOD kan slegs gedeaktiveer word deur die siklusse te herprogrammeer, wat slegs met 'n ISP -programmeerder gedoen kan word. Deur hierdie script te gebruik, kan u die stroom tot 5,5 µA verminder en ook die opstarttyd van slaap tot 4 millisekondes verminder.

5 van die oorblywende 5,5 µA word deur die aktiewe waghondteller getrek. As u eksterne herinstellings kan gebruik om wakker te word, kan die huidige verbruik tot 0,3 µA daal, soos in die datablad vermeld.

As u hierdie waarde nie kan bereik nie, kan die rede wees dat die omgekeerde stroom van die schottky -diode tussen VCC en die pullup te hoog is. Hou in gedagte dat 'n weerstand van 12 MOhm ook 0,3 µA by 3,7 volt trek.

Dit lei tot 'n gemiddelde huidige verbruik van 9 µA (2,5 jaar met 'n 200 mAh knoppiesel 2032) as u bv. verwerk data elke 8 sekondes vir 3 millisekondes soos hier.

Stap 7: Verdere inligting

Huidige tekening van 'n Digispark -bord.

Projekteer volgens hierdie instruksies.

Aanbeveel: