Мой DS18B20 читает высоко. Как я могу заставить его вернуть правильную температуру?

Я работаю над системой управления отоплением для своего дома, но имею проблемы с показаниями датчика температуры выше, чем я ожидаю.

У меня есть клон VV Arduino Mini Pro, подключенный к релейному модулю, дисплею HD47780 и модулю Tiny RTC с подключенным DS18B20.

DS18B20 питается от 5v Vcc, примененного к модулю Tiny RTC, вместо использования паразитной мощности на линии DQ (поскольку я не был уверен, поддерживают ли библиотеки Onewire этот режим работы) и DS18B20 datasheet говорит, что Vcc может быть между 3.0v и 5.5v. Я измерил регулируемую мощность от Mini Pro до 5.2в.

Я сравниваю температуру от DS с существующим комнатным термостатом (биметаллическим), монитором температуры рабочего стола RS с двумя датчиками, небольшим биметаллический термометр для холодильников (в верхней четверти его температурного диапазона) â € . Считывание из DS всегда на 1-2 градуса выше, чем показания других датчиков, которые находятся в пределах друг от друга.

â € Не настоящий, но что-то подобное.

Чтение различных форумов Я слышал, что эти датчики довольно точны, но могут испытывать локальный нагрев от компонентов рядом с ними, поэтому я переместил датчик на 20 см кабель и расположил его подальше от остальной электроники. Это не имело значения.

Затем я прочитал, что DS может стать самонагревом, если он снабжен слишком высоким напряжением Vcc, поэтому я добавил красный светодиод с падением на 1.7v и измерил новое напряжение по DS как 3.5v, но снова, после ожидая стабилизации температуры еще раз, это не имело значения.

Может кто подскажет, почему DS может читать высоко, и что я могу сделать, чтобы это предотвратить?

9 голосов | спросил Mark Booth 18 MaramTue, 18 Mar 2014 04:21:02 +04002014-03-18T04:21:02+04:0004 2014, 04:21:02

4 ответа


10

Я поставил много датчиков DS18B20 на месте в разных сенсорных узлах - может быть, 50 или около того. Я немного узнал о результатах, полученных от них. Я знаю, что вы изолировали некоторые из них, поскольку не являетесь причиной, но хорошо подтвердить, что это проблемы.

Я не знаю, используете ли вы Цельсию или Фаренгейта, поэтому степень проблемы не ясна.

Локализованное нагревание

Я не думаю об Arduino как о «горячем» чипе, но, поставив DS18B20 в корпус с Arduino и LCD, мне показалось, что показания на 2-3 ° C выше, чем ожидалось.

Перемещение его за пределы корпуса исправлено.

Нагрев от высоких Vcc /частотных преобразований

Если вы поставляете чип с высокой Vcc и выполняете частое преобразование (то есть как можно чаще), чип разогревается. Я видел это увеличение показаний на 1-2 ° C.

Я не видел проблему с высоким Vcc в одиночку, но я управляю большинством DS18B20 в паразитном режиме и конвертируюсь не чаще одного раза каждые 10 секунд. Те, которые работают в активном режиме, обычно отключены, когда они не используются.

OneWire и DallasTemperature поддерживают паразитный режим.

Не все температурные датчики созданы равными

У меня было несколько датчиков температуры, прежде чем я начал играть с DS18B20. Почти без исключения, эти недочитанные. Большинство из них основаны на термисторах, а калибровка плохая. Я думал, что DS18B20 уже читал, но когда я использовал хорошую термопару и метр, я мог бы подтвердить, что они были правильными.

Речь шла о том, чтобы научиться доверять DS18B20.

Тепло, проведенное вдоль провода

Если у вас есть датчики на проводе, провод проводит удивительное количество тепла. Это может быть проблемой при прокладке проводки по трубам.

Fake DS18B20

Эти датчики очень популярны, и это, похоже, вызвало появление подделок. У меня есть серия водонепроницаемых датчиков из нержавеющей стали, которые перечитаны и тайминг закончился. Они работали с библиотекой OneWire, но не с DS2482 OneWire. Я слышал, что обычные корпуса TO-92 тоже поддельные.

ответил Cybergibbons 18 MarpmTue, 18 Mar 2014 12:48:53 +04002014-03-18T12:48:53+04:0012 2014, 12:48:53
1

Возможно, вы захотите откалибровать датчик.

Что он читает при погружении в кипящую воду (при условии уровня моря)? 102,5 ° C? Это даст вам высокотемпературную калибровку -2,5 ° C.

Очевидно, лучше откалибровать температуру, которую вы ожидаете от меня. Это означает доверие (или усреднение?) Некоторого измерительного устройства и его калибровку.

ответил Kingsley 28 Jam1000000amThu, 28 Jan 2016 05:53:55 +030016 2016, 05:53:55
1

В моем случае проводка между моим UC и датчиком была слишком короткой и передавала некоторое количество тепла. Я подумал, что сначала это не может быть так, потому что другой датчик температуры сообщает точные темпы на том же расстоянии. Я переместил его в другое место на доске и вуаля!

ответил Jordan Sitkin 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 22:28:12 +0300000000pmTue, 02 Feb 2016 22:28:12 +030016 2016, 22:28:12
1

Я видел смещения в несколько градусов C при использовании DS18B20 на шине 3.3 В, переключившись на стабильную шину 5.0 В, и я получил более разумные значения. (испытывается с паразитной силой и без нее)

ответил NiKiZe 27 Maypm17 2017, 16:52:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132