Så vitt jag vet så arbetar 18S20 bara i °C. Jag antar att det är 85°F som är uppmätt värde. Konverteringen måste isåfall göras i mjukvaran, helt i onödan
Antagligen för att den inte hann läsa av korrekt.
När tiden ändrades till 700ms avläsning så gick det betydligt bättre.
3 givare inkopplade nu, alla ligger inom 0,56 graders skillnad.
Men jag har fortfarande inte hittat nåt hur man får igång det under windows XP
Innan DS18?20 är klar med sin första temperaturavläsning ligger värdet 85 C lagrat i minnet. En temperaturavläsning kan ta upp till ca 700 ms. Därför måste man vänta minst den tiden från att man har startat avläsningen till att man läser av värdet från DS18?20:an. Tiden som en avläsning tar kan man minska i DS18B20 genom att ställa ner upplösningen något.
Kör du med extern strömmatning av en DS18?20 så kan du polla den för att få reda på när avläsningen är klar. Då slipper du chansa att avläsningen är klar. Gör då något sådant här:
Reset
Skicka 0xCC - Om du bara har en 1-wire-grej dvs. Annars får du välja den genom serienummret
Skicka 0x44 - Startar avläsningen
Vänta så länge du läser en 0:a
När du läser en 1:a är avläsningen klar.
Reset
Skicka 0xCC (el liknande)
Skicka 0xBE - Returnerar temperaturen lagrad i minnet
(Det här gäller för DS18S20, men borde fungera nästan exakt lika dant på t ex DS18B20.)
lite letande efter rätt mjukvara ( inte alla versioner vill fungera)
och mitt projekt verkar gå i hamn.
Tur man har vänner som kan PHP
Så här presenteras resultatet nu i min lilla LCD display LÄNK
Har man många sensorer, som jag kommer ha, så tar det väldigt lång tid att läsa av allt på en gång. 6*700ms=4,2s.. Jag kommer lagra alla ROM-ID i en variabel och anropa en sensor i taget var 10:e sekund.