• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Czas pracy na baterii - obliczenia vs realia
#1
Cześć wszystkim. Mam problem którego nie mogę rozkminić.
Może ktoś mi podpowie co robię źle, czego nie uwzględniłem, co poprawić.

Opis problemu:
Zrobiłem czujnik temperatury/wilgotności który wysyła do centralki dane pomiarowe co 15m.
Czujnik działa na baterii tylko ok 60 dni ([b]1440h).[/b]

Zastosowane układy:
  • Arduino mini 3,3V 8MHz - wymontowana dioda sygnalizująca zasilanie; zasilanie przez RAW;
  • DHT 22;
  • nRF24L.
Akumulator:
  • ogniwo 2500mAh; Li-ion MH12210 (18650B) - przy max naładowaniu 4,2V
Informacje dodatkowe
  • w oprogramowaniu korzystam z LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF) dla Arduino i radio.powerDown() dla nRF24L;
  • gdyby ktoś brał pod uwagę temperaturę pracy; to praca w warunkach pokojowych ok 21 stopni
Rzeczywisty pobór prądu podczas pracy:
0,008mA - w stanie powerDown;
max 9mA - raz na 15 min przez ok 2 sec.

Korzystając z kalkulatorów (po zaokrągleniu poboru prądu do 0,01mA) mamy
2500 / 0.01 = 250000h

A ze wzoru h = ((Ah x V) / W ) / 1,6
P = 3,3V x 0,00001A (zaokrągliłem mA w górę)
2,5Ah x 3,3V / 0,000033W / 1,6 = 156250 h

Teoretyczny czas pracy na baterii 156250h VS rzeczywisty czas 1440h to spora różnica Sad
 
Odpowiedź
#2
Czy zmierzyłeś pojemność ogniwa? Czy faktycznie ma taką jak podają? Może samorozładowanie ogniwa jest tak duże, że pobór tak małego prądu nie ma znaczenia na czas pracy urządzenia. Naładuj ogniwo i poczekaj miesiąc a potem zmierz jego pojemność.
 
Odpowiedź
#3
(16-11-2020, 11:36)Agregacik napisał(a): Czy zmierzyłeś pojemność ogniwa? Czy faktycznie ma taką jak podają? Może samorozładowanie ogniwa jest tak duże, że pobór tak małego prądu nie ma znaczenia na czas pracy urządzenia.  Naładuj ogniwo i poczekaj miesiąc a potem zmierz jego pojemność.

Tak. Testowane na everActive UC-4000 przez ładowanie (dobija do ponad 2400mA) i rozładowywanie prądem stałym (też wychodzi ponad 2400mA) .
 
Odpowiedź
#4
Ile faktycznie pobiera prądu w trybie pracy to musiałbyś odpalić oscyloskop i nagrać wykres spadku napięcia na jakimś rezystorze. Multimetr nie zauważa sporych szarpnięć prądu występujących przy używaniu radia.
Jak zmierzyłeś pobór prądu w trybie uśpienia? Wziąłeś sobie dane z karty katalogowej czy faktycznie zmierzyłeś? Np. ESP potrafi chodzić zasilany z akumulatorka 4.2V, ale nie pobiera wtedy 15uA w powerdown tylko kilkaset uA. Opłaca się dołożyć zwykły liniowy stabilizator LowDrop 3.3V, który łyka 4uA dodatkowo w powerdown, ale za to ESP bierze te swoje 15uA katalogowe przez cały żywot aku. Z tym, że ten mój pobiera 4uA minimum, ten na płytce Arduino może i 1000uA.
Można dać przetwornicę, ale te które miałem zżerały minimum 300uA. Są więc OK, jak coś cały czas pracuje z prądem rzędu 100mA, bo przetwornica lepiej wykorzysta pojemność aku, ale do uśpienia na większość czasu to porażka. Wg mnie do uśpienia lepsze są liniowe.
Zrobiłem sobie taki układ rezystorów 1% 1R, 100R, 1k, 10k, w czasie pracy mierzyłem spadek na 1R, a jak się spodziewałem poboru prądu rzędu uA to włączałem w układ również 1k lub 10k i odłączałem 1R (rezystory polutowane, wybór aktywnych przełącznikiem DIP).
Takie katalogowe zużycie prądu z Atmegami to jest tylko wtedy, gdy napięcie jest również katalogowe, podwojenie napięcia zasilania z 1.8V do 3.6V podwaja również pobór prądu, pomimo że uC jest wyłączony. Ale to dalej są wartości poniżej 1uA przy wyłączeniu wszystkiego.
Jak zasilanie podłączyłeś pod RAW, to jest przed stabilizator to on może zużywać najwięcej prądu. Lepiej go pominąć i z akumulatorka podać zasilanie wprost na Atmegę. Robiłem kiedyś testy PRO MINI (taki chyba masz na myśli, też usunięty LED od power on) i wtedy schodził w trybie powerdown do katalogowych wartości poniżej 1uA.
Atmega z zegarem 8MHz może być zasilana od 2.5V do 5.5V, nie występuje tu taki skok poboru prądu jak przy ESP, bo on broni się przed przekroczeniem dopuszczalnego napięcia spuszczając prąd bokiem przez jakieś diody zabezpieczające. Zużycie w Atmega jest większe, ale nie kilkaset razy większe.
Atmega powinna też mierzyć napięcie aku, można to robić względem wewnętrznego napięcia odniesienia 1.1V i jeśli aku spadnie poniżej 2.8V wyłączyć wszystko w powerdown by nie zabić aku. Będziesz miał trochę czasu zanim ten uA pobór prądu dobije aku.
http://www.gammon.com.au/forum/?id=11497 tu jest sporo rzeczy opisanych i odpowiada moim obserwacjom.
 
Odpowiedź
#5
Rozważałem bezpośrednie podpięcie ogniwa pod Vcc ale nRF24L krzyżuje trochę plany - jego zasilanie do 3,6V max.
 
Odpowiedź
#6
HT7333 może być wystarczające, tylko 4uA własnego użycia gdy reszta śpi, do 12V na wejściu, wydajność do 250mA. Oczywiście wszystko powyżej 3.3V zamienia na ciepło.
 
Odpowiedź
#7
(17-11-2020, 15:49)kaczakat napisał(a): HT7333 może być wystarczające, tylko 4uA własnego użycia gdy reszta śpi, do 12V na wejściu, wydajność do 250mA. Oczywiście wszystko powyżej 3.3V zamienia na ciepło.

Dzięki. Spróbuję z tym stabilizatorem, ale już przy czujniku ruchu.

W przypadku jednostki pomiarowej z wykorzystywaniem DHT22 udało mi się zbić zużycie z ponad 3mA na godzinę do 0,25mA na godzinę - testy nie są może idealne ale i tak widać różnicę.

Testowałem wersję 1 i wersję 2 po zmianach w ten sposób, że odpalałem jednostkę na w pełni naładowanym ogniwie; po 24 godzinach ponownie ładowałem ogniwo i sprawdziłem ile mAh ładowarka dobiła do pełnego naładowania baterii.
Po dwa testy na wersję. Przy dłuższym czasie testu prawdopodobnie wynik byłby obarczony mniejszym błędem.

Zejście z ponad 3mAh do 0,25mAh jest dla mnie na chwilę obecną satysfakcjonujące Smile

Wprowadzone zmiany:
  • zasilanie DHT22 bezpośrednio z pin-u analogowego Arduino (zamiast vcc) i odłączanie zasilania na czas kiedy DHT nie jest używane;
  • zmniejszenie radio.setPALevel z RF24_PA_MAX do RF24_PA_HIGH;
  • zamiast pomiaru i wysyłania temperatury i wilgotności co 15 min (dwa posty jeden po drugim); pomiaru dokonuję co 5 min, ale wysyłam temperaturę lub wilgotność tylko jeżeli uległa zmianie o określoną wartość; wymuszam wysyłkę danych przynajmniej raz na 3 godziny.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości