Skocz do zawartości
aston729

Jak oszczędzać energię z RF 433?

Pomocna odpowiedź

Witam. Planuje zrobić czujnik temperatury przy piecu. I tu moje pytanie: jak zaprogramować Atmege żeby zużywała jak najmniej energii (powiedzmy jeden komplet baterii na jeden sezon - około 5 miesięcy). Będę korzystał z nadajnika RF 433 i czujnika DS18B20 oraz DHT11 prawdopodobnie. Z góry dzięki za pomoc!

Udostępnij ten post


Link to post
Share on other sites

W układzie będzie atmega 328, kwarc 16mhz, nadajnik rf433, czujnik DS18B20...na pewno mogę obniżyć taktowanie, tylko jak? w linku widzę tylko sleep mode. Inna rzecz, że mógłby wchodzić w sleep mode na minutę, wysyłać odczyt i znów sleep mode? Coś jeszcze da się zrobić?

Udostępnij ten post


Link to post
Share on other sites
Inna rzecz, że mógłby wchodzić w sleep mode na minutę, wysyłać odczyt i znów sleep mode?

Dokładnie tak.

Udostępnij ten post


Link to post
Share on other sites

Zastosował bym na pewno inny kontroler, który będzie miał w sobie tylko to co potrzebne.

Co do taktowania to po prostu dać kwarc o mniejszej częstotliwości, albo zastosować wewnętrzny 1MHz.

Warto też zastanowić się nad częstotliwością próbkowania sygnału, czyli częstością wybudzania się kontrolera. Przy niskich temperaturach pomiar może być rzadki, ale kiedy temperatura jest coraz wyższa to sprawdzał bym ją częściej by móc lepiej kontrolować co dzieje się z piecem.

Udostępnij ten post


Link to post
Share on other sites

Problem ze zmniejszeniem częstotliwości taktowania jest taki, że wtedy całość działa wolniej i przez to na dłużej musi sie budzić, zużywając więcej prądu. Czy to będzie więcej niż przy krótszych okresach aktywności z szybszym taktowaniem trudno przewidzieć -- trzeba by to sprawdzić eksperymentalnie.

Udostępnij ten post


Link to post
Share on other sites

Zajmujecie się taktowaniami a nikt nie wykonał podstawowego bilansu energii. Może by zacząć od policzenia ile prądu mamy do dyspozycji przy zadanym rodzaju baterii lub odwrotnie: jakich baterii potrzeba by napędzić przez pół roku dany układ?

Weź spisz sobie jakie układy chcesz/musisz tam wsadzić, wyczytaj z danych katalogowych ile biorą prądu w różnych trybach, zacznij liczyć i kombinować z wypełnieniami cyklu pracy i prądem w stanie uśpienia. Inaczej dostaniesz takie bla bla bla jak powyżej.

Procesory AVR mają statyczny projekt logiki więc możesz je taktować od zera do ich maxa. Max oczywiście zmienia się w zależności od warunków zasilania, sensowne minimum to 32kHz z kwarcu zegarkowego lub 100/128kHz z wewnętrznego generatora RC. Sprawdź ile prądu bierze moduł radiowy podczas nadawania/odbioru/uśpienia, czujnik którego chcesz użyć itd. Zsumuj wszystkie pobory i pomnóż przez 6x30x24 i dostaniesz liczbę mAh które musisz mieć w bateriach na 6 miesięcy działania. Od tego zacznij - to da pojęcie o wielkości baterii i pokaże jak bardzo musisz się starać. Do roboty.

Udostępnij ten post


Link to post
Share on other sites

W tej chwili cały układ pobiera jakieś 120mA...sporo 🙂

Pytanie: jak zmierzyć pobór samego nadajnika? bo gdy podpinam go pod miliamperomierz to odczyt jest takimi skokami ze nic nie da się odczytać, jest jakiś inny sposób?

Udostępnij ten post


Link to post
Share on other sites

W obecnym układzie z kwarcem 16MHz

Nadajnik

pobór prądu ~ 40mA(12V) ~ 9mA(3,5V)

Czujnik temp:

4mA

Atmega: około 80mA

Udostępnij ten post


Link to post
Share on other sites

Nie podawaj nam tu suchych liczb tylko wnioski. Przecież napisałem Ci co dalej. Procesor AVR musiałby chyba pracować z zegarem 100MHz żeby tyle prądu pobierać chyba, że liczysz jakieś diodki i stabilizator.

No ale zakładając procesor 15mA, nadajnik 10mA i czujnik 2mA, masz w sumie 27mA:

27*6*30*24 = 116640mAh = 117Ah

To oznacza, że przy tym poborze prądu musisz dysponować kilkoma akumulatorami samochodowymi, żeby podtrzymać działanie układu przez 6 miesięcy.

A teraz w drugą stronę: masz koszyczek baterii AA o pojemności jakieś 3000mAh i liczysz:

3000/(6*30*24) = 0.7mA

Do takiego średniego prądu musisz zejść żeby miało to szansę działać bez wymiany baterii przez 6 miesięcy. Średniego - to ważne słowo.

Może być tak, że prąd stale pobierany ze źródła będzie wynosił np. 0.1mA lub jeszcze mniej, a co jakiś czas Twój układ będzie się budził i pobierał więcej. A teraz zakładając, że aktywność czyli pomiar i wysłanie danych zajmie 2 sekundy i będziesz mierzył np. raz na 5 minut sam policz ile prądu możesz pobierać (uwzględniając stały upływ 0.1mA) w trakcie 2 sekundowej pracy.

Takie estymacje to podstawa wszelkich projektów. Zabierz się do tego od dobrej strony a nie będziesz pisał tu jak dziecko we mgle. Najlepiej zrób sobie kawałek arkusza kalkulacyjnego gdzie po podstawieniu kilku liczb na poczekaniu będziesz dostawał odpowiedzi np. o wymaganej pojemności baterii. Czekamy na wyniki.

Udostępnij ten post


Link to post
Share on other sites

Dobra przyznaję się - mój błąd. Cały układ bierze aktualnie około 11mA (tak pokazuje miernik ustawiony na zakres 20m: okolice 11.215) chce zejść do około 0.5mA. Tak więc najpierw chciałbym obniżyć taktowanie - zobaczyć do ilu się da zejść, a następnie dobrać tak częstotliwość pomiarów i wejścia w stan uśpienia żeby zmieścić się w wybranej pojemności baterii. Dobrze myślę?

Udostępnij ten post


Link to post
Share on other sites

Takie proste rzeczy robisz w ogóle bez dotykania miernika. Otwierasz dane katalogowe konkretnego procesora (znów ta dokumentacja..) a tam masz wykresy poboru prądu we wszystkich stanach operacyjnych (run, idle, power-down), dla całego zakresu napięć zasilania i wszelkich dopuszczalnych szybkości taktowania. To musi być proces iteracyjny. Dobierasz szybkość procesora nie tylko ze względu na pobór mocy, ale też na wymagania odnośnie wymaganej mocy obliczeniowej - o tym już Koledzy pisali. To zawsze jest handel: coś za coś. Co więcej, możesz procesor wprowadzić w stan najgłębszego uśpienia, ale jeśli nie zapewnisz by wszystkie inne elementy systemu też brały mało, cały wysiłek na nic.

Może zacznij od tego: załóż, że procesor będzie przez 100% czasu stał w stanie idle. W tym trybie pracują normalnie timery, więc możesz zliczać czas i wybudzać się do pomiaru co zadaną liczbę sekund - to wygodne. Załóż sobie jakiś poziom zasilania (lepszy niższy, np. 3V) i znajdź częstotliwość przy której procesor pobiera np. dwa razy mniej niż możesz mu dać. Potem zastanów się, do jakich poziomów mocy możesz zejść z układami zewnętrznymi. Np. jeśli nadajnik lub czujnik nie mają trybów głębokiego uśpienia (gdy pobierają np. 2uA) to będziesz musiał przewidzieć odłączanie im zasilania. I tak po kolei dopasowujesz wszystkie klocki...

Udostępnij ten post


Link to post
Share on other sites

Jeśli mogę coś wtrącić, to przemyśl jeszcze kwestię czujnika. DS18B20 jest bardzo wygodny, ale ma kilka istotnych wad. Po pierwsze ma dosyć wąski zakres temperatur - nie wiem jak ciepły ma być ten piec, ale lepiej się upewnić, czy nie przekroczy zakresu. Drugi problem to czas pomiaru. DS18B20 może pomiar wykonywać nawet 750ms - to potwornie długo, szczególnie że przez ten czas marnujesz energię. Ostatnia sprawa to komunikacja po 1-wire. Wymaga dokładnych timingów, więc pewnie będziesz wykorzystywać kwarc. To oczywiście też oznacza zwiększenie poboru prądu. Jeśli wykorzystasz kwarc 16MHz i nie będziesz wyłączał zegara w trybie uśpienia, stracisz dużo energii. Jak użyjesz np. zegarkowego, to nie wiem, czy uda Ci się 1-wire poprawnie obsłużyć.

Do pomiaru temperatury pieca moża wykorzystać np. termoparę. Jest tania, ma szeroki zakres temperatur pracy, a do pomiaru wystarczy przetwornik A/C. Chociaż oczywiście część analogowa będzie dużo bardziej skomplikowana niż w przypadku DS18B20.

[ Dodano: 11-09-2015, 15:13 ]

Dobra, wycofuję to co napisałem, że termopara jest tania. Ale i tak radziłbym przemyśleć wybór czujnika.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...