Spisu treści:
- Krok 1: Zmniejszenie napięcia zasilania przy użyciu akumulatora LiPo
- Krok 2: Zmniejsz zegar procesora
- Krok 3: Usuń diodę LED zasilania i regulator mocy na pokładzie
- Krok 4: Odłącz rezystor podciągający USB D (oznaczony 152) od 5 V (VCC) i podłącz go do USB V+
- Krok 5: Użyj Sleep zamiast Delay()
- Krok 6: Zmodyfikuj bezpieczniki
- Krok 7: Dalsze informacje
Wideo: Zmniejszenie zużycia energii baterii dla Digispark ATtiny85: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
lub: Uruchamianie Arduino z baterią monetową 2032 przez 2 lata.
Używając płytki Digispark Arduino po wyjęciu z pudełka z programem Arduino, pobiera ona 20 mA przy napięciu 5 woltów.
Dzięki bankowi mocy 5 V o pojemności 2000 mAh będzie działać tylko przez 4 dni.
Krok 1: Zmniejszenie napięcia zasilania przy użyciu akumulatora LiPo
Używając baterii LiPo o napięciu 3,7 V, Twoja płyta Digispark pobiera tylko 13 mA.
Z baterią 2000 mAh będzie działać przez 6 dni.
Krok 2: Zmniejsz zegar procesora
Jeśli w programie nie używasz połączenia USB, ciężkiej matematyki ani szybkiego odpytywania, zmniejsz szybkość zegara. Np. biblioteka odbiorcza IRMP z intensywnym odpytywaniem działa dobrze przy 8 MHz.
Przy 1 MHz Digispark pobiera 6 mA. Z baterią 2000 mAh będzie działał przez 14 dni.
Krok 3: Usuń diodę LED zasilania i regulator mocy na pokładzie
Wyłącz diodę zasilania, przerywając nożem miedziany przewód łączący diodę zasilania z diodą lub wyjmij/wyłącz rezystor 102.
Ponieważ używasz teraz akumulatora LiPo, możesz również usunąć wbudowany regulator zasilania IC. Najpierw podnieś zewnętrzne szpilki za pomocą lutownicy i szpilki. Następnie przylutuj duże złącze i wyjmij regulator. W przypadku małych regulatorów użyj dużo lutu i podgrzej wszystkie 3 piny razem, a następnie usuń.
Przy 1 MHz i 3,8 V Twój Digispark pobiera teraz 4,3 mA. Z baterią 2000 mAh będzie działał przez 19 dni.
Krok 4: Odłącz rezystor podciągający USB D (oznaczony 152) od 5 V (VCC) i podłącz go do USB V+
Ta modyfikacja jest kompatybilna ze wszystkimi wersjami 1.x programu ładującego micronucleus. Jeśli masz już nowy bootloader 2.x na swojej płycie, musisz dokonać aktualizacji do jednej z wersji 2.5 z "activePullup" w nazwie. Najprostszym sposobem na to jest zainstalowanie nowego pakietu płyty digispark i wypalenie bootloadera z zalecaną (!!!nie domyślną ani agresywną!!!) wersją.
Przerwij przewód miedziany z boku rezystora, który wskazuje na ATtiny. To wyłącza interfejs USB i z kolei umożliwia zaprogramowanie płytki Digispark przez USB. Aby ponownie włączyć, ale nadal oszczędzać energię, podłącz rezystor (oznaczony 152) bezpośrednio do USB V+, które jest łatwo dostępne po zewnętrznej stronie diody Shottky'ego. Diodę i jej prawidłowe strony można znaleźć za pomocą testera ciągłości. Jedna strona tej diody jest podłączona do pinu 8 ATtiny (VCC) i Digispark 5V. Druga strona jest podłączona do USB V+. Teraz rezystor podciągający USB jest aktywowany tylko wtedy, gdy płytka Digispark jest podłączona do USB, np. podczas programowania.
Te ostatnie 2 kroki są również udokumentowane tutaj.
Przy 1 MHz i 3,8 V Twój Digispark pobiera teraz 3 mA. Z baterią 2000 mAh będzie działać przez 28 dni.
Krok 5: Użyj Sleep zamiast Delay()
Zamiast długich opóźnień możesz użyć energooszczędnego trybu uśpienia procesora. Uśpienie może trwać od 15 milisekund do 8 sekund w krokach co 15, 30, 60, 120, 250, 500 milisekund i 1, 2, 4, 8 sekund.
Ponieważ czas rozruchu ze stanu uśpienia wynosi 65 milisekund przy fabrycznych ustawieniach bezpiecznika digispark, tylko opóźnienia większe niż 80 ms mogą zostać zastąpione przez stan uśpienia.
Podczas snu Twój Digispark pobiera 27 µA. Z baterią guzikową 200 mAh 2032 będzie spać przez 10 miesięcy.
Aby być poprawnym, Digispark musi budzić się co najmniej co 8 sekund, działając przez co najmniej 65 milisekund i pobierając prąd około 2 mA. Prowadzi to do średniego prądu 42 µA i 6 miesięcy. W tym scenariuszu nie ma prawie żadnej różnicy, czy program działa przez 10 milisekund (co 8 sekund).
Kod do korzystania z trybu uśpienia to:
#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); // tryb najgłębszego uśpienia … } void loop(){ … sleepWithWatchdog(WDTO_250MS, true); // sen na 250 ms … sleepWithWatchdog(WDTO_2S, true); // sen przez 2 s … } /* * aWatchdogPrescaler może wynosić od 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 oszczędza 200 uA // użyj wdt_enable() ponieważ obsługuje, że bit WDP3 jest w bicie 5 rejestru WDTCR wdt_enable(aWatchdogPrescaler); WDTCR |= _BV(WDIE) | _BV(WDIF); // Włącz przerwanie watchdoga + zresetuj flagę przerwania -> wymaga ISR(WDT_vect) sei();// Włącz przerwania sleep_cpu();// Przerwanie watchdoga obudzi nas ze snu wdt_disable();// Ponieważ następne przerwanie będzie inaczej prowadzi do resetu, ponieważ wdt_enable() ustawia WDE / Watchdog System Reset Enable ADCSRA |= ADEN; /* * Ponieważ zegar czasowy może być wyłączony, dostosuj milisy tylko wtedy, gdy nie spałeś w trybie IDLE (bity SM2…0 to 000) */ jeśli (aAdjustMillis && (MCUCR & ((_BV(SM1) | _BV(SM0))) != 0) { millis_timer_millis += computeSleepMillis(aWatchdogPrescaler); } } /* * To przerwanie wybudza procesor ze stanu uśpienia */ ISR(WDT_vect) { sNumberOfSleeps++; }
Krok 6: Zmodyfikuj bezpieczniki
22 mA z 27 mA są pobierane przez BZT (BrownOutDetection/Detekcja podnapięciowa). BZT można wyłączyć tylko przez przeprogramowanie bezpieczników, co można zrobić tylko za pomocą programatora ISP. Za pomocą tego skryptu można zmniejszyć prąd do 5,5 µA, a także skrócić czas uruchamiania ze stanu uśpienia do 4 milisekund.
5 z pozostałych 5,5 µA jest pobieranych przez aktywny licznik watchdoga. Jeśli możesz użyć zewnętrznych resetów do wybudzenia, pobór prądu może spaść do 0,3 µA, jak podano w arkuszu danych.
Jeśli nie jesteś w stanie osiągnąć tej wartości, przyczyną może być zbyt duży prąd wsteczny diody Schottky'ego między VCC a podciąganiem. Należy pamiętać, że rezystor 12 MOhm również pobiera 0,3 µA przy napięciu 3,7 V.
Powoduje to średnie zużycie prądu na poziomie 9 µA (2,5 roku z baterią guzikową 200 mAh 2032), jeśli m.in. przetwarzaj dane co 8 sekund przez 3 milisekundy, jak tutaj.
Krok 7: Dalsze informacje
Aktualny rysunek tablicy Digipark.
Projektuj korzystając z tej instrukcji.
Zalecana:
Sygnał alarmowy zużycia energii Shelly: 8 kroków
Sygnał alarmowy zużycia energii Shelly: OSTRZEŻENIE Ta instrukcja musi być wykonana przez kogoś, kto ma dobre umiejętności jako elektryk. Nie biorę żadnej odpowiedzialności za zagrożenia dla ludzi lub rzeczy. zużycie przekracza t
Miernik zużycia energii elektrycznej CHINT + ESP8266 i matryca Led MAX7912: 9 kroków (ze zdjęciami)
Miernik zużycia energii elektrycznej CHINT + ESP8266 & Matrix Led MAX7912: Tym razem powrócimy do ciekawego projektu, pomiaru zużycia energii elektrycznej w sposób inwazyjny za pomocą miernika CHINT DDS666 Mono faza, technicznie jest to licznik mieszkaniowy lub mieszkaniowy, który już mamy prezentowany w poprzednim t
Automatyzacja domu i prognozowanie zużycia energii: 6 kroków (ze zdjęciami)
Automatyka domowa i przewidywanie energii: HAEP (Automatyka domowa i system przewidywania energii) to projekt dotyczący systemu automatyki domowej, który jest zbudowany wokół idei pomiaru i przewidywania zużycia energii w domu. Minęło kilka lat odkąd Home Automation wkroczył na rynek
ZUŻYTEGO ZUŻYCIA ENERGII: 8 kroków (ze zdjęciami)
POTRZEBNE STRATY ENERGII: Zszyj różne miękkie elementy elektroniczne, aby zmienić swój ulubiony element garderoby w nadające się do noszenia marnowanie energii! Te instrukcje krok po kroku pokażą Ci, jak połączyć guziki z tkaniny, czujniki nacisku tkaniny i przewodzące ślady po tkaninie jako
Zbuduj analogowy miernik zużycia energii elektrycznej: 8 kroków (ze zdjęciami)
Zbuduj analogowy miernik zużycia energii elektrycznej: użyłem funkcji Kill A Watt (http://www.p3international.com/products/special/P4400/P4400-CE.html) licznik energii elektrycznej na chwilę i postanowiłem zbudować analogowy. Ten projekt przestał być prosty, z amperomierzem z jednym panelem i