logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[PicBasicPro] Jak wydłużyć czas odczytywania z 18b20

marekgr1 01 Wrz 2011 22:32 2240 6
REKLAMA
  • #1 9886699
    marekgr1
    Poziom 18  
    Posty: 447
    Pomógł: 5
    Ocena: 39
    Witam
    Wykonałem projekt ze stronki http://www.ivica-novakovic.from.hr/Nokia%20Lcd%20Termometar.htm Przy zaprogramowaniu procesora wsadem podanym na tej stronce następuje częsty odczyt temperatury (szybko reaguje czujnik na zmianę temp. według mnie ok 1-3sek) co zatem idzie szybko się zużywa bateria. Chciałbym ażeby odczyt z czujnika 18B20 był co 5min. Czy da się zmienić w programie ten parametr (nie mam pojęcia gdzie to zrobić i czy w ogóle da to się zrobić) . W załączniku zamieszczam źródło napisane według autora projektu w PicBasicPro.
    Załączniki:
    • TempLcd12F675-Ds18B20.rar (2.64 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 9894801
    adamwesola
    Poziom 24  
    Posty: 499
    Pomógł: 71
    Ocena: 22
    W programie jest linijka : nap 6 ' sleep 1,152 sec.
    Prawdopodobnie tu jest możliwość zmiany, poeksperymentuj z rożnymi wartościami, możliwe ze więcej niż 7 nie przejdzie.
  • REKLAMA
  • REKLAMA
  • #4 10917987
    wzk
    Poziom 19  
    Posty: 259
    Pomógł: 22
    Ocena: 25
    Czy na pewno PIC zżera bateryjki? A może jednak wyświetlacz.
    W załączniku wsad, w którym pod adresem 0x1AC możesz zmieniać czas uśpienia od ponad 2 s (zawartość komórki 30FF) do około 10 minut (zawartość komórki 3000). Modyfikować najlepiej w programie obsługującym programator.
    Załączniki:
    • Nokia18B20.zip (2.29 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #5 10925164
    marekgr1
    Poziom 18  
    Posty: 447
    Pomógł: 5
    Ocena: 39
    Ok oto mi chodziło, tylko dziwnie odczytuje temp. Sprawdziłem działanie tego programu w Proteusie i odlicza czas uśpienia tak jakby po każdej zmianie temp. i po kolei ją wyświetla (może nie każdą). Np. gdy temp. się zmienia tzn. rośnie lub maleje w tym czasie uśpienia to ona jest później wyświetlana a nie temp. aktualna po upływie tego czasu. (tak jakby pamiętał temp.która się zmieniała w czasie uśpienia czyli i tak musiał ją odczytać wcześniej, a więc zużyć prądu. Obym się mylił ale przypadkiem kolega nie zrobił czas uśpienia na zasadzie wyświetlania tylko na wyświetlaczu a nie odczytu z czujnika. Może się mylę i w tym programie tak działa. Prosiłbym o wyjaśnienie bo jak zarzucę do Pica to nie sprawdzę i tak nie będę na dobrą sprawę wiedział czy właściwie mi wskazuje.
  • Pomocny post
    #6 10931558
    wzk
    Poziom 19  
    Posty: 259
    Pomógł: 22
    Ocena: 25
    Są tam trzy zmiany programu:
    1. Możliwość kalibracji oscylatora poprzez zmianę zawartości rejestru OSCAL (około ±1%) - dana pod adresem 3FF (teraz minimalna częstotliwość).
    2. Zmiana preskalera WDT - dana 3007 pod adresem 1AE. Daje to dwukrotne wydłużenie okresu zadziałania wybudzenia mikrokontrolera (teraz około 2,3 s). Oryginalna wartość pod adresem 1AE była równa 3006. Tę zmianę proponował Kolega kilka postów wyżej.
    3. Wprowadzenie pętli, której jest ponawiane uśpienie - maksymalnie 256 razy.

    Dziwne zachowanie wskazań może wynikać tylko z faktu, że po zleceniu konwersji temperatury czujnikowi mikrokontroler odczytuje dane z czujnika nie po około 1 s a po 10 minutach. Być może wskazania nie będą irytujące ale na więcej zmian programu nie pozwala jego objętość.
    To tyle info o działaniu programu w kilku słowach.

Podsumowanie tematu

✨ W dyskusji poruszono problem wydłużenia czasu odczytu temperatury z czujnika DS18B20 w projekcie termometru LCD. Użytkownik zauważył, że częste odczyty powodują szybkie zużycie baterii i chciałby zmienić interwał odczytu na 5 minut. Odpowiedzi sugerują modyfikacje w kodzie, w tym zmianę wartości w linijce "nap" oraz w rejestrze OSCAL, a także preskalera WDT, co pozwala na wydłużenie czasu uśpienia mikrokontrolera. Użytkownik potwierdził, że udało mu się wydłużyć czas o 1,5 sekundy, ale nadal występują problemy z odczytem temperatury. Ostatecznie, po wprowadzeniu sugerowanych zmian, temat został uznany za rozwiązany.
Wygenerowane przez model językowy.
REKLAMA