Cuprins:
- Pasul 1: Reducerea tensiunii de alimentare utilizând o baterie LiPo
- Pasul 2: Reduceți ceasul CPU
- Pasul 3: Scoateți LED-ul de alimentare de pe bord și regulatorul de putere
- Pasul 4: Deconectați rezistorul USB D-Pullup (marcat 152) de la 5 volți (VCC) și conectați-l la USB V +
- Pasul 5: utilizați Sleep în loc de întârziere ()
- Pasul 6: Modificați siguranțele
- Pasul 7: Informații suplimentare
Video: Reducerea consumului de energie a bateriei pentru Digispark ATtiny85: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
sau: Rularea unui Arduino cu o celulă de monede 2032 timp de 2 ani.
Folosind placa Digispark Arduino din cutie cu un program Arduino, acesta atrage 20 mA la 5 volți.
Cu o bancă de putere de 5 volți de 2000 mAh, aceasta va funcționa doar timp de 4 zile.
Pasul 1: Reducerea tensiunii de alimentare utilizând o baterie LiPo
Folosind o baterie LiPo cu 3,7 volți ca sursă, placa Digispark atrage doar 13 mA.
Cu o baterie de 2000 mAh va funcționa timp de 6 zile.
Pasul 2: Reduceți ceasul CPU
Dacă nu utilizați conexiune USB, matematică intensă sau sondare rapidă în program, reduceți viteza ceasului. De exemplu. biblioteca de recepție cu infraroșu de sondare IRMP funcționează bine la 8 MHz.
La 1 MHz, Digispark dvs. atrage 6 mA. Cu o baterie de 2000 mAh va funcționa timp de 14 zile.
Pasul 3: Scoateți LED-ul de alimentare de pe bord și regulatorul de putere
Dezactivați LED-ul de alimentare rupând firul de cupru care conectează LED-ul de alimentare la diodă cu un cuțit sau scoateți / dezactivați rezistorul 102.
Deoarece utilizați acum o baterie LiPo, puteți scoate și IC regulatorul de putere de la bord. Ridicați mai întâi știfturile exterioare cu ajutorul unui fier de lipit și a unui știft. Apoi lipiți conectorul mare și scoateți regulatorul. Pentru regulatoarele mici, utilizați mult lipire și încălziți toți cei 3 pini împreună, apoi scoateți-l.
La 1 MHz și 3,8 volți, Digispark dvs. atrage acum 4,3 mA. Cu o baterie de 2000 mAh va funcționa timp de 19 zile.
Pasul 4: Deconectați rezistorul USB D-Pullup (marcat 152) de la 5 volți (VCC) și conectați-l la USB V +
Această modificare este compatibilă cu versiunile all1.x ale bootloaderului micronucleus. Dacă aveți deja un nou bootloader 2.x pe placa dvs., trebuie să faceți upgrade la una dintre versiunile 2.5 cu „activePullup” în numele său. Cel mai simplu mod de a face acest lucru este să instalați noul pachet digispark board și să ardeți bootloader-ul cu versiunea recomandată (!!! nu implicită sau agresivă !!!).
Rupeți firul de cupru de pe partea rezistorului care indică ATtiny. Aceasta dezactivează interfața USB și, la rândul său, posibilitatea de a programa placa Digispark prin USB. Pentru a-l activa din nou, dar pentru a economisi energie, conectați rezistorul (marcat 152) direct la USB V + care este ușor disponibil în partea exterioară a diodei shottky. Dioda și laturile sale corecte pot fi găsite folosind un tester de continuitate. O parte a acestei diode este conectată la pinul 8 al ATtiny (VCC) și Digispark 5V. Cealaltă parte este conectată la USB V +. Acum rezistorul USB pullup este activat doar dacă placa Digispark este conectată la USB de ex. în timpul programării.
Ultimii 2 pași sunt, de asemenea, documentați aici.
La 1 MHz și 3,8 volți, Digispark dvs. atrage acum 3 mA. Cu o baterie de 2000 mAh va funcționa timp de 28 de zile.
Pasul 5: utilizați Sleep în loc de întârziere ()
În loc de întârzieri lungi, puteți utiliza somnul de economisire a energiei CPU. Repausurile pot dura de la 15 milisecunde la 8 secunde în pași de 15, 30, 60, 120, 250, 500 milisecunde și 1, 2, 4, 8 secunde.
Deoarece timpul de pornire de la repaus este de 65 de milisecunde, cu setările de siguranță din fabrică, doar întârzierile mai mari de 80 ms pot fi înlocuite cu repaus.
În timpul somnului dvs. Digispark atrage 27 µA. Cu o celulă buton 200 mAh 2032 va dormi timp de 10 luni.
Pentru a fi corect, Digispark trebuie să se trezească cel puțin la fiecare 8 secunde, să funcționeze timp de cel puțin 65 de milisecunde și să treacă în jur de 2 mA curent. Acest lucru duce la un curent mediu de 42 µA și 6 luni. În acest scenariu, nu face aproape nicio diferență dacă programul dvs. rulează timp de 10 milisecunde (la fiecare 8 secunde).
Codul pentru utilizarea somnului este:
#include #include volatile uint16_t sNumberOfSleeps = 0; extern volatile unsigned long millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // cel mai profund mod de somn …} bucla void () {… sleepWithWatchdog (WDTO_250MS, adevărat); // dormi 250 ms … sleepWithWatchdog (WDTO_2S, adevărat); // dormiți 2 secunde …} / * * aWatchdogPrescaler poate fi de la 0 (15 ms) la 3 (120 ms), 4 (250 ms) până la 9 (8000 ms) * / uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i economisește 200 uA // folosește wdt_enable () deoarece gestionează faptul că bitul WDP3 se află în bitul 5 din registrul WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Activare întrerupere supraveghere + resetare semnalizare întrerupere -> are nevoie de ISR (WDT_vect) sei (); // Activare întrerupe somn_cpu (); // Întreruperea supraveghetorului ne va trezi din somn wdt_disable (); // Pentru că următoarea întrerupere va fi altfel duce la o resetare, deoarece wdt_enable () setează WDE / Watchdog System Reset Enable ADCSRA | = ADEN; / * * Deoarece ceasul temporizatorului poate fi dezactivat, ajustați milis numai dacă nu sunteți în modul IDLE (SM2 … 0 biți sunt 000) * / dacă (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis + = computeSleepMillis (aWatchdogPrescaler);}} / * * Această întrerupere trezește cpu-ul din repaus * / ISR (WDT_vect) {sNumberOfSleeps ++;}
Pasul 6: Modificați siguranțele
22 mA din cei 27 mA sunt trasi de BOD (BrownOutDetection / detecție subtensiune). BOD-ul poate fi dezactivat numai prin reprogramarea siguranțelor, ceea ce se poate face numai cu un programator ISP. Utilizând acest script puteți reduce curentul până la 5,5 µA și, de asemenea, puteți reduce timpul de pornire de la repaus la 4 milisecunde.
5 din restul de 5,5 µA sunt trase de către contorul activ al câinelui de pază. Dacă puteți utiliza resetări externe pentru trezire, consumul curent poate scădea la 0,3 µA, așa cum se menționează în foaia de date.
Dacă nu puteți atinge această valoare, motivul poate fi acela că curentul invers al diodei schottky între VCC și pullup este prea mare. Rețineți că un rezistor de 12 MOhm atrage, de asemenea, 0,3 µA la 3,7 volți.
Acest lucru are ca rezultat un consum curent mediu de 9 µA (2,5 ani cu o celulă buton 200 mAh 2032) dacă de ex. procesează datele la fiecare 8 secunde timp de 3 milisecunde ca aici.
Pasul 7: Informații suplimentare
Desenul curent al unei plăci Digispark.
Proiectați folosind aceste instrucțiuni.
Recomandat:
Reducerea unui rezistor variabil: 7 pași (cu imagini)
Reducerea unui rezistor variabil: Când aveți o baterie de 9 volți și doriți să testați dacă funcționează un LED roșu (3 volți), fără să-l suflați, ce faceți? Răspuns: Realizați o rezistență variabilă prin reducerea unui creion
Economisirea bateriei, comutatorul decuplat al protectorului de descărcare cu ATtiny85 pentru bateria cu plumb acid sau bateria Lipo: 6 pași
Economisirea bateriei, comutatorul decuplat pentru protecția de descărcare cu ATtiny85 pentru bateria cu plumb acid sau bateria Lipo: Deoarece am nevoie de mai multe protecții pentru baterii pentru mașinile și sistemele mele solare, le găsisem pe cele comerciale la 49 USD prea scumpe. De asemenea, folosesc prea multă putere cu 6 mA. Nu am găsit nicio instrucțiune cu privire la acest subiect. Așa că mi-am făcut propriul meu care atrage 2mA. Cum se face
Reducerea consumului de energie al releului - Menținerea față de curentul de preluare: 3 pași
Reducerea consumului de energie al releului - Menținerea în funcție de curentul de preluare: Majoritatea releelor necesită mai mult curent pentru a acționa inițial decât este necesar pentru a menține releul pornit după ce contactele s-au închis. Curentul necesar pentru menținerea releului pornit (curentul de menținere) poate fi substanțial mai mic decât curentul inițial necesar pentru a acționa
Cum se măsoară corect consumul de energie al modulelor de comunicații fără fir în era consumului redus de energie ?: 6 pași
Cum se măsoară corect consumul de energie al modulelor de comunicații fără fir în era consumului redus de energie ?: Consumul redus de energie este un concept extrem de important în Internetul obiectelor. Majoritatea nodurilor IoT trebuie alimentate cu baterii. Numai prin măsurarea corectă a consumului de energie al modulului wireless putem estima cu exactitate câtă baterie i
Înlocuirea bateriei iPhone 6 Plus: Ghid pentru înlocuirea bateriei interne: 12 pași (cu imagini)
Înlocuirea bateriei iPhone 6 Plus: Ghid pentru înlocuirea bateriei interne: Hei băieți, am făcut un ghid de înlocuire a bateriei iPhone 6 cu ceva timp în urmă și se pare că a ajutat mulți oameni, așa că iată un ghid pentru iPhone 6+. IPhone 6 și 6+ au în esență aceeași versiune, cu excepția diferenței evidente de dimensiune. Există