• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

DS18B20 возвращает то температуру, то -127.

pvvx

Активный участник сообщества
Может он и хотел бы, но у него не получается. Проверено лично.
Это у вас, а судя по отзывам других - это частенько происходит.
Может у вас пайка намотками проводков, а это индуктивность...
Сам ESP8266 глушит себе приемник своими выходами из-за большого тока переключения и скорости этого фронта на GPIO.
Передатчики вещания на телевизор с выхода ESP давно были представлены, а включение аппаратного PWM на GPIO сопровождается глухотой ESP8266 и плюс наличие в той части багов - аппаратный PWM исключен из ПО.
 

pvvx

Активный участник сообщества
Кто сказал, почему вы ему верите?
И даже если это так, а пусть даже греется на 5 градусов(выдумывать то не сложно), то производитель не дурак и это учитывает, калибровка это называется.
Производитель был да сплыл. И это было давно. Теперь это под другой лейбой. Но сама документация самая худшая из всех имеющихся у нового правопреемника - AD.
В продаже есть радиаторы на TO-92 и там заявляют о 60С/W. Если это применить. то за заявленные параметры не вылезает.
Но даташит от DALLAS не содержит никакой информации о условиях снятия приведенных там характеристик. Обычно это означает о представленной липе - рекламе, а не реальности во всех режимах работы датчика.
На 8 бит оцифровки прогрев меньше - время нагрева значительно меньше.

Калибровкой это не обойти. У вас точнейшая диаграмма по времени и среда не меняет хотя-бы влажность?
 

pvvx

Активный участник сообщества
Тут нечего далее разбирать - оппонент фанат Arduino и древнего хлама с заявками "И так сойдет", "Это работает" и подобными без представления любой подтверждающей информации, и вопреки технической документации и физики :)
 

pvvx

Активный участник сообщества
@CodeNameHawk Похоже, я нашел от куда ноги растут! ds18b20-rus.pdf с вписанными сообщениями с 3-мя восклицательными знаками из 2009 года и большими буквами о какой-то гарантии :)

1679196365067.png


Хотя в даташитах от производителей указаны схемы включения с номиналами и о применении никаких линий из проводов для DS18B20 не указано, но подсчитаем, что там рекомендует Геннадий Чернов из 2009 году.

Погонная емкость кабеля utp cat 5 нормирована около 56 пФ/м. У других проводков обычно это больше…

300 метров -> 16800 пФ или 16.8 нФ.

Постоянная времени RC-цепи для 16.8нФ при 3.3В с 3.3кОм = 55.44 мкс.

Рекомендуемое время строба начала слота от мастера – от 1 мкс до (в пределе) 15 мкс. Через менее 15 мкс от начала строба последует ответ от DS18B20, длительностью до 45 мкс.

1679196375039.png

У Геннадия Чернова, после отпускания шины мастером, шина поднимается к 99.2% напряжения питания через 277.2 мкс (постоянная времени его RC цепи 55.44 мкс). За время заряда кабеля уже проходит незамеченным ответ передачи “0” от DS18B20, составляющий до 45 мкс, но считанный через 15 мкс мастером по рекомендациям от производителя...
 

CodeNameHawk

Moderator
Команда форума
pvvx вы все время зачем то приводите описание для паразитного питания, хотя тс описал схему своего подключения.
Если вам недостаточно заявленной точности в один градус, найдите себе другой датчик.
Вы заметили в описании, что номинал резистора рекомендуемый и ни слова о допустимом?
 

v258

New member
DS18B20 - это не термометр, а так, дурной древний чип для Ардуинщиков.
"Древний" и "для Ардуинщиков" - весьма слабо сочетаемые понятия. Ардуине еще и 20 лет нету
Т.е. в момент измерения, почти секунду
В даташите указано время преобразования температуры, а не измерения. Чип там не на арме построен, работает медленно. Саморазогрев датчика возможен при слишком частом обращении к нему, по моему опыту - максимум 0,5-1 градус при обращении каждую секунду. При обращении раз в несколько секунд никакого завышения температуры нет
 

pvvx

Активный участник сообщества
"Древний" и "для Ардуинщиков" - весьма слабо сочетаемые понятия. Ардуине еще и 20 лет нету
В Ардуино используется только отстой из древних чипов, которые девать некуда. Содержание на складах стоит бабок и когда срок превышает - они идут на платки Ардуиншикам.
Или если у производителя какая серия чипов неудачная, то вместо помойки они идут в Ардуино. Другого рынка сбыта для таких чипов нет.
А далее такие кривые и становятся "популярными". Плюс существует такая фича - чем больше ошибок и сложностей у чипа, тем больше вопросов и популярность растет. + многие любят разгадывать загадки. Это и есть "энтузиасты" на которых и строится всё ПО в Arduino.
На нормальные чипы вопросов нет и нет информации в любом источнике, т.к. они работают без проблем и обычно скуплены крупными производителями.
В даташите указано время преобразования температуры, а не измерения. Чип там не на арме построен, работает медленно. Саморазогрев датчика возможен при слишком частом обращении к нему, по моему опыту - максимум 0,5-1 градус при обращении каждую секунду. При обращении раз в несколько секунд никакого завышения температуры нет
Там четко указано - 750 мс при 12 битах. И не важно сколько замеров в секунду, т.к. за это время расчет показывает прогрев до +2.5С в условиях плохого отвода тепла от выводов и отсутствия конвекции.
Но если дуть на чип из пылесоса, то он наверно и не прогреется при любой интенсивности опроса.
 

pvvx

Активный участник сообщества
pvvx вы все время зачем то приводите описание для паразитного питания, хотя тс описал схему своего подключения.
Если вам недостаточно заявленной точности в один градус, найдите себе другой датчик.
Вы заметили в описании, что номинал резистора рекомендуемый и ни слова о допустимом?
Да. Но есть представленный "референс дизайн" производителя и схема с описанием подключения обоих вариантов.
И об отсуствии нормального даташита я уже упоминал. Имеется только рекламный pdf без указания параметров для эксплуатации чипа и условий на которые даны циферки в данных PDF.
И с чего вы взяли " точности в один градус" ? Даже в рекламке указаны другие нормативы.
 

pvvx

Активный участник сообщества
"точности в один градус" при 3-х усреднениях в определенном диапазоне. И есть график с указанием разброса в любом диапазоне более +-2С.
 

v258

New member
Там четко указано - 750 мс при 12 битах
Там НЕ указано, что все 750 мс идет замер температуры, речь идет о преобразовании данных
за это время расчет показывает прогрев до +2.5С в условиях плохого отвода тепла от выводов и отсутствия конвекции.
Сильно подозреваю, что ваши расчеты неверны, т.к. производитель указывает точность 0,5 градуса. При таком бешенном нагреве достичь такой точности нереально
 

pvvx

Активный участник сообщества
pvvx вы все время зачем то приводите описание для паразитного питания, хотя тс описал схему своего подключения.
Разницы тока на ключ транзистора при паразитном или отдельном питании нет.
Как и разницы скорости нарастания фронта GPIO от ESP.
Драйвера шины 1-Wire используют изменяемый от времени ток на шину, дабы исключить выбросы линии и не гнать "убойные импульсы".
Там НЕ указано, что все 750 мс идет замер температуры, речь идет о преобразовании данных
Это как-то влияет на прогрев?
Сильно подозреваю, что ваши расчеты неверны, т.к. производитель указывает точность 0,5 градуса. При таком бешенном нагреве достичь такой точности нереально
Сильнее смотрите график отклонений и подозревайте/прозревайте. Там другие циферки :)
Вам сложно прочитать сноски с указанием, что +-0.5 если 3 замера и математика...

PS: Хотеть не вредно.
 

pvvx

Активный участник сообщества
pvvx вы все время зачем то приводите описание для паразитного питания, хотя тс описал схему своего подключения.
Если вам недостаточно заявленной точности в один градус, найдите себе другой датчик.
Вы заметили в описании, что номинал резистора рекомендуемый и ни слова о допустимом?
Я вам не приказываю и не вынуждаю поставить туда конкретный номинал - ставьте хоть 1 Ом.
Но вы почему-то пытаетесь заставить сделать для вас исследование на конкретных элементах, которые я не использую из-за их некачественой работы.
И обсуждаю только параметры и условия эксплуатации описанные производителем.
Микроскопом тоже получится забивать гвозди...
 

CodeNameHawk

Moderator
Команда форума
Но вы почему-то пытаетесь заставить сделать для вас исследование на конкретных элементах,
Ну это из за того, что вы одкуда то вытащили или выдумали нагрев на 2.5 градуса.
Если не делали экспиремента, то это просто ваши фантазии. Никаких аргументов или проверки в железе, одни домыслы, похоже тут больше нечего обсуждать.

Посмотрим поможет ли тс замена резистора.
Причём его стоит подобрать экспериментально, начав с 4.7 ком постепенно уменьшая номинал, проверяя работоспособность, у меня нижний предел, при котором ещё датчики виделись, чуть ниже одного килоома.
 

CodeNameHawk

Moderator
Команда форума
По коду скетча, после ошибки чтения температуры, ищите по новой датчик (sensor.begin).
 

pvvx

Активный участник сообщества
Ну это из за того, что вы одкуда то вытащили или выдумали нагрев на 2.5 градуса.
Из технической документации.
Если не делали экспиремента, то это просто ваши фантазии. Никаких аргументов или проверки в железе, одни домыслы, похоже тут больше нечего обсуждать.
Ну ваши домыслы безусловно круче. Вы же модератор и ваше право стереть несогласных :)
Особенно ничем не обоснованные рекомендации:
Посмотрим поможет ли тс замена резистора.
Причём его стоит подобрать экспериментально, начав с 4.7 ком постепенно уменьшая номинал, проверяя работоспособность, у меня нижний предел, при котором ещё датчики виделись, чуть ниже одного килоома.
 

pvvx

Активный участник сообщества
Да пофиг. Температура замерена, дальше хоть закипай, данные уже получены, остается их преобразовать
Преобразование 9 бит идет во много раз медленнее преобразования 12 бит. С чего это? C принципа оцифровки аналогового сигнала или сдвигового регистра со скоростью работы в пару сдвигов в десятки мс?
Закипевший чайник у вас сразу принимает окружающую температуру? :)
 

pvvx

Активный участник сообщества
По коду скетча, после ошибки чтения температуры, ищите по новой датчик (sensor.begin).
Проблемы связанные с длинной линией описаны. Сигнал ответа смещается на время "заряда" емкости кабеля и это должно учитываться в "кексе", т.к. определяется автоматически путем анализа задержки выставления "1" после короткого импульса "0". И резисторы тут не при делах. Изменение сопротивлений нужны только для кривописанного ардуинщиками драйвера 1-wire.
 

pvvx

Активный участник сообщества
Могу ещё подкинуть возможных проблем использования кривописанного кода на ESP8266 c 1-wire.

Для работы с 1-wire “ногодрыгом” в ESP8266 должен применяться запрет прерываний. Если он не разбит на время работы одиночных слотов и не превышает 1 мкс, тогда всё будет хорошо с WiFi (но не хорошо с 1-wire – грозит пропусками значений бит и прочей околесицей). Иначе будут нарушения таймингов в работе WiFi. Значения передаваемых timestamp в WiFi имеют шаг в 1 мкс. Бытовухе разрешено иметь джиттер до 4-х мкс между маяками AP.

Но всё это не важно, т.к. тут поддерживается только лозунг “И так сойдет!”. :)
 
Сверху Снизу