Sadržaj:
- Korak 1: Smanjivanje napona napajanja pomoću LiPo baterije
- Korak 2: Smanjite CPU sat
- Korak 3: Uklonite ugrađenu LED diodu za napajanje i regulator snage
- Korak 4: Odspojite USB D-Pullup otpornik (označen 152) s 5 V (VCC) i spojite ga na USB V+
- Korak 5: Upotrijebite stanje mirovanja umjesto odgode ()
- Korak 6: Izmijenite osigurače
- Korak 7: Dodatne informacije
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
ili: Pokretanje Arduina s novčanicom od 2032 dvije godine.
Koristeći vašu Digispark Arduino ploču iz kutije s programom Arduino, ona crpi 20 mA na 5 volti.
S 5 voltnom baterijom od 2000 mAh radit će samo 4 dana.
Korak 1: Smanjivanje napona napajanja pomoću LiPo baterije
Korištenje LiPo baterije s 3,7 V za napajanje vaša Digispark ploča troši samo 13 mA.
Uz bateriju od 2000 mAh radit će 6 dana.
Korak 2: Smanjite CPU sat
Ako ne koristite USB vezu, tešku matematiku ili brzo prozivanje u svom programu, smanjite brzinu takta. Npr. infracrvena biblioteka za prijem podataka IRMP radi dobro na 8 MHz.
Na 1 MHz vaš Digispark crpi 6 mA. S baterijom od 2000 mAh radit će 14 dana.
Korak 3: Uklonite ugrađenu LED diodu za napajanje i regulator snage
Onemogućite LED za napajanje tako što ćete nožem prekinuti bakrenu žicu koja LED diodu za napajanje povezuje s diodom ili ukloniti / onemogućiti otpornik 102.
Budući da sada koristite LiPo bateriju, možete ukloniti i ugrađeni IC regulator regulatora snage. Najprije podignite vanjske igle uz pomoć lemilice i igle. Zatim zalemite veliki priključak i uklonite regulator. Za male regulatore upotrijebite mnogo lema i zagrijte sve 3 igle zajedno, a zatim ih uklonite.
Na 1 MHz i 3,8 volta vaš Digispark sada crpi 4,3 mA. S baterijom od 2000 mAh radit će 19 dana.
Korak 4: Odspojite USB D-Pullup otpornik (označen 152) s 5 V (VCC) i spojite ga na USB V+
Ova je izmjena kompatibilna sa svim1.x verzijama mikronuklearnog pokretača. Ako već imate novi 2.x bootloader na ploči, morate nadograditi na jednu verziju 2.5 s "activePullup" u imenu. Najlakši način za to je instaliranje novog paketa digispark ploče i snimanje pokretačkog programa s preporučenom (!!! ne zadanom ili agresivnom !!!) verzijom.
Prekinite bakrenu žicu na strani otpornika koja pokazuje na ATtiny. To onemogućuje USB sučelje i zauzvrat mogućnost programiranja ploče Digispark putem USB -a. Da biste ga ponovno omogućili, ali ipak uštedjeli energiju, priključite otpornik (označen 152) izravno na USB V+ koji je lako dostupan na vanjskoj strani šokirane diode. Dioda i njene ispravne strane mogu se pronaći pomoću ispitivača kontinuiteta. Jedna strana ove diode spojena je na pin 8 ATtiny (VCC) i Digispark 5V. Druga strana je spojena na USB V+. Sada se USB pullup otpornik aktivira samo ako je ploča Digispark spojena na USB, npr. tijekom programiranja.
Posljednja 2 koraka također su ovdje dokumentirana.
Na 1 MHz i 3,8 volta vaš Digispark sada troši 3 mA. Uz bateriju od 2000 mAh radit će 28 dana.
Korak 5: Upotrijebite stanje mirovanja umjesto odgode ()
Umjesto dugih odgoda možete koristiti spavanje CPU -a za uštedu energije. Spavanje može trajati od 15 milisekundi do 8 sekundi u koracima od 15, 30, 60, 120, 250, 500 milisekundi i 1, 2, 4, 8 sekundi.
Budući da je vrijeme pokretanja iz stanja mirovanja 65 milisekundi s tvorničkim postavkama osigurača digispark, samo se kašnjenja veća od 80 ms mogu nadomjestiti.
Tijekom spavanja vaš Digispark troši 27 µA. S ćelijom s gumbom od 200 mAh 2032 spavat će 10 mjeseci.
Da budemo točni, Digispark se mora probuditi barem svakih 8 sekundi, raditi najmanje 65 milisekundi i vući struju od 2 mA. To dovodi do prosječne struje od 42 µA i 6 mjeseci. U ovom scenariju nema gotovo nikakve razlike ako vaš program radi 10 milisekundi (svakih 8 sekundi).
Kôd za korištenje sna je:
#include #include volatile uint16_t sNumberOfSleeps = 0; vanjski hlapivi nepotpisani dugi millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // najdublji način mirovanja…} void loop () {… sleepWithWatchdog (WDTO_250MS, istina); // spavanje 250 ms… sleepWithWatchdog (WDTO_2S, istina); // spavanje 2 s…}/ * * aWatchdogPrescaler može biti 0 (15 ms) do 3 (120 ms), 4 (250 ms) do 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i sprema 200 uA // koristi wdt_enable () budući da obrađuje da je bit WDP3 u bitu 5 registra WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Stražarski prekid omogućavanje + poništavanje zastavice prekida -> treba ISR (WDT_vect) sei (); // Omogućivanje prekida sleep_cpu (); // Prekid stražara probudit će nas iz sna wdt_disable (); // Budući da će sljedeći prekid u protivnom dovesti do resetiranja, budući da wdt_enable () postavlja WDE / Watchdog Reset sustava Omogući ADCSRA | = ADEN; / * * Budući da sat vremena može biti onemogućen, podesite milise samo ako nije u stanju mirovanja (SM2 … 0 bita su 000) * / ako (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Ovaj prekid budi CPU iz stanja spavanja * / ISR (WDT_vect) {sNumberOfSleeps ++;}
Korak 6: Izmijenite osigurače
22 mA od 27 mA dobiva BOD (BrownOutDetection/detekcija podnapona). BPK se može onemogućiti samo ponovnim programiranjem osigurača, što se može učiniti samo s ISP programatorom. Pomoću ove skripte možete smanjiti struju na 5,5 µA i također smanjiti vrijeme pokretanja iz stanja mirovanja na 4 milisekunde.
5 od preostalih 5,5 µA izvlači aktivni brojač nadzornika. Ako za buđenje možete koristiti vanjska resetiranja, trenutni potrošač može se spustiti na 0,3 µA kako je navedeno u podatkovnoj tablici.
Ako ne možete doseći tu vrijednost, razlog može biti taj što je obrnuta struja schottky diode između VCC -a i pullapa previsoka. Imajte na umu da otpornik od 12 MOhm također troši 0,3 µA na 3,7 volti.
To rezultira prosječnom potrošnjom struje od 9 µA (2,5 godine s ćelijom s gumbom od 200 mAh 2032) ako npr. obrađujte podatke svakih 8 sekundi tijekom 3 milisekunde kao ovdje.
Korak 7: Dodatne informacije
Trenutni crtež Digispark ploče.
Projektirajte prema ovim uputama.