Я працюю над системою управління опаленням для свого будинку, але у мене проблеми з читанням датчика температури вище, ніж я очікував.
У мене є 5В Arduino Mini Pro, підключений до релейного модуля, дисплея HD47780 та крихітного модуля RTC, до якого приєднано DS18B20.
DS18B20 живиться від 5v Vcc, застосованого до модуля Tiny RTC, а не від використання паразитарного живлення на лінії DQ (оскільки я не був впевнений, чи підтримують такий режим роботи бібліотеки Onewire), а в аркуші DS18B20 написано, що Vcc може бути між 3.0v та 5.5v. Я виміряв регульовану потужність від міні-Pro в 5,2 В.
Я порівнюю температуру від DS з існуючим кімнатним термостатом (двометалічним), настільним монітором температури з двома датчиками, невеликим «термогігрометром» та двометалевим холодильним термометром (у верхній чверті його температури дальність) † . Зчитування від DS завжди завжди на 1-2 градуси вище, ніж показник від інших датчиків, які знаходяться в межах один від одного.
† Не справжній, а щось подібне.
Читаючи різні форуми, я чув, що ці датчики досить точні, але можуть страждати від локалізованого нагрівання від компонентів поблизу, тому я перемістив датчик на 20-сантиметровий кабель і розташував його далеко від решти електроніки. Це не мало значення.
Потім я прочитав, що DS може перегріватися, якщо він подається з надто високою напругою Vcc, тому додав червоний світлодіод з падінням 1,7 В і виміряв нову напругу над DS як 3,5 В, але знову після очікування на температури для стабілізації ще раз, це не мало значення.
Чи хтось може підказати, чому DS може читати високий рівень і що я можу зробити, щоб цього не допустити?