Pracuję nad systemem sterowania ogrzewaniem w moim domu, ale mam problemy z odczytem czujnika temperatury wyższym niż się spodziewam.
Mam klon 5 V Arduino Mini Pro podłączony do modułu przekaźnika, wyświetlacz HD47780 i moduł Tiny RTC z dołączonym DS18B20.
DS18B20 jest zasilany z 5 V Vcc zastosowanego do modułu Tiny RTC zamiast zużywania pasożytniczej energii na linii DQ (ponieważ nie byłem pewien, czy biblioteki Onewire obsługują ten tryb pracy), a arkusz danych DS18B20 mówi, że Vcc może być pomiędzy 3,0v i 5,5v. Zmierzyłem regulowaną moc z Mini Pro na 5.2v.
Porównuję temperaturę z DS z istniejącym termostatem pokojowym (bimetalicznym), biurkowym monitorem temperatury RS z dwoma czujnikami, małym „termohigrometrem” i bimetalicznym termometrem lodówkowym (w górnej części jego temperatury zakres) † . Odczyt z DS jest zawsze o około 1-2 stopnie wyższy niż odczyt z innych czujników, które znajdują się w pewnym stopniu od siebie.
† Nie faktyczny, ale coś podobnego.
Czytając różne fora, słyszałem, że czujniki te są dość dokładne, ale mogą cierpieć z powodu miejscowego nagrzewania się komponentów znajdujących się w pobliżu, więc przesunąłem czujnik na kabel o długości 20 cm i umieściłem go z dala od reszty elektroniki. To nie miało znaczenia.
Przeczytałem wtedy, że DS może stać się samonagrzewający, jeśli będzie zasilany zbyt wysokim napięciem Vcc, więc dodałem czerwoną diodę LED o spadku 1,7 V i zmierzyłem nowe napięcie na DS jako 3,5 V, ale ponownie, po odczekaniu na temperatury, by ustabilizować się ponownie, nie miało to znaczenia.
Czy ktoś może zasugerować, dlaczego DS może czytać wysoko i co mogę zrobić, aby temu zapobiec?