Robiąc majsterkowanie jako hobby, robię mały czujnik radia i wilgotności.
ATmega328 czyta z DHT11 czujnika , a następnie przesyła dane do Raspberry Pi za pomocą nadajnika radiowego STX882 . Jest zasilany z baterii 9 V za pomocą regulatora 7805 5 V o pojemnościach 10 µF i 100 µF.
Kod C na ATmega odczytuje wilgotność i temperaturę, a następnie wysyła go co 30 minut:
const unsigned long DELAY = 30*60*1000UL; // 30 minutes
void loop() {
delay(DELAY);
send_data(); // Maybe a little overcomplicated, but I think it is not the point
}
Działało to jak urok, ale żywotność baterii była nieoczekiwanie krótka. To było zupełnie nowe i zrobiłem kilka sporadycznych testów z krótkim opóźnieniem, bez żadnego nienormalnego ciepła pochodzącego z dowolnego miejsca.
Kiedy byłem usatysfakcjonowany, odłożyłem 30-minutowe opóźnienie i zostawiłem je w spokoju (co może być trochę niebezpieczne?), Ale po mniej niż 24 godzinach bateria była rozładowana 5,4 V. 30-minutowe opóźnienie było jednak w przybliżeniu przestrzegane ze względu na jego żywotność.
Co może tłumaczyć tak krótki czas pracy baterii? Czy może to być regulator 5 V? Jak mogę zbudować trwały obwód?
PS: Nadal próbuję Fritzing jakiś schemat, ale to wymaga wieku noobów takich jak ja ...
Użyłem generalnej alkalicznej baterii 9 V 6lp3146, która najwyraźniej zapewniała 300-500 mAh przy prądzie 100 mA, czyli o wiele więcej niż mój obwód.
Oto wszystkie informacje, które mogłem zebrać z arkusza danych:
+-----------------+-------------+----------+-----------+---------+
| | DHT11 | STX882 | ATmega328 | 7805reg |
+-----------------+-------------+----------+-----------+---------+
| Voltage | 3-5.5 V | 1.2-6 V | 2.7-5.5 V | |
+-----------------+-------------+----------+-----------+---------+
| Active current | 0.5-2.5 mA | 34 mA | 1.5 mA | |
+-----------------+-------------+----------+-----------+---------+
| Standby current | 0.1-0.15 mA | <0.01 µA | 1 µA | 4-8 mA* |
+-----------------+-------------+----------+-----------+---------+
*"bias current"
Jeśli dobrze rozumiem, mój system jest aktywny przez kilka sekund co 30 minut, więc prąd czuwania jest wszystkim, co powinno mieć znaczenie, i rzeczywiście jest sterowany przez regulator 7805.
Tak, w najgorszym przypadku przy 300 mAh powinienem być w stanie utrzymać system przy życiu tylko przez 40 godzin.
Czy istnieje sposób, aby móc zasilać mój system 5 V przez znacznie dłuższy czas bez znacznie większego rozmiaru?
Dla przypomnienia, oto bardzo dobre wideo na temat regulatorów LM vs. konwerterów buck: konwerter buck vs. liniowy regulator napięcia - praktyczne porównanie
źródło
Odpowiedzi:
Jak wspomniano, 7805 ma około 4 mA prądu spoczynkowego. Musisz znaleźć kartę danych dla baterii (Eveready ma ładne karty danych baterii, jeśli używasz ogniwa alkalicznego). To prawdopodobnie nie więcej niż 100 mAh - 100 mAh / 4 mA = 25 godzin, więc to powinno ci coś powiedzieć.
7805 to stara technologia. Istnieją lepsze nowsze regulatory liniowe. Powinieneś być w stanie łatwo znaleźć coś, co zużywa 10 razy mniej prądu spoczynkowego, a przy kopaniu jeszcze mniej.
Aby zużyć jeszcze mniej energii, użyłbyś konwertera buck specjalnie zaprojektowanego dla niskiego prądu spoczynkowego - ale rozumiem, że nie jesteś gotowy zaprojektować jednego w płytkę na poziomie komponentu. Być może istnieje moduł, który wykona zadanie, ale musisz się rozejrzeć. TI ma kilka modułów konwertera buck, ale warto zwrócić uwagę na ich możliwości, zarówno w zakresie maksymalnego dostarczania prądu, jak i prądu spoczynkowego.
Aby zużywać jeszcze mniej energii, zrób wszystko, co możliwe, aby zminimalizować pobór prądu w obwodzie, gdy jest on wyłączony. Będzie to wymagało starannego korzystania z funkcji uśpienia mikroprocesora, a także zarządzania sposobem zasilania płyty (na przykład, jeśli włącza się ona co 30 minut, możesz wyłączyć zasilanie radia i odczyt wilgotności części obwodu).
Zmierz pobór prądu we wszystkich trybach pracy i użyj tego, aby określić, które tryby są najgorszymi sprawcami, a następnie skoncentruj się na zminimalizowaniu prądów w tych trybach, jeśli możesz.
źródło
Wszystkie te części mogą pracować od 3 do 5 V, więc używaj baterii, która nie wymaga regulatora, ogniwa litowo-jonowego 16500 lub zestawu akumulatorów 3xAAA o rozmiarze zbliżonym do 9 V i wytwarzających napięcia w tym zakresie. (lub nawet ogniwo Li-po)
Bez regulatora mikrokontroler może się wyłączyć, a obwód będzie potrzebował tylko kilku mikroamperów.
źródło
Prąd jałowy regulatora 7805 wynosi około 4 mA, dlatego uzbrojeni w pojemność amperogodzin akumulatora, sprawdź, jak długo potrwa z ciągłym rozładowaniem 4 mA.
Jeśli stwierdzisz, że to jest problem, przekonasz się, że istnieje wiele regulatorów o znacznie niższym prądzie spoczynkowym.
Gdy akumulator spadnie do około 7 woltów, jesteś na śliskim spadku, ponieważ regulator 7805 potrzebuje kilku woltów wolnej przestrzeni do prawidłowej regulacji i oszacowałbym (szybkie przypuszczenie), że przy około 6,5 wolt obwód się nie powiedzie.
Biorąc pod uwagę to, co właśnie wspomniałem, szacuję, że tylko 50% deklarowanej pojemności akumulatora nadaje się do użycia, zanim obwód się podda. Pamiętaj o tym.
źródło
Korzystam z podobnych węzłów czujnikowych ze znacznie lepszymi wynikami. Moja konfiguracja różni się od twojej:
1 Z powodzeniem używam ESP8266, chociaż oczywiście nigdy nie polecałbym tego, ponieważ ich udokumentowane absolutne maksymalne Vcc wynosi 3,6 VI.
2 Dla mojego ESP8266 budzenie się z głębokiego snu jest restartem, więc kod zacznie działać na górze
setup()
, ale z ATmega328 nie jest to problemem.źródło
Bardzo podobny do „dlaczego mój system solarny / akumulatorowy / falownik ma tak mały zasięg?” > ponieważ falownik jest ciągle obracany. Używaj różnych obciążeń, które działają na bezpośrednim akumulatorze i eliminuj niepotrzebną konwersję napięcia .
Zrobiłeś inżynierię 101, spoliczkowałeś bity i one działają. Inżynieria 202 sprawia, że działają one wystarczająco wydajnie, aby były przydatne.
Jak wyżej, śmieci-inverte ... Mam na myśli regulator. Wybierz baterie, które mogą zasilać go prosto, takie jak trzy baterie 1,5 V o napięciu 4,5 V. (Dwa nie wystarczą, ponieważ zbyt szybko spadną poniżej 3 V; a może; spróbuj!)
Pomyśl także o większych akumulatorach - - 9 V to głupio mała pojemność, szczególnie gdy wyrzucasz 2/3 pojemności! (Elektronika potrzebuje 3 V, bierzesz 9 V, a resztę wyrzucasz jako ciepło). Myśl duży - komórki D są twoim przyjacielem, jeśli chcesz długowieczności.
Kamery z jeleniem mają zazwyczaj dwa kompletne banki komórek D, możesz użyć jednego lub obu i możesz jeździć przez cały sezon.
Również pobór prądu snu przez ATMegę jest imponujący, ale STX882 i czujnik nie tyle. Sprawdź, czy możesz znaleźć sposób fizycznego odcięcia zasilania ATMega od innych urządzeń, gdy nie są potrzebne. Najtańszym, najbardziej scungowym sposobem na to jest mały przekaźnik, ale tranzystor mocy powinien również załatwić sprawę.
Ostatnia sztuczka. Może to nie być warte zrobienia w zależności od tego, jaki cykl pracy zasila system, ale warto o tym wspomnieć. W ostatnich latach procesory wzrosły z 5 V do 3,3 V. Dlaczego? Ponieważ działają na prąd; napięcie powyżej minimum nie wspomaga działania i po prostu rozprasza więcej ciepła. W miarę jak procesory stawały się coraz mocniejsze, problemy termiczne stały się czynnikiem ograniczającym, więc obniżenie napięcia do minimum pozwoliło na chłodzenie i większą wydajność na tym samym radiatorze. To samo dotyczy twojej elektroniki.
Zamierzasz pracować przy napięciu 5 V, wysokiej stronie dopuszczalnego zakresu napięcia. Moja propozycja 3xAA stawia Cię na 4,5 V, ale rozważ wybór innego rodzaju baterii, który idzie jeszcze niżej: takich jak baterie litowe lub trzy NiCd / NiMH (3,6 V). NiMH ma większą pojemność, ale NiCD ma naprawdę niesamowitą odporność na nadużycia i głębokie rozładowanie.
źródło
Zamiast tego użyj konwertera podwyższającego
Tak robię podobne projekty. Używam 3xAA, co daje mi 2,5 V-4,8 V, to jest w zakresie roboczym atmega, podłączam to do konwertera podwyższającego z pinem wyłączającym, gdy wyłączony konwerter zużywa prawie nic i przepuszcza napięcie. Kiedy atmega budzi się i musi dokonać pomiaru, włączy konwerter, znajdzie 5 V na VCC, wykona pomiary i wyśle, wyłączy konwerter, wróci do snu. To trwa lata.
źródło
Według twoich liczb, otrzymujesz oczekiwane zachowanie między czujnikiem, mikrokontrolerem i regulatorem (8ma). Jeśli chcesz lepiej, przespaj kontroler, wyłącz czujnik i uzyskaj bardziej odpowiedni regulator.
źródło
Zmierz rzeczywisty pobór prądu w stanie bezczynności i aktywnym. Użyj amperomierza między akumulatorem a wejściem 7805. Typowa nowa bateria 9 V ma ponad 300 mAh, a sam prąd spoczynkowy 7805 nie był w stanie zużyć wszystkiego - coś podejrzanego! Ja mierzy dużo baterii 9V i są zazwyczaj 500-600 mAh. Zastrzeżenie polega na tym, że wszystkie są alkaliczne, a jeśli chcesz uzyskać najdłuższą żywotność, oczywiście musisz użyć baterii alkalicznych.
Czy istnieje prawdziwy powód, aby używać jednorazowych baterii 9 V w swojej aplikacji? Czy rozważałeś coś takiego jak 3 × lub 4 × AA?
źródło
Od
delay
iloop
wygląda na to, że używasz kodu Arduino. Tadelay
funkcja jest aktywną pętlą, nie uśpi mikrokontrolera! Interfejs API Arduino nie obsługuje trybu uśpienia.Przeczytaj arkusz danych ATmega328P i patrz strona 34, aby dowiedzieć się, jak przełączyć urządzenie w tryb uśpienia.
źródło
deepsleep
?WAŻNE: Jeśli możesz wyłączyć czujnik wilgotności DHT11 pomiędzy zastosowaniami, MOŻESZ być w stanie przedłużyć żywotność baterii 3 lub 4 razy.
DHT11 ma prąd spoczynkowy 100-150 uA w trybie uśpienia. Musisz zaprojektować według najgorszego przypadku.
Po włączeniu wymaga 1 sekundy „na oczyszczenie głowy” (uwaga 4. strona 5),
a następnie jest czas konfiguracji interfejsu (może kilka 10 ms).
Z arkusza danych nie wynika, czy na czas reakcji ma wpływ wyłączenie zasilania, ale prawdopodobnie nie.
W zależności od czasu między aktywacjami wyłączenie DHT11 może zmniejszyć prąd spoczynkowy systemu z około 200 uA do około 50 uA.
Warto na to spojrzeć.
Regulator LM2936:
Wspomniany LM2936 jest doskonałym regulatorem, jeśli spełnia twoje wymagania. Dostępny niski zanik, niski prąd spoczynkowy, dostępny zakres napięć wyjściowych.
Użyłem ich dawno temu w produkcie, który potrzebował ich niskiego Iq i był z nich bardzo zadowolony. Hmmm - to było około 1993 - ponad 25 lat - staruszek, ale słodycz.
Iout max wynosi nominalnie 50 mA - co zaspokaja twoją tabelaryczną potrzebę.
Iq wynosi 10 uA przy obciążeniu 100 uA - i mniej przy znacznie niższych obciążeniach.
Vin ma 5,5 - 40 V i faktycznie prawdopodobnie jest bliżej Vouta. Możesz uzyskać wersje 5V i 3V3.
Prąd obciążenia w trybie uśpienia wynosi poniżej 200 uA.
Przy 200 uA dostaniesz 100 / .2 = 500 godzin pracy na sen na 100 mAh baterii.
A więc około 20 dni na 100 mAh.
Powiedzmy, że 60 dni lub dwa miesiące z baterią alkaliczną „9 V” 300–500 mAH błądzącą po konserwatywnej stronie. Użyj ogniw alkalicznych AA 6 x 1,5 V (około 3000 mAh), a powinieneś zacząć zbliżać się do 2 lat.
Bezpośrednia praca z 3 x alkalicznych AA daje Vin od napięcia początkowego 5 V (do 1,65 V / ogniwo) i 3,3 V przy 1,1 V / ogniwo (prawie martwe). Tak długo, jak 6 alkalicznych AA z ciągłym napięciem wyjściowym. Jeśli tolerujesz wejście 3,3 - 5 V, po prostu użyj 3 x alkalicznych. AA na prawie 2 lata eksploatacji. AAA za mniej.
źródło