сейчас сделал проверку на саморазогрев DS18b20.
режим 12 бит (800 мс), запуск конвертации - ежесекундно.
при подаче питания - 25,1875 град.
через 8 минут уже было совершенно стабильно - 25,7500 град.
итого разогрев в наихудшем режиме работы 25,75 - 25,1875 =0,5625 град.
так что, про офигенный саморазогрев - сказки.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
[uquote="Starichok51",url="/forum/viewtopic.php?p=4776997#p4776997"]итого разогрев в наихудшем режиме работы 25,75 - 25,1875 =0,5625 град.
так что, про офигенный саморазогрев - сказки.[/uquote]
Т.е. 0.6℃ — это не офигенный саморазогрев? Как бы даже официальную погрешность измерений превышает…
AlexS4, потребляет он от питания, а не через пулл-ап.
linux_rulezz писал(а):Т.е. 0.6℃ — это не офигенный саморазогрев?
тут говорили про несколько градусов.
у меня плата с датчиком лежала передо мной. и потом я обнаружил, что датчик подогревался моим дыханием.
потом плату и датчик я отложил в сторону, и датчик остыл до 25,4375 град. а это уже саморазогрев всего 0,25 град.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Starichok51, от сопротивления пуллапа зависит сколько энергии рассеится во встроенном транзисторе при передаче данных по 1w
если взять 510R то будет раз в ~100 (не сподручно щас поглядеть сопротивление его открытого канала) больше чем при 10k и по отношению к стэнбай току тоже.
а питание я кстати почти везде делал через сам 1w, тоесть какраз через пуллап. (конденсатор пробовал и не ставить, проблем не припомню.)
AlexS4, передача данных идет несколько миллисекунд, и ничего не успеет нагреть.
а греет сама конвертация температуры, когда потребление энергии возрастает. при 12 бит (когда потребление энергии идет около 800 мс) будем иметь максимальный саморазогрев.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Все-таки, основные проблемы этих датчиков - не саморазогрев (с которым вполне можно бороться, просто опрашивая не чаще раза в минуту или даже пять минут), а ужасный огромный корпус с низкой теплопроводностью, да очень низкая точность.
Когда-то я сравнивал разные термодатчики, в т.ч. DS18B20 (восемь штук на одной шине, завернутые в полиэтилен, несколько слоев фольги и размещенные в стакане с водой). Заливал горячей водой, потом подливал туда жидкий азот и по платиновым термодатчикам, болтающимся в разных точках стакана вокруг этой "грозди", выжидал, пока температура более-менее выравняется (не хуже, чем на 0.1℃). Не могу, к сожалению, найти, где я этот эксперимент в ЖЖшке описывал. Но там совсем плохо было: одним только нуль-пунктом не скорректируешь. Фактически, у каждого датчика была своя кривая. И погрешность там была далеко не ±0.5℃…
// off: а еще, как-то был у меня эксперимент, смогут ли датчики Холла в жидком азоте работать. Не смогли, к сожалению, поэтому в "холодных" узлах криостата пришлось банальные концевики ставить. Но это к делу вообще не относится.
но в его ценовом диапазоне не видел датчиков лучше
есть по ~20р nst175 те же 0.5C, те же же so8 но с i2c
есть по ~5..10р lm75, nst112 тож i2c но точность и диапазон -хуже
все остальное - либо еще более убого, либо чуть лучше но уже x5 по цене max1617 tsys01
кто знает - накидайте интересных названий плз. часто нужно мерить с точностью ~1C
(... и в диапазоне +300 -300
щютка )
Китайцы выпускают цифровые датчики под однопроводный интерфейс NST1001-QDNR в DFN-2 корпусе. Ну очень мелкие. Купил, правда еще не пробовал, всё руки не дойдут никак
Требования к точности измерения зависит от задачи. Сперва надо точно знать задачу. Если вы просто хотите знать погоду за окном, вам не нужны доли градуса и ±1 градус будет прекрасным результатом. А вот когда вы хотите десятые а то и сотые доли получить, тут все сложнее. Полный ад наступает, когда в одной системе есть несколько таких датчиков. Пусть они одной модели и даже из одной партии, но каждый показывает свою погоду на своем марсе. Я не использую эти ваши DS, я использовал LPS22HB от ST. Давление 24 бита с точностью 100/4096 = 0.0244 Па (но в даташите заявлена точность измерений 1 Па без калибровки по одной точке и 0.1 с калибровкой), температура 16 бит с точность 0.01 градус С (но в даташите заявлено ±1.5 градуса!). При замерах результаты плавают. Для сравнения нескольких датчиков я их помещал в стеклянную банку. Все датчики с одной ленты. Типа у них должны стабилизироваться общая температура и давление, но от плавания результатов замеров это не спасло. И это позиционируется как точный датчик бытового назначения. Что хотеть от DS...
С 1wire есть серьезная проблема. Я, например, не знаю ни одного микроконтроллера, у которого была бы аппаратная поддержка этого недоинтерфейса! Да, есть преобразователи во всякие I2C - но это лишняя трата места на плате. А ради 1wire приходится тратить ценный канал DMA + UART или один таймер (которых тоже негусто).
[off]
Как-нибудь доведу до ума проверку датчиков pressure-humidity-temperature (их у меня целая горсть, но т.к. торчат в "беспаечной макетке", дома работает, а как на работе в подкупольном размещу, так буквально через час какая-то зараза блокирует шину, и мультиплексор I2C тоже перестает работать). Сравнивал их показания при комнатной температуре - вполне красиво, но интересно же в широком диапазоне температур, а особенно - при минусовых. Правда, не придумал, как аттестовать влажность при минусовых температурах: психрометр-то работать перестанет! Может, есть психрометрические таблицы, где "влажный" термометр спиртом поливают или бензином?
[/off]
[uquote="Starichok51",url="/forum/viewtopic.php?p=4777274#p4777274"].. при 12 бит (когда потребление энергии идет около 800 мс) будем иметь максимальный саморазогрев.[/uquote]
потребление у DS18xx не зависит от разрядности. Там нет АЦП от слова совсем. там тупо косвенный метод измерения. схему/алгоритмику совсем постарались вычистить из тырнетов уже давно. но найти можно.
там тупо счётчик, конденсатор и терморезистор. мк там гоняет счётчик, ну и собственно отвечает на 1wire протокол.
точность у данных девайсов - по даташиту, а вот разрешение разное.
- для DS1821 = 0,01 градуса
- для всех остальных = 0,0625 градуса
ЗЫ ЗЫ
Алгоритм сканирования зависит от подключения. Если идёт речь про свои установки - то более практично 1 провод = 1 датчик (легко в обслуги, монтаже, замене. минусы - разъёмы под каждый датчик). Тогда по скорости успевает(от 51 серии до STM) такой схемотоз = на прерывании импульс начала слота (для шустрых), для медленных = слот чтения. работает сразу со всеми одновременно. всё остальное уже на уровне приложения.
[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4777443#p4777443"]С 1wire есть серьезная проблема. Я, например, не знаю ни одного микроконтроллера, у которого была бы аппаратная поддержка этого недоинтерфейса![/uquote]
STM32 поддерживает.
[uquote="AlexS4",url="/forum/viewtopic.php?p=4777309#p4777309"]..кто знает - накидайте интересных названий плз. часто нужно мерить с точностью ~1C
(... и в диапазоне +300 -300
щютка )[/uquote]
если оебспечить алгоритмику как у DS18xx - косвенный метод измерения, плюс толерантные адаптеры к уровням напряжения (куда подключать) - то там 5-7 деталюшек, ну и вам будет прилетать меандр в МК.
Диапазон не такой широкий, но работать будет и дешевле выйдет. (не шутка). ну и умещается всё в чуток большие размеры чем DS18xxx вместе с ногами.
Добавлено after 6 minutes 38 seconds:
[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4777296#p4777296"]...а ужасный огромный корпус с низкой теплопроводностью, ....[/uquote]
вы абсолютно правы!
теплопроводность там херня полная = реальную температуру датчик покажет спустя 5 минут только. Это подтверждает и практика и расчёты программ.
Но если сильно захотеть и на них можно строить сравнительно точное поддержание температуры без всяких ПИДов . но это уже совсем другая история...
DS18xx ~100р в розницу
nst175 ~20р
lm75 - 4р https://www.chipdip.ru/product/lm75adp- ... 8050007018
и при этом можно обойтись без калибровки, если не пытаться выжать максимум точности, боюсь с аналоговыми датчиками будет всетакки дороже, особено если учитывать что калибровка это тож производственная операция, которая при небольших партиях может стоить 100+р на экземпляр
решил заглянуть в datasheet, и у ds18b20 при температурах ниже -10 градусов, погрешность +/- 2 градуса. с такой погрешностью дробную часть можно вообще не выводить
JackSmith, при переходе с -10С на -11С и даже на -15С точность не падает скочком !
речь же просто о гарантированной точности, реальная - вполне может быть лучше, на какихто участках во всяком случае.
вообще это напоминает анекдот про генерала, приказавшего пустить 8 ракет вместо 10, узнав что статистическая вероятность попадания в цель 8 из 10
точности, реальная - вполне может быть лучше, на какихто участках во всяком случае.
вы слишком много о них думаете, учитывая, что практически все они - неоригинальные, неизвестно кем сделаны и фактически имитирую работу оригинальных DS18B20 https://github.com/cpetrich/counterfeit_DS18B20
[uquote="Zelenyj111",url="/forum/viewtopic.php?p=4777502#p4777502"][uquote="linux_rulezz",url="/forum/viewtopic.php?p=4777443#p4777443"]С 1wire есть серьезная проблема. Я, например, не знаю ни одного микроконтроллера, у которого была бы аппаратная поддержка этого недоинтерфейса![/uquote]
STM32 поддерживает.[/uquote]
Какой? Я работаю с F0x2, F103, F302/F303, немножко с F407, G0 и G431. Нигде нет аппаратной поддержки 1wire! Только ценой траты 1 канала DMA и 1 таймера (или UART).
P.S. Гуглеж по "STM32 hardware 1-wire" вообще ничего не дал! Только все те же самые UART+DMA или таймер+DMA.