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

DS18B20 zawyża pomiar, czy to możliwe?

Szymon Tarnowski 10 Sty 2011 19:57 8204 25
  • #1 8987458
    Szymon Tarnowski
    Poziom 27  
    Witam
    właśnie uruchamiam urządzenie z powyższym układem. U mnie w domu temperatura powietrza jest ustawiona około 20*C, na biurku pod lampą i blisko komputera może być oczywiście cieplej. Mam kilka sztuk tego układu, dwa z "nowej" serii i jeden "antyk". Żaden z nich nie był nigdy lutowany. Wszystkie 3 sztuki pokazują temperaturę od około 27*C do prawie 29*C. Mam multimetr z sondą temperatury K i on pokazuje około 20*C, próbowałem sondą dotykać obudowy DS18B20 bez zmian, jest nieco więcej niż 20*C ale nie tyle ile pokazuje. Nie jest to błąd arytmetyczny, przykładowo temperatura 27.0625*C to 0x1B2, 27.2500*C to 0x1B5. Czy może dochodzić do "samonagrzewania" czujnika? Zasilam go z 5V (4.952V), a rezystor pull-up ma 4k7, więc ja nie widzę jakiś problemów.

    PS chyba znalazłem błąd, liczba 16bitowa była "źle" sklejana z 2ch 8bitowych, ale to powodowało zaniżanie temperatury !!
    PS2, zmniejszyłem częstotliwość pomiaru z 2s to 10s. Okazuje się że temperatura płaskiej strony czujnika jest ~25*C (i tyle czujnik mierzy), natomiast wypukłej 2-3 stopnie mniej.
  • #2 8987698
    Krauser
    Poziom 26  
    Z opisu wnioskuję, że DS zasilany jest poprzez pin VDD a nie linie danych (pasożytniczo). W związku z tym błąd może być jedynie spowodowany zbyt krótkim czasem oczekiwania na zakończenie konwersji.
  • #3 8988677
    Szymon Tarnowski
    Poziom 27  
    Krauser napisał:
    Z opisu wnioskuję, że DS zasilany jest poprzez pin VDD a nie linie danych (pasożytniczo). W związku z tym błąd może być jedynie spowodowany zbyt krótkim czasem oczekiwania na zakończenie konwersji.
    Czy 30s od ConverT do ReadScratchpad to zbyt mało? Przy pomiarze co 30s i temperaturze powietrza około 21.5, czujnik pokazuje jakieś 23-24*C. Pomiar czujnika jest "dokładny" bo temperatura jego obudowy wynosi jakieś 23-24*C.
  • #4 8988764
    mirekk36
    Poziom 42  
    Może zamiast dochodzić czy zawyża czy nie zawyża? co się dzieje? - pokaż po prostu frgment kodu odpowiedzialny u ciebie za odczyt temperatury i jej konwersję - bo może tu masz nadal błędy?
  • #5 8988951
    Press
    Poziom 24  
    Może masz felerny egzemplarz. Ja kiedyś miałem jeden który pokazywał ponad 80°C przy około 20°C. Inne czujnik pokazywały prawidłowo.
  • #6 8989353
    marekos
    Poziom 16  
    Ja też się spotkałem z problemem zawyżonej temperatury z DS18B20, problemem okazała się gotowa biblioteka obsługi tych układów tylko nie pamiętam skąd ją pobrałem, ale wydaje mi się że jest również ona tutaj gdzieś na forum.

    Wszystkie moje problemy z pracą tych układów się skończyły po zastosowaniu biblioteki z
    http://gandalf.arubi.uni-kl.de/avr_projects/tempsensor/index.html
  • #7 8989368
    mirekk36
    Poziom 42  
    marekos napisał:
    Ja też się spotkałem z problemem zawyżonej temperatury z DS18B20,


    Spotkałeś się z problemem źle napisanego programu a nie z problemem jakiegoś tam zawyrzania temperatury przez czujniki.

    marekos napisał:
    Wszystkie moje problemy z pracą tych układów się skończyły po zastosowaniu biblioteki z .....


    Problemy nie znikają po zastosowaniu tej czy innej biblioteki tylko po prawidłowym napisaniu oprogramowania a najlepiej jeśli się już używa cudzych bibliotek to robić to przynajmniej z pełnym ich zrozumieniem. Bo niestety w necie można znaleźć pełno wręcz setki pseudo bibliotek. Język C to nie Bascom a niestety niektórzy próbują sprowadzić sobie na własny użytek C do poziomu bascoma poprzez szukanie na tzw ślepy traf gotowców tzn gotowych bibliotek, które zadziałają albo nie zadziałają. I zwykle robią się potężne problemy szczególnie gdy się chce kilka takich różnych pseudo bibliotek naraz ożenić we własnym programie nie mając pojęcia co one tak na prawdę "pod spodem" robią.

    Polecam zatem chociaż raz zebrać sobie kilka takich pseudo bibliotek o jakich tu piszesz i na ich podstawie napisać w końcu własną do obsługi DS-ów, wtedy zawsze będzie działać ;)
  • #8 8990698
    marekos
    Poziom 16  
    mirekk36 napisał:
    marekos napisał:
    Ja też się spotkałem z problemem zawyżonej temperatury z DS18B20,


    Spotkałeś się z problemem źle napisanego programu a nie z problemem jakiegoś tam zawyrzania temperatury przez czujniki.


    Tak oczywiście to był problem programowy, a nie sprzętowy tylko ta biblioteka przewija się w co drugim wątku dotyczącym DS18B20 i AVR-GCC na tym forum, dlatego o niej napisałem.


    mirekk36 napisał:
    marekos napisał:
    Wszystkie moje problemy z pracą tych układów się skończyły po zastosowaniu biblioteki z .....


    Problemy nie znikają po zastosowaniu tej czy innej biblioteki tylko po prawidłowym napisaniu oprogramowania a najlepiej jeśli się już używa cudzych bibliotek to robić to przynajmniej z pełnym ich zrozumieniem. Bo niestety w necie można znaleźć pełno wręcz setki pseudo bibliotek. Język C to nie Bascom a niestety niektórzy próbują sprowadzić sobie na własny użytek C do poziomu bascoma poprzez szukanie na tzw ślepy traf gotowców tzn gotowych bibliotek, które zadziałają albo nie zadziałają. I zwykle robią się potężne problemy szczególnie gdy się chce kilka takich różnych pseudo bibliotek naraz ożenić we własnym programie nie mając pojęcia co one tak na prawdę "pod spodem" robią.

    Polecam zatem chociaż raz zebrać sobie kilka takich pseudo bibliotek o jakich tu piszesz i na ich podstawie napisać w końcu własną do obsługi DS-ów, wtedy zawsze będzie działać ;)


    Pisanie bibliotek dla DS18B20 to według mnie jest to zajęcie dla hardcorowców i kaskaderów, bo po co robić "coś" co już zostało zrobione w tym czasie można sobie znaleźć bardziej przyjemne zajęcia.
    Dalej polecam tą bibliotekę z linku którą podałem wyżej, a przy okazji podpowiem również że producent tych układów też udostępnia bibliotekę, która trudno żeby była jakaś trefna czy źle napisana.

    Używając gotowych bibliotek np. takich które udostępnia producenta uważasz że język c sprowadza się do bascom, bo to też gotowiec?
    Mi się wydaje że po to producent udostępnia biblioteki, bo ma w tym pewien plan marketingowy, zamiast pisać bibliotekę na ten układ klient napiszę swoją aplikację i ma gotowe urządzenie przez to wcześniej wejdzie na rynek i wcześniej zacznie sprzedaż, więcej zarobi, a producent więcej sprzeda układów.

    ps. W Bascomie obsługa układów DS18B20 działa zawsze dobrze.
  • #9 8990763
    Szymon Tarnowski
    Poziom 27  
    mirekk36 napisał:
    Może zamiast dochodzić czy zawyża czy nie zawyża? co się dzieje?

    No to może ja opisze objawy:
    Temperatura powietrza 21*C, temperatura obudowy DS18B20 około 25*C, wynik pomiaru ok 25*C.
    Układ:
    Zasilanie 5V, rezystor 4k7, częstotliwość pomiaru (i realna komunikacji) 30sek.

    Wyczytałem w sieci że to jest normalne że czujnik się grzeje jak się zbyt często wykonuje pomiar (nie sam ReadScratchpad tylko ConverT), ale jednocześnie że przy pomiarze co ok 10sek nie powinno być problemu. Proszę sobie wpisać w googlach DS18B20 selfheating. Osobiście już używałem tych układów 4 lata temu i nie było takiego objawu, być może kiedyś nie był on tak wyraźny.
  • #10 8990786
    mirekk36
    Poziom 42  
    marekos --> a tam zaraz dla harcorowców i kaskaderów ;) .... toż pisałem ci wyraźnie, że nie trzeba zaraz pisać samemu od nowa ale przynajmniej chociaż RAZ zapoznać się od podstaw z tym jak to działa i ew na bazie jakiejś biblioteki wyprowadzić swoją własną ;) ... no takie minimum wysiłku to już nie hardcore.

    A przy okazji o jakim ty chwycie marketingowym piszesz biorąc pod uwagę np GCC ;) ?

    A to że producent poleca to nie oznacza, żeby była trefna, producent pokazuje dzięki temu krok po kroku jak można się tym posługiwać pisząc coś na własny użytek albo można wręcz z tego skorzystać.

    marekos napisał:
    ps. W Bascomie obsługa układów DS18B20 działa zawsze dobrze.

    hyhyhy no to mi się podoba ;) można z tego wprost wywnioskować, że w C nie zawsze działa dobrze a zatem porzućmy C w kąt i dawaj, wszyscy przesiadamy się na Bascoma ;) huuraaaaa
  • #11 8991400
    marekos
    Poziom 16  
    Szymon Tarnowski napisał:
    mirekk36 napisał:
    Może zamiast dochodzić czy zawyża czy nie zawyża? co się dzieje?

    No to może ja opisze objawy:
    Temperatura powietrza 21*C, temperatura obudowy DS18B20 około 25*C, wynik pomiaru ok 25*C.
    Układ:
    Zasilanie 5V, rezystor 4k7, częstotliwość pomiaru (i realna komunikacji) 30sek.

    Wyczytałem w sieci że to jest normalne że czujnik się grzeje jak się zbyt często wykonuje pomiar (nie sam ReadScratchpad tylko ConverT), ale jednocześnie że przy pomiarze co ok 10sek nie powinno być problemu. Proszę sobie wpisać w googlach DS18B20 selfheating. Osobiście już używałem tych układów 4 lata temu i nie było takiego objawu, być może kiedyś nie był on tak wyraźny.


    Również to wyczytałem na sieci że czujniki jak robią często pomiary to się grzeją i zawyżają tylko ja uważam że jest to nie prawda chyba że dotyczy to "podróbek", też gdzieś czytałem że bywają. Ja po dograniu sprawy z DS18b20 nie zauważyłem żeby zawyżały temperaturę, a pomiary w tym konkretnym przypadku o którym piszę robię z największą rozdzielczością i co 1 sekundę.
    Pokaż źródła to może coś spróbuje pomóc.

    mirekk36 napisał:
    marekos --> a tam zaraz dla harcorowców i kaskaderów Wink .... toż pisałem ci wyraźnie, że nie trzeba zaraz pisać samemu od nowa ale przynajmniej chociaż RAZ zapoznać się od podstaw z tym jak to działa i ew na bazie jakiejś biblioteki wyprowadzić swoją własną Wink ... no takie minimum wysiłku to już nie hardcore.


    Zgadzam się w 100% należy zawsze rozpoznać temat nad który się pracuje żeby uodpornić układ na wszystkie możliwe przypadki i stany i żeby w przyszłości nie było niespodzianek, zastosowanie gotowej biblioteki właściwie wykreśla ten etap projektu, a to może być brzemienne w skutkach.


    mirekk36 napisał:
    A przy okazji o jakim ty chwycie marketingowym piszesz biorąc pod uwagę np GCC


    Nie miałem na myśli GCC, tylko fizyczne układy sprzedawane w sklepach elektronicznych, a czy GCC ma producenta?
    Powszechną praktyką producentów układów scalonych jest udostępnianie bibliotek programistyczny żeby skrócić czas wprowadzania nowego produktu na rynek. Trudno żeby z tych bibliotek nie korzystać bo są na pewno testowane (w końcu producent też swoje układy testuje) i prawdopodobnie tych bibliotek lepiej się nie napisze.
    Ostatnio "bawiłem" się takim procesorem MPC 8308 bardzo fajny, Freescale udostępnia do nie go sterowniki do wszystkich urządzeń peryferyjnych, można samemu pisać oczywiście, ale ja sobie nie wyobrażam za nic pisać sterownik na te MACi gigabitowe w tym układzie.

    mirekk36 napisał:
    hyhyhy no to mi się podoba Wink można z tego wprost wywnioskować, że w C nie zawsze działa dobrze a zatem porzućmy C w kąt i dawaj, wszyscy przesiadamy się na Bascoma Wink huuraaaaa


    A czemu nie w tym przypadku, siedzieć kombinować z c, a jak nie działoło tak nie działa i zmuszać się żeby zrobić to w c tak tylko dla idei bo gcc jest lepsze od bascoma to chyba nieporozumienie. Jak to ma być zwykły termometr i brak zaawansowanych funkcji to co kod wynikowy z bascoma jest be. Na pewno jest gorszy od tego z gcc, ale jak zajmie 2kB flasha i 100B ramu więcej to czy go to od razu dyskwalifikuje, dzisiaj flash i ram jest tani.
    Jest jeszcze taka możliwość że autor tego tematu na tym przykładzie próbuje rozpoznać i nauczyć się pisania w c i dlatego bascom opdada.
  • #12 8991454
    mirekk36
    Poziom 42  
    marekos --> oczywiście nie było broń Boże moim zamiarem sprzeczanie się który język lepszy bo to bez sensu. Ja uważam, że każdy znajdzie swoje zastosowania i swoich zwolenników.

    Zresztą każdy z języków programowania jest tylko tak dobry jak programista, który nim włada ;)
  • #13 8991743
    tmf
    VIP Zasłużony dla elektroda
    mirekk36 napisał:

    Zresztą każdy z języków programowania jest tylko tak dobry jak programista, który nim włada ;)


    I tu jest właśnie sedno problemu. Co z tego, że biblioteka BASCOMa jest doskonale napisana i świetnie działa, jeśli korzysta z niej ktoś zupełnie zielony i sknoci program? Obsługa 1-wire jest tak banalna, że mogę się spokojnie założyć o cokolwiek, że ktoś kto ma z tym problem, nawet posiadając doskonałą bibliotekę sknoci resztę.
    A ta "biblioteka" w C do obsługi DS, która pojawia się stosunkowo często na elektorodzie to knot jakich mało. Jak widać jednak knoty mają wielką siłę przebicia :)
    A teraz ad meritum - co do grzania. Każdy termometr ma selfheating, ale to o ile się zagrzeje zależy nie tylko od częstości odczytów, ale także od otoczenia. W stojącym powietrzu, czy inaczej zaizolowany, będzie się podgrzewał mocno, w przewiewnej atmosferze, ten efekt będzie mały. Nigdy z tym problemów raczej nie miałem, chociaż zawyżenie o 0,1-0,2 stopnia się zdarza. Efekt ten można ograniczyć poprzez zwiększenie wartości pull upa (o ile to możliwe), zmniejszenie częstości odczytu i przede wszystkim obniżenie zasilania układu. DS działa poprawnie przy napięciu znacznie niższym niż 5V, dzięki czemu prawie o 50% można zredukować wydzielaną w nim moc.
    Warto też pamiętać, że grzanie się może być spowodowane innym ciepłym elementem w otoczeniu, przewodnictwem przez metalowe wyprowadzenia (to ma ogromne znaczenie). Z ciekawostek - z pewnej odległości nawet promieniowanie IR emitowane np. przez dłoń zawyża pomiar nawet o 0,4 stopnia, a czasami nawet więcej.
  • #14 8991973
    mirekk36
    Poziom 42  
    tmf napisał:
    mirekk36 napisał:

    Zresztą każdy z języków programowania jest tylko tak dobry jak programista, który nim włada ;)


    I tu jest właśnie sedno problemu. Co z tego, że biblioteka BASCOMa jest doskonale napisana i świetnie działa, jeśli korzysta z niej ktoś zupełnie zielony i sknoci program? .


    No zgadzam się, do tego mniej więcej sprowadza się to powiedzenie. Bo posługiwanie się gotowcem i to jeszcze bez zrozumienia nawet teoretycznie podstaw "jak to działa" co w Bascomie jest niemożliwe bo człowiek dostaje gotowca w zapieczętowanym pudełku i wydaje mu się, przez to że już nic więcej nie potrzeba. Tymczasem jedne z częstszych tematów to właśnie pytania jak w Bascomie zrbić konwersję temperatury ? ;) A jak nawet ktoś mu na forum poda gotowca jak - to i tak później w kolejnym własnym programie już np na kilka czujnków znowu ZONK ??? ....... i tak to się ciągnie aż w końcu ktoś nie poczuje wewnętrznej potrzeby aby zobaczyć jak to się robi od środka - np w C ;)

    Z drugiej strony jeśli ktoś bardzo amatorsko i czysto hobbystycznie się zajmuje programowaniem i potrzebuje odczyt z 1 czujnika to pewnie że mu i Bascom jakoś wystarczy o ile nie zje miejsca w pamięci Flash ;)
  • #15 8992929
    Szymon Tarnowski
    Poziom 27  
    tmf napisał:
    Z ciekawostek - z pewnej odległości nawet promieniowanie IR emitowane np. przez dłoń zawyża pomiar nawet o 0,4 stopnia, a czasami nawet więcej.
    U mnie "wykrywało" lampkę halogenową na biurkiem ;)
    marekos napisał:
    Również to wyczytałem na sieci że czujniki jak robią często pomiary to się grzeją i zawyżają tylko ja uważam że jest to nie prawda chyba że dotyczy to "podróbek", też gdzieś czytałem że bywają.
    Moje układy pochodzą od sprzedawcy, ale próbowałem też oryginalnej sztuki od Dallasa którą dostałem jako sample. Podejrzewam też problemy z zasilaniem, może mam jakieś zakłócenia i one wpływają na czujnik, jak tylko rozwiążę inne problemy w projekcie to będę musiał do tego wrócić, na razie wystarcza że "coś" mierzy i to coś się zależy od temperatury.
  • #16 8993823
    asembler
    Poziom 32  
    Tak się niekiedy dzieje jak przez przypadek upalisz DS-a źle podłączając do zasilania. On pada ale nie do końca. Nie umiem tego wytłumaczyc pewnie pada dioda w strukturze.
    Wtedy aby takim DS mierzyć można tylko pasozytniczo w przy zasilaniu "normalnym" pobiera zbyt duzy prąd i stąd te przekłamania.
    Zmierz pobor prądu podczas pracy i w uśpieniu dowiesz sie czy czasem nie upalony w podobny sposób. Mam kilka takich na stanie.
    Gdzieś czytałem że zbyt częste pomiary też mogą doprowadzać do tego zjawiska w końcu to aż 5mW :-)
    Tutaj chyba to nie w chodzi w grę aczkolwiek bez kodu trudno powiedzieć.
    Ale to takie nocne gdybanie.
  • #17 8996504
    Szymon Tarnowski
    Poziom 27  
    asembler napisał:
    Tak się niekiedy dzieje jak przez przypadek upalisz DS-a źle podłączając do zasilania. On pada ale nie do końca. Nie umiem tego wytłumaczyc pewnie pada dioda w strukturze.
    Jak na mój gust to dobre wyjaśnienieni, Niestety mam nowe sztuki, wkładam w podstawkę goldpin i od razu się komunikują więc zakładam że dobrze je wkładam. Mierzyłem miernikiem pobór prądu, w stanie jałowym jest tak mały że multimetr ustawiony na 100uA nie pokazuje nic poza szumami (zapewne "część" prądu jest pobierana pasożytniczo z magistrali).

    asembler napisał:
    Gdzieś czytałem że zbyt częste pomiary też mogą doprowadzać do tego zjawiska w końcu to aż 5mW :-)
    5mW ale rezystancja cieplna TO92 jest bardzo duża.
  • #18 8997008
    xury
    Specjalista automatyka domowa
    A ja mam takie pytanie: Czy ktoś może wie jaka jest zależność zawyżania temperatury czujnika jeśli jest on na zewnątrz i w słońcu? A jak nie to może dałoby się jakoś zmierzyć energię słoneczną na np. fotorezystorze mieszczonym obok czujnika i obliczyć o jaką wartość jest pomiar zawyżony ?
  • #19 9000567
    Krauser
    Poziom 26  
    Problem jest skomplikowany jako przykład można dać umieszczenie czujnika na czarnym lub białym tle. Oświetlenie nie ma nic do rzeczy bo temperatura będzie zależeć od energii pochłoniętej przez obiekt umieszczony w pobliżu czujnika. Jedynym słusznym wyjściem wydaje się umieszczenie czujnika w wentylowanej komorze tak jak to się robi przy pomiarach meteorologicznych. Pytanie czy warto?
  • #20 9011993
    Szymon Tarnowski
    Poziom 27  
    Zamontowałem urządzenie w obudowę żeby dać do wstępnych testów u klienta. Czujnik jest osłonięty od zewnętrznych źródeł. Zaraz po włączeniu zasilania daje jakieś 18-19*C, a po pół godzinie temperatura samoistnie dochodzi do 30*C. Zapewne za część problemów odpowiada grzanie się elektroniki, jednak czujniki przy dotyku są wyraźnie, ciepłe a nawet cieplejsze od innych elementów wokół. Jest to dla mnie conajmniej dziwne bo dokonuję pomiaru co 30s.
  • #21 9012672
    LordBlick
    VIP Zasłużony dla elektroda
    1. Sprawdź napięcie zasilania na tym układzie, możesz go zasilać nawet od 3V.
    2. Wadliwie napisana obsługa tego układu też może dać się we znaki - np gdy jest wymuszony stan wysoki na wyjściu, podczas gdy układ akurat podaje niski... Generalnie oprogramowanie powinno przełączać pomiędzy stanem niskim, a stanem podciągnięcia, czyli operując na PORTx i DDRx. W asemblerze to tak leci:
    ; Zmiana na stan niski
    	cbi ONE_WIRE_PORT, ONE_WIRE_BIT
    	sbi ONE_WIRE_PORT-1, ONE_WIRE_BIT ; DDR
    ; Zmiana na stan podciągnięcia
    	cbi ONE_WIRE_PORT-1, ONE_WIRE_BIT ; DDR
    	sbi ONE_WIRE_PORT, ONE_WIRE_BIT
  • #22 9014007
    Szymon Tarnowski
    Poziom 27  
    Light-I napisał:
    1. Sprawdź napięcie zasilania na tym układzie, możesz go zasilać nawet od 3V.
    Tyle że musiałem przerobić kawałek układu, odpada.
    Light-I napisał:
    2. Wadliwie napisana obsługa tego układu też może dać się we znaki - np gdy jest wymuszony stan wysoki na wyjściu, podczas gdy układ akurat podaje niski... Generalnie oprogramowanie powinno przełączać pomiędzy stanem niskim, a stanem podciągnięcia, czyli operując na PORTx i DDRx.
    I dokładnie tak mam to zrobione, tyle że wstawką asemblerową linkowaną do projektu w języku C dla procesora microchip. Port ma "wymuszone" ustawienie 0, a ja zmieniam kierunkiem portu jego stan (rejestrem TRIS).
  • #23 9134561
    Szymon Tarnowski
    Poziom 27  
    Wykonałem wiele prób przy użyciu różnych czasów impulsów komunikacyjnych (specyfikacja podaje dość duże możliwe zakresy), niestety bez efektu. Próbowałem dokładać różne opóźnienia między impulsami bez efektu. Również w trybie parasite pojawia się zawyżanie wyniku. Najlepsze wyniki jaki miałem to temperatura 22.5-23* przy 21.5*C w pokoju. Czujnik jest osłonięty przed padaniem promieni światła.
  • #24 9135405
    medicb
    Poziom 28  
    Spotkalem się też z tym problemem. Czujnik który spoczywa ciągle w tym samym miejscu i jego temperatura mierzona pirometrem wynosi 22`C po włączeniu zasilania osiąga średnio ok 22,9`C. Czyli ok 1`C blędu i zawsze w górę. Program jest napisany w bascomie, nigdy nie szukałem przyczyny bo błąd 1`C mi nie przeszkadzał. Od tamtej pory zawsze w eepromie mam zarezerwowaną zmienną dla korekty pomiaru.
  • #25 9252130
    janbernat
    Poziom 38  
    Może niezupełnie na temat.
    Ale jest jeszcze paskudniej niż opisał to asembler.
    Przy dwóch czujnikach- jeśli oba są nie "do końca" upalone po odwrotnym włożeniu do układu po prawidłowym włożeniu działa jeden z nich.
    Nie oba- tylko jeden.
    Ale tylko przy poleceniu pomiaru temperatury.
    Poza tym wszystko działa.
    Ale po włożeniu do układu czujnika nieuszkodzonego i uszkodzonego- działają oba.
    A pomylić się łatwo- i o kłopot potem też.
    Mocne postanowienie- bez okularów nie robię.
  • #26 9261367
    Szymon Tarnowski
    Poziom 27  
    To ja podzielę się jeszcze swoimi ostatnimi spostrzeżeniami. Zbudowałem analogiczny układ na nieco innym typie procesora (ale z tej samej rodziny i tej samej klasy) i na tym samym kodzie (tzn napisałem program testowy kompatybilny z oboma procesorami zawierający tylko obsługę 1wire i wysyłanie komunikatów tekstowych portem szeregowym). Moje ździwienie ale nie ma błędu pomiarowego, temperatura jest odczytywana prawie idealnie (bo nie mam lepszego termometru niż 0.1*C). Różnice między układami dotyczą innego interfejsu 232 zamiast 485 i zamontowanych różnych układów które nie są aktywne w danej chwili więc nie powinny wpływać na pomiary. Układ podstawowy w który powstają błędny ma chyba 5x100nF i 1x100uF na zasilaniu a ten gdzie nie ma błędów ma tylko 3x100nF oraz układ MAX232 który potencjalnie mógłby generować jakieś zakłócenia.
REKLAMA