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

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

pvvx

Активный участник сообщества
И тутвам повезло, длится уже несколько лет.
Вы говорили о 3-х секундом шаге опроса.
Вот и хотелось бы увидеть разброс или уж пусть усреднённые значения без пропусков за достаточно большой период.
И очень желателен счетчик ошибок транзакций...
А если нет показа, то зачем получать результаты?
А вдруг там все датчики деградировали через какое-то время? Где гарантия, что это не произойдет если не руководствоваться скудной документацией от производителя?
 

CodeNameHawk

Moderator
Команда форума
Вот и хотелось бы увидеть разброс или уж пусть усреднённые значения без пропусков за достаточно большой период.
Так для этого надо делать эксперимент, а ведь вопрос не в точности а в том, что они работают с таким номиналом резистора.
Вести запись каждые три секунды, не мне такого не надо.
Идёт отображение на экране, запись с интервалом от 30 сек до 20 мин, даже усреднения нет смысла делать, за 20 все меняется много раз.
 

pvvx

Активный участник сообщества
И с каких это пор берётся не номинал а максимум?
В моем расчете брались даже не максимальные значения :p
И где учёт полезной работы?
Это кто такая? Он излучает часть энергии в виде радиоволн?
Ползет и греет кого-то трением?

1679341561820.png
Вот у такого корпуса среднее значение теплоотдачи около 3мВт/С. Среднее, а может быть и более или менее, если поставить в замкнутый пластиковый корпус или вообще в пенопласт...
---
1679341591484.png
У такого уже другие параметры, и зависят есть или нет там наполнителя, или какова оставлена длина выводов, внешне жидкость или обдувается и т.д. И доходит до 60С/Вт со спец радиатором. И это круто – 1Вт для TO-92 в естественной конвекции.

Можно поместить и в жидкий азот, но это только опустит рабочую температуру кристалла при максимальной подведенной мощности, но не разницу температуры кристалла и окружения от подведенной мощности.

А у вас нормированный цикл и можно брать среднее значение мощности за время. И на 3 сек можно делить 2.5С на 3, т.к. условия расположения датчика и прочего не оглашены, а в термосе будет накопление...
Или там ещё элементы Пельтье? :)
 

pvvx

Активный участник сообщества
Расчет рассеиваемой мощности выходного каскада на “длинную линию” требует ещё больше параметров. Если излучаемая мощность линии неизвестна и неизвестны её индуктивные и прочие параметры, то рассчитать приблизительно возможно только примерные токи и время заряда этой линии для низкочастотных сигналов. Простейший R-C калькулятор уже показывает чрезмерные для ESP8266 токи GPIO при работе на линию в 300 метров. Прикинуть пределы линии можете сами, зная R-С характеристики кабеля.

Вот вам страница из реальной таблицы.
Посмотреть вложение 13001
Это выборочные данные и они ни о чем не говорят, в смысле - вообще.
Может там 9-ть из 10 отбрасывается по причине ошибок на линии, а остальные просто колбасит от переменного нагрева.

Но главный вопрос у вас не раскрыт - на что влияет изменение сопротивления подтяжки и зачем его менять? Там и зарыто, то, что вам не нравится и вы старательно уводите разговор, прикидываясь непонимающим расчеты по самонагреву. :p
 

pvvx

Активный участник сообщества
Первая часть, от куда ноги растут полностью разгадана. Она возникает от путаницы описаний к драйверам шины 1-wire, максимальным возможностям интерфейса 1-Wiire c параметрами датчиков.

У таблеток-ключей максимальная длина линии нормирована. У драйверов параметры по линии разные. У датчиков – свои ограничения - на длинные линии есть драйверы-усилители-ретрансляторы 1-Wiire.

Вот тут https://voltiq.ru/wiki/onewire-interface-in-arduino/ более корректно описано (не без грам.ошибок), но не путать “Аппаратные аспекты интерфейса” с возможностями датчиков. И в описании к датчику DS18B20 ссылка на левый документ с “хотелками” ныне блокирована.
Но главная причина, почему у некоторых то работает, то нет и фанаты предлагают пользователям танцы с бубном и сопротивлениями - оставим на совести модератора и других известных фанатов. Суть описана ранее и сопоставить причину не сложно. Но это не нравится модератору и фанатам, и не стоит указывать пальцем или тыкать мордочками :) :) :)
В неведении проще... :)
 

pvvx

Активный участник сообщества
И для тех кто “ведует” пока оставлю коммерческую возможность…
 
Воу-Воу-Воу! Стоило уйти на выходные, написали 2 страницы. А потом выпать из жизни на 2 дня - и еще 2 страницы. Баталии развернулись. Но чёт ничего не понятно. Или не всё понятно.

Из всего перечисленного понял, что CodeNameHawk советует уменьшить резистор с 4к7 ниже. В статье указанной pvvx также упоминается возможность уменьшения аж до 500 ом при длинной линии на телефонной лапше для избежания ошибок по шине из-за ёмкости кабеля.

С другой стороны уважаемый pvvx утверждает, что снижение сопротивления повысит ток и увеличит собственный нагрев датчика, что внесёт погрешности. Но, если честно, предлагаемого решения от Вас я не понял. Не могли бы вы ещё раз по-простому, для чайников описать, что нужно сделать.

Где-то в середине баталии было сообщение что нужно добавить sensor.begin перед каждым циклом. Если я правильно понял. Или не правильно?
 

pvvx

Активный участник сообщества
В статье указанной pvvx также упоминается возможность уменьшения аж до 500 ом при длинной линии на телефонной лапше для избежания ошибок по шине из-за ёмкости кабеля.
Именно для "линии", а датчик DS18B20 не рассчитан на работу на "линию", как и выводы ESP.
Так, на огрызок, типа до 3х метров всё будет ок.
 

enjoynering

Well-known member
Из всего перечисленного понял, что @CodeNameHawk советует уменьшить резистор с 4к7 ниже
да так можно, но до бесконечности уменьшать не получится тк вы упретесь в максимальный ток DS18B20. вот вам пример расчета подтягивающих резисторов для i2c шины (для OneWire считаются аналогично)

pull-up_resistor_calculation.PNG
 

pvvx

Активный участник сообщества
И уж тогда не "лапшу", а телеграфные столбы с оголенными проводами :) Покрытие изоляторами увеличивает емкость.
Сопротивление терминаторов можно уменьшать на линии 1-Wire с соответствующими драйверами. К примеру для DS2484, но и он не рассчитан на работу с линиями в сотни метров...
А для DS18B20 нагрузка указана в даташите: 4.7..5 кОм.
 

pvvx

Активный участник сообщества
да так можно, но до бесконечности уменьшать не получится тк вы упретесь в максимальный ток DS18B20. вот вам пример расчета подтягивающих резисторов для i2c шины (для OneWire считаются аналогично)

Посмотреть вложение 13004
Вы ошибаетесь и глобально. Фанатизм вам закрывает причину почему требуются танцы с бубном из сопротивлений :p
Датчик DS18B20 может работать на емкости, величина которых равна времени зарядки C=x до длительности сигнала сброса при R=5кОм :p Его ключ в 100 Ом только отпускает шину и не участвует в разряде C.
 

enjoynering

Well-known member
тут я свами pvvx соглашусь:

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

pvvx

Активный участник сообщества
Таааак. Уже понятнее. Уменьшать резистор - это не наш метод. Надо делать корректировку в коде. А как и куда? Только снова, для чайников. Соответственно разделу "для начинающих"
 

pvvx

Активный участник сообщества

pvvx

Активный участник сообщества
При к.з. заряженного "кабеля" максимальный ток очень близок току разряда его емкости на волновое сопротивлению этого кабеля... И у кабелей для ВЧ типичные вол. сопротивления лежат в пределах 50..100 Ом.
У лапши - ~325 Ом.
 

pvvx

Активный участник сообщества
Таааак. Уже понятнее. Уменьшать резистор - это не наш метод. Надо делать корректировку в коде. А как и куда? Только снова, для чайников. Соответственно разделу "для начинающих"
Про это уже описано ранее - "для начинающих" это сверхзадача написать нормальный драйвер 1-wire "ногодрыгом" для ESP8266 чтобы осталась возможность работать WiFi. На годы.
Но и смысла особого нет - ток у ножек ESP на "кабель" будет превышен и ИФК светодиод из выходного транзистора в GPIO померкнет со временем, если не лепить дополнительных элементов... У него ток кз более 50 мА. Такой нехилый ИФК светодиод.
"Начинающим" проще поставить драйвер 1-Wire.
 
Сверху Снизу