Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

atmega 8/ds18b20 - błąd pomiaru temperatury

lewytolewy 23 May 2014 16:42 1704 0
  • #1
    lewytolewy
    Level 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:
    Code: c
    Log in, to see the code


    aux globals:
    Code: c
    Log in, to see the code


    ds18b20.c
    Code: c
    Log in, to see the code


    ds18b20.h
    Code: c
    Log in, to see the code


    avr_compact.h
    Code: c
    Log in, to see the code


    aux_globals
    Code: c
    Log in, to see the code


    oraz makefile wygenerowany za pomocą Mfile WinAVR
    Code: c
    Log in, to see the code