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.

atmega 8/ds18b20 - błąd pomiaru temperatury

lewytolewy 23 Maj 2014 16:42 1551 0
  • #1 23 Maj 2014 16:42
    lewytolewy
    Poziom 19  

    Witam koledzy!
    Mam problem z pomiarem temperatury, przeszukałem forum i internet n razy w poszukiwaniu odpowiedzi ale nie natrafiłem na żaden trop. Sądzę, że błąd leży gdzieś w kodzie.
    Wynik pomiaru docelowo jest prezentowany na LCD 2x16.
    Pomiędzy VCC a DQ mam rezystor 4,7k zgodnie z notą DS'a (nie w trybie pasożytniczym)
    Atmega podłączona zgodnie z zasadami jej zasilania odpowiednia filtracja itd dodatkowo zasilanie z zasilacza stabilizowanego więc wszystko powinno grać.
    Taktowanie wewnętrzne 8MHz

    Problem w tym, że gdy DS jest podłączony do atmegi to odczyt jest cały czas 0.0'C
    natomiast gdy odłączę czujnik to pomiar wskazuje -0,1'C
    Nie mam już pomysłu co może być nie tak. Ale wygląda na to, że jakaś komunikacja zachodzi więc coś się dzieje ale nie do końca dobrze. Dodam, że sprawdzałem na dwóch DS'ach nowych ze sklepu i jest taka sama sytuacja.
    Biblioteka dla DS znaleziona gdzieś w internecie. Załączam pliki:

    main:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    aux globals:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    ds18b20.c
    Kod: c
    Zaloguj się, aby zobaczyć kod


    ds18b20.h
    Kod: c
    Zaloguj się, aby zobaczyć kod


    avr_compact.h
    Kod: c
    Zaloguj się, aby zobaczyć kod


    aux_globals
    Kod: c
    Zaloguj się, aby zobaczyć kod


    oraz makefile wygenerowany za pomocą Mfile WinAVR
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 0