Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

DS18B20 po przekroczeniu pewnej temperatury wysyła tylko 85

mkpl 06 Gru 2012 12:37 1467 9
  • #1 06 Gru 2012 12:37
    mkpl
    Poziom 37  

    Witam

    Z racji wolnego dnia postanowiłem jeszcze dokładniej poznać budowę DS18B20 (czasem trzeba sobie co nieco przypomnieć).

    Odpalam program który zawsze działał i tu niespodzianka... DS działa prawnie do 32 stopni a jeśli temperatura przekroczy ten próg bez względu na to co jest wyświetla 85 stopni aż temperatura nie zjedzie poniżej tego progu. Problem dotyczy rozdzielczości 12 bit.

    Dla rozdzielczości 9 bit problem ten pojawia się przy nieco niższej temperaturze.

    Gdzie popełniam błąd? Przy zmianie rozdzielczości pierwsze dwa bajty wysyłam o wartości 00h (zapis Th i Tl) a ostatni wiadomo konfiguracyjny.

    0 9
  • #3 06 Gru 2012 23:15
    mkpl
    Poziom 37  

    Hmm na 3 przewodach jest ok ale to nie oddaje sytuacji bo mam już pociągnięty 3m 2 żyłowy kabel na którym powinien pracować.

    Kwestia tylko dlaczego tylko i wyłącznie powyżej pewnej temp nie działa a tak to jest ok.
    W jakim zakresie mogę poeksperymentować z rezystorem podciągającym?

    0
  • #4 06 Gru 2012 23:25
    LordBlick
    VIP Zasłużony dla elektroda

    Rezystor to sobie daruj na dłuższym przewodzie. Google hint: "Strong pullup during the conversion" - załączaj na czas konwersji tranzystorem zasilanie. Wszystko jest opisane w nocie katalogowej i aplikacyjnej układu, włącznie z poglądowym schematem...

    0
  • #5 06 Gru 2012 23:35
    mkpl
    Poziom 37  

    Sprawdzę choć inni używają DS na przewodach po prarenaście metrów i wszystko jest ok więc z tym powinno zadziałać.

    Mam tylko drobną różnicę względem oryginałów. Mianowicie nie podłączyłem VCC do GND bo stwierdziłem, że to bez sensu. Możliwe że to z tego powodu? w zasadzie różnicy nie widzę wielkiej w układzie (mając na względzie schemat wewnętrzny).

    Czas konwersji mam aż nadto. Odczyt robię co 500ms z rozdzielczością 9 bit

    0
  • #6 07 Gru 2012 01:04
    GSM
    Poziom 25  

    mkpl napisał:
    Kwestia tylko dlaczego tylko i wyłącznie powyżej pewnej temp nie działa a tak to jest ok.

    Gdybyś przeczytał dokumentację, to byś wiedział, że taki problem może się uwydatniać przy podwyższeniu temperatury, jest to nawet ładni wytłumaczone.

    mkpl napisał:
    Mianowicie nie podłączyłem VCC do GND bo stwierdziłem

    No tak, bo po co słuchać się zaleceń producenta. :roll:

    Podmień rezystor podciągający na ~1,5k. Zobacz czy coś się zmieni.

    Pozdrawiam,
    GSM

    0
  • #7 07 Gru 2012 07:20
    94075
    Użytkownik usunął konto  
  • #8 07 Gru 2012 15:48
    mkpl
    Poziom 37  

    Dziwna sprawa. Przed chwila usiadłem nad układem włączam i działa... rozgrzałem do 120 stopni ochłodziłem do -15 i pokazuje poprawnie.

    0
  • #9 08 Gru 2012 22:51
    bolek
    Specjalista - oświetlenie sceniczne

    Bo wczoraj księżyc był w nieco innej fazie.

    Pokaz w ogóle soft, jak nie chcesz zbytnio przerabiać sprzętu to na czas ciszy ustaw linie danych jako wyjście zasilania, a na czas odczytu przełącz na wejście z pull'upem (zakładam że procek da rade)

    0
  • #10 09 Gru 2012 12:11
    mkpl
    Poziom 37  

    Konfig na 9 bit odczyt:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Procedura odczytu:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0