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

DS18B20 - niestabilne odczyty temperatury po przyłożeniu do radiatora

kwiatek6324 22 Paź 2006 10:39 1632 7
REKLAMA
  • #1 3140793
    kwiatek6324
    Poziom 11  
    Posty: 99
    Pomógł: 2
    Ocena: 4
    Hi.

    Sklecilem sobie w ramach testow i zabaw termometr z DS18B20,
    i ogolnie mierzy w porzadku poza dziwnymi zachowaniami..

    1. Wskazuje 23,5 stopnia. (co jest mozliwe).
    przykladam do radiatorka...
    kolejno wskazuje: 8, 9,12,16,20,32,38 st...

    Odejmuje od radiatorka
    wskazuje kolejno : 38,37, 32,14,12,11,11,10,10,9,9,9,8,8,8, 23.8

    Ktos wie skad sie to moze brac ??

    Pozdroowka
    Kwiatek
  • REKLAMA
  • #2 3141004
    piterfromwawa
    Poziom 12  
    Posty: 72
    Pomógł: 3
    Ocena: 4
    A kod zrodlowy skad wziales? Z ksiazki czy samemu pisales ?
  • REKLAMA
  • #3 3141031
    kam
    Poziom 12  
    Posty: 19
    Pomógł: 1
    Sprawdzaj sumę kontrolna CRC i po problemie.
  • #4 3141096
    piterfromwawa
    Poziom 12  
    Posty: 72
    Pomógł: 3
    Ocena: 4
    A po co suma kontrolna?
    Przeciez pobieranie temperatury odbywa sie po 1-Wire., a nie na drodze bezprzewodowej, albo po RS..

    ps: zeby nie bylo ze to zly nawyk sprawdzanie CRC, ale kolega nie powinien miec problemow z pobieraniem poprawnej temperatury bez CRC.
    Ja nigdy nie uzywalem CRC i mi dziala nawet bezprzewodowo.
  • #5 3141149
    kwiatek6324
    Poziom 11  
    Posty: 99
    Pomógł: 2
    Ocena: 4
    Hi,
    CRC nie sprawdzam, ale jestem w trakcie dopisywania

    mod wziety z http://pdfserv.maxim-ic.com/en/an/app162.pdf.

    W celu ulatwienia sobie zycia na poczatek obliczanie temperatury
    z dokladnoscia do 0.1 (bit konfiguracyjny na taka wskazuje)
    kod wyglada tak:

    res=temp_msb*256 + temp_lsb;
    res=(float) res/16.0;

    sprintf(str,"TEMP: %2.2f",res);

    Dziwna sprawa jest ze tem z tych niprawidlowych nie spada ponizej 8 ,
    tzn jakby to byl jakis dziwny punkt ;-)

    Pozdr
    AK
  • REKLAMA
  • #6 3141154
    kam
    Poziom 12  
    Posty: 19
    Pomógł: 1
    Przy transmisji 1-wire też mogą wystąpić błędy, po to sie sprawdza CRC żeby wykluczyć ich występowanie.

    W przypadku 1-wire bardzo istotne jest dobre dobranie czasów wiec błędy mogą wystąpić.

    A tak poza CRC to ile dajesz DS-owi na obliczenie temperatury?
    Jaką rozdzielczość ustawiłeś w DS18B20 ? Standardowo jest 12 bitów nie tak jak w DS18S20, DS1820 (tam jest 9 bitów dokładność do 0,5°C). Bo raz mierzy Ci pełne stopnie, później 23,8? Może źle wyświetlasz zmierzoną temperaturę?
  • #7 3337187
    Marcin8051
    Poziom 19  
    Posty: 512
    Pomógł: 6
    Ocena: 13
    akiś czas temu się interesowałem ds18b20 ale porzuciłem projekt i właśnie od niego wracam mam tylko pdf opisuj opisującego naprawianie ds18b20 w przypadku resetu eeprom podobno to się zdarza czy producent juz rozwiązał ten problem czy nadal trzeba to uwzględniać w programie? Załączam lindk do pdf czy ktoś to uwzględnił w programie przydało by się coś pod asm51. https://www.elektroda.pl/rtvforum/topic143787.html#693420
  • REKLAMA
  • #8 3337348
    jacur
    Poziom 32  
    Posty: 1748
    Pomógł: 166
    Ocena: 295
    Bład z DS-ami był tylko w serii B7 reszta działa bez problemów

Podsumowanie tematu

✨ Problem niestabilnych odczytów temperatury z czujnika DS18B20 pojawia się podczas przyłożenia go do radiatora, gdzie wskazania temperatury wahają się od 8°C do 38°C, zamiast stabilnego pomiaru. Dyskusja wskazuje na możliwe przyczyny takich anomalii, w tym błędy transmisji w interfejsie 1-Wire, które można wykryć i wyeliminować poprzez sprawdzanie sumy kontrolnej CRC. Użytkownik korzysta z kodu opartego na aplikacji Maxim (app162.pdf) i mierzy temperaturę z rozdzielczością 0,1°C. Zwrócono uwagę na konieczność odpowiedniego doboru czasów pomiaru oraz ustawienia rozdzielczości (standardowo 12 bitów w DS18B20). Wspomniano również o problemach z resetem EEPROM w starszych seriach DS18B20 (seria B7), które mogą wpływać na stabilność działania, jednak nowsze wersje tego problemu nie mają. Zalecane jest uwzględnienie CRC w kodzie, choć niektórzy użytkownicy uzyskują poprawne odczyty bez tej kontroli.
Wygenerowane przez model językowy.
REKLAMA