Термисторы, попытка I


Заинтересовался бюджетными способами измерения температуры. Широко распространеные цифровые датчики слишком дороги, а невысокая стоимость термисторов очень привлекает
Выбор пал на NCP21WB473J03RA. Стоимость ~12р. шт., корпус 0805, сопротивление при 25°C — 47к (±5%).
Почитал немного полезной литературы (ссылки в конце), и собрал следующую схему:

Термистор от Murata, с документацией оказался полный порядок.
В таблице указаны значения сопротивления с шагом в 5°C.

Контроллер был взят MSP430FR5738, АЦП 10 битное, опорное напряжение (Vref) как и для питания делителя равно 2,5 вольт.
Далее, зная сопротивление R10, термистора R13, а так же зная напряжение, можно без труда рассчитать делитель для каждого значения температуры из таблицы.

Вручную пересчитывать мне не захотелось и наскоро написал калькулятор в Кьют (проект прикреплен).
Табличные значения записываются в xml (мне показалось так будет удобнее).
На выходе имеем константы для ADC и соответствующий им массив с «отправными точками»

После преобразования, необходимо найти константы, ближайшие к текущим значениям ADC и приблизить показания.
float ADC_Result_Calc(void){
    float retFloat;
    uint16_t temperature_hex = 0;
    uint16_t temp;
    uint8_t i;
    uint8_t sizeTable = sizeof(table);
    
    for(i=0; i<sizeTable ; i++) {
        if((adc_result <= table[i]) && (adc_result >= table[i+1])) {
	    temp = table[i] - table[i+1];
	    temp = temp / 10;
	    temperature_hex = table[i+1];
	    retFloat = (float)temperature_value[i];
	    while(temperature_hex < adc_result) {
	        temperature_hex += temp;
		retFloat += 0.5;
	    }
	    return retFloat;
}}}

Таким образом измеренная температура была в целом похожа на реальную, отличалась на 1°C от выставленной на сплитсистеме. План дальнейших измерений и тестов еще не придумал.
Продолжение следует…

Ссылки:
Измерение температуры при помощи NTC термистора
Статья на easyelectronics
Применение терморезисторов
  • +3
  • 09 августа 2015, 03:26
  • khomin
  • 1
Файлы в топике: table_PC.zip

Комментарии (294)

RSS свернуть / развернуть
А почему Вы думаете, что получится бОльшая точность, чем у цифровых датчиков? Ведь у термистора по спекам разброс 5%. Добавьте сюда погрешность АЦП, разброс остальных элементов, источника опоры. Также учтите температурные отклонения параметров вышеуказанных элементов. Предвижу аргумент про калибровку и программную компенсацию всех погрешностей. Но если такую калибровку сделать для цифровых датчиков, их точность тоже повысится. Поэтому корректно будет опираться на данные без калибровки, в результате мы имеем погрешность хуже 5%
+3
Предвижу аргумент про калибровку и программную компенсацию всех погрешностей. Но если такую калибровку сделать для цифровых датчиков, их точность тоже повысится.
Смотря для каких, смотря какая периодичности измерения и смотря в какой среде (DS18x20, например, при частом замере температуры воздуха начинают заметно разогреваться).
0
Да, где-то читал про саморазогрев ds18xxx. А ссылочку на статью не можете дать? Интересно перечитать будет. Я у себя такой проблемы не обнаружил при опросе раз в 3 секунды.
0
Могу сказать, что я сам этот эффект проверил и подтвердил. Термобокс, ртутный градусник, максимовский донгл для 1-Wire…

Уползает некритично для комнатного термометра (скажем, при дискретности 0,5° можно пренебречь), но критично, если мы говорим о точности замера (дискретность 0,1° и меньше).
+1
DS18x20, например, при частом замере температуры воздуха начинают заметно разогреваться.
Коллега, ну неужели Вы верите, что DS18x20 измеряет температуру воздуха? :-)
DS18x20, как правило, измеряет температуру проводов, к которым он подключен! :-)
+1
И с ростом частоты замера провода, естественно, нагреваются под действием тока ))))
0
Ха-ха! Это было бы смешно, если не было бы так грустно :-(
-1
Вся наша практика – это сплошные допущения в заданных пределах. При низкой частоте опроса он вполне себе измеряет температуру окружающего воздуха. Ибо температура выводов также ему равна. Кроме того, можно прилепить к датчику радиатор.

+3
в этом плане tmp112 намного интереснее. Он намного компактнее, следовательно довести температуру до кристалла легче, к тому же сейчас продается термопроводящая резина на любой вкус, с очень хорошими характеристиками
0
При таких параметрах
Точность:
— 0.5°C (max) from 0°C to +65°C
— 1.0°C (max) from –40°C to +125°C
он мне абсолютно неинтересен.
-3
И чего минусуем? В даташите прямо сказано: калибровка позволяет улучшить точность до ±0.17°C (не путаем это с разрешением АЦП 0.0625°C).
0
Действительно, точность тут получится никакая. Термистор 5%, встроенный ИОН +-10%, в общем это как пальцем в небо ;-)
0
этот термистор ±5%, но есть термисторы от EPCOS с точностью ±3%
0
соглашусь, в этом виде точность скорее будет никакая, но меня заинтересовало несколько коммерческих измерителей температуры, где применяются подобные термисторы
0
Если говорить об лабораторном оборудовании, то для него существуют платиновые термисторы, обладающие высокой стабильностью. Получается, что или точность, или цена…
+2
Возможно, что их калибруют.
0
Калибруют каждый датчик (терморезистор). Причём в керосине — с добавлением жидкого азота! Но это для задач +-0.01 градуса в диапазоне +- 10 градусов и 0.1 при -50. Мне такую калибровку в Новосибирске проводили :-)
У меня ещё десяток «алмазных» терморезисторов завалялся (не калиброванных)… Никому не надо?
+1
«алмазных» терморезисторов
Типа таких? А чем они интересны?
0
Да, примерно такие. Интересны они стабильностью характеристик.
Но сам я не проверял :-)
0
У VREF вроде как ±4%
0
К стати, если использовать одну опору для АЦП и измерительного делителя, можно полностью избежать влияния нестабильности ИОН. Останутся только погрешности элементов делителя и АЦП.
+2
сначала теряем на делителе минимум 1 бит при 25°, потом оцифровываем с точностью максимум 0.1°.
Ну да, нестабильность ИОН исключили, а толку?
0
Так и сделаю, спасибо. Подскажите пожалуйста, обязательно ли в делителе использовать высокоточное сопротивление?
0
Если сможете снять точные напряжения (точность 0,05% и выше), то можно использовать делитесь с подстроечником. Если нет – то только через точность элементов.
0
«делитель с подстроечником», разумеется
0
По поводу точности — фломастеры разные есть, см. начало последней страницы TS-60.pdf
ps ну и таблицей сопротивление->температура, пользоваться конечно удобнее
0
Чтобы не допускать глупых ошибок с sizeof, стоит написать макрос:
#define LENGTH(arr)    (sizeof(arr) / sizeof(arr[0]))
+1
Кроме того
sizeof(table)

имеет смысл вообще в дефайн вынести. Или хоть за пределы for, т.к. сейчас оно вычисляется на каждой итерации… Типа такого

table_size=sizeof(table) / sizeof(table[0]);
for(i=0; i<table_size; i++)
0
Кроме того

sizeof(table)

имеет смысл вообще в дефайн вынести. Или хоть за пределы for, т.к. сейчас оно вычисляется на каждой итерации…

sizeof будет заменен константой на этапе компиляции. И выражения sizeof()/sizeof() тоже будут вычислены один раз на этапе компиляции.

А вот в коде
for(i=0; i<sizeTable ; i++) {
        if((adc_result <= table[i]) && (adc_result >= table[i+1])) {
…
}

похоже, есть более серьёзная ошибка – выход за приделы массива на последней итерации цикла. Плюс, ели температура будет ниже нижней границы указанной в таблице (как и если будет выше верхней) то функция вернет случайное число (значение неинициализированной переменной)
0
согласен, во второй части подправлю
0
Товарищи, а как смотрите на применение аналоговых температурных датчиков от TI?
Например LMT70A, заявлено ±0.1°C, вот только BGA…
0
Ну это хуже, даже чем у DS18B20! Смысл?
0
смысл в цене
0
Если смысл — в цене — тогда я бы порекомендовал обычную медь!
0
Кстати, — датчик линейный получается!
+1
Или вот ещё:

ММТ-4А. Дико нелинейный, но чувствительный, гад!
+1
хм, я думал полностью линейных ТСМ не существует в природе.
Относительно линейна термопара, но это преимущество уравновешивается недостатками
0
В смысле?
-1
В смысле почему линейный?
Ну линейный, если смотреть сопротивление меди от температуры. Платину мне не давали, а вот медные датчики температуры делал своими руками. +- 10 мм медного провода 0.02 мм уже значительную погрешность давали… Причём к датчику даже притрагиваться было нельзя (и дышать рядом) — температура сразу вверх лезла :-)
0
Не, это было к этому
0
ну 20 рублей против 250-400, по моему интересно попробовать
0
Беспроблемные DS18B20 можно купить на Ибее по сопоставимой цене.
0
Ну мысль конечно здравая. Взять хреновый датчик за 20 руб., присобачить к нему STM32 (лучше последней модели) и превзойти DS18B20!
Действительно «интересно попробовать»!
0
Не могу удержаться, чтобы не поделиться былью об использовании DS18B20.
Два независимых канала измерения с датчиками DS18B20. Датчики лежат на столе, обмотанные тонкой полиэтиленовой плёнкой — не дай Бог — «сквознячки»! Разница показаний 0.2 градуса. Ну и отлично!
Всё в пределах документации на DS18B20!
И тут я заметил, что один провод подключения датчиков (от «мыши» использовал) на 20 см «свисает» со стола…
Надо сказать — измерения проводились зимой. Градиент температуры в помещении — более чем -10 градусов на метр…
И вот этот «градиент» датчик «увидел»!!! Я провода рядом положил на столе
— и через пару минут (не сразу конечно!) показания стали различаться на +- 0.01 градуса!
С тех пор я DS18B20 очччень сильно уважаю! (Датчики были из разных партий)
+1
Если я еще правильно помню, то у них дискретность измерения предельная 0,0625. Откуда же +- 0,01?
Или я что-то путаю?
0
Да вроде всё верно 0.0625 — младший разряд. :-)
+ калибровка прецизионная, + накопления измерений…
Достоверность 1 сотой я конечно подтвердить не могу, это скорее ближе к (1/2 младшего разряда)/(2*корень(2))… И причем это в отдельных точках… Ну а на самом деле хуже конечно :-)
0
Из даташита на DS18B20
±0.5°C Accuracy from -10°C to +85°C
0
Блин, редактирования таки не хватает :(
±0.5°C — это абсолютная погрешность, естественно.
+1
Она самая. На практике поменьше, да и убирается (компенсируется) калибровкой.
0
а что должно быстрее передать температуру кристаллу — воздух или медь, все понятно
0
А что применяется в электронных градусниках? Там же точность 0,1 градус.
0
у них узкая шкала, думаю вряд ли от -40 до +125 они гарантируют такую же точность
0
В бытовых? Термисторы с не самой лучшей точностью (±10%).
0
Я думаю, речь о медицинских, которые +36,6 :-)
0
Для медицинских, думаю, можно подобрать терморезистор линейный в диапазоне 35-42 градусов, что упрощает измерительную систему. А абсолютную погрешность можно скомпенсировать подстройкой на производстве всего по одной точке.
0
И не забыть, что это термометр максимальных значений с экспозицией 10 минут.
0
Вот в цифре — измерить макс. значения -нет проблем…
0
Но ртутный медицинский градусник — круче!
0
Круче — только терморектальный криптоанализатор…
0
а разве они еще продаются? O_o
0
А почему нет то? У меня такой)
0
ну ртуть вроде сильно ядовита, вроде же хотели запретить их продажу…
0
ну ртуть вроде сильно ядовита
Только это не мешает использовать ее в лампах дневного света и разных энергосберегайках.
+2
Там ее единицы миллиграмм в отличие от термометра.
+1
Электронные частенько лажу показывают. А те, что умеют экспонировать поцыэнта 10 минут — довольно дороги в сравнении с ртутными.
0
Года 2 назад купил вот такое говно фирмЫ OMRON в аптеке за 400 рэ. Сейчас он видимо стоит еще дороже.

Выбрал эту — еще более дорогую модель с широким кончиком, который якобы измеряет быстрее и надежнее (очередное know-how для лохов), чем более дешевые модели этой же фирмы с более тонкими кончиками.

Тоже взял из-за якобы его безопасности, по сравнению с ртутным. Но сие електронное дерьмо врет от 0.5 до 2 град. по сравнению с классическим ртутным. Особенно врет, если держать его подмышкой. Брал спецом для детей, но потом понял, что он просто ОПАСЕН, т.к. когда у ребенка подскочила температура до 39 и выше — сие дерьмо казало 37 с копейками. Но до 38.0 ребенку не надо давать жаропонижающее, чтобы иммунитет сам эффективно боролся с болезнью и если такая температура (37.x) держится стабильно — можно успокоится. Но когда она повышается до 38 с копейками и есть динамика ее повышения до 39 — надо уже срочно давать жаропонижающее, и вообще, уже что-то предпринимать. Это хорошо, что я догадался перемерить температуру обычным градусником, т.к. остальные симптомы совершенно не соответствовали температуре, которую показывал «БЕЗОПАСНЫЙ» електронный чудо-прибор.

Кстати, вымуштрованные барыгами продавщицы из аптеки отказались вернуть мне деньги за это говно.

0
Во… А это же обыкновенный термометр! Представляешь, что у наших ГИБДДешников «Алкотестеры» показывают?!
0
Храню мед.справку(обличительный документ из своих более молодых лет), в которой врач зафиксировал опьянение 4.2% — это по анализу крови. Это что получается — у меня кровь была как пиво «Балтика №7»? Потом он мне сказал(с очень серьезным лицом, т.к. я по своему обыкновению видимо о чем-то шутил), что, вообще-то, — это смертельная доза. Я был весьма и весьма удивлен, т.к. не считал себя ни алкоголиком, ни даже пьяницей: ну подумаешь — попил 2 дня подряд, но я же не каждый день, а так, изредка: раз/два в месяц или в два.
0
Ну дык. Быстрее, выше, сильнее! Есть какая-то единственная модель (по-крайней мере, видел только одну), в которой можно включить режим измерения продолжительностью 10 минут.
0
Там это дерьмо пикает, когда типа он замерил. Как он пикнет — через минуту или через две/три — знает только говнокодер, который его программировал. Что потом делать: вынимать его и смотреть показания, еще держать 2-5 минут?

Продавщицы же отвечали на мои настырные вопросы вяло и как-то вскользь, не смотря мне в глаза, или же просто делали каменное лицо и переходили на официально-юридический тон. Они видимо уже всё знали об этих термометрах, и у себя дома держали обычные градусники. Еще говорили, что более-менее точно он ВОЗМОЖНО измерит, если держать его во рту, а подмышкой не рекомендуется.
0
Когда пропищало – можно вынимать. Если мерить во рту – под язык.
0
Короче я понял: ни какой гарантии точности — пошли в жопу в данном случае все эти их digital електронные know-how + с MCU, т.е. полностью зависеть от потенциального говнокода, захлестнувшего все вокруг. Лучше пользоваться старой доброй физикой, которая не обманет.
-2
Именно так.
0
Лучше пользоваться старой доброй физикой, которая не обманет.

Ну, физика то вас не обманет, а вот производитель термометров – запросто. Чтобы ртутный термометр показывал правильную температуру – нужно обеспечить точность кучи параметров — объем камеры со ртутью, параметры капилляра, вакуум в капилляре, чистоту ртути и т. д. Поэтому далеко не факт, что абстрактный ртутный термометр (непонятно где и кем изготовленный) точнее, чем электронный. Не узнаешь, пока не сделаешь поверку…

Храню мед.справку(обличительный документ из своих более молодых лет), в которой врач зафиксировал опьянение 4.2% — это по анализу крови.
Алкоголь в крови нормируется в промилле, поэтому, речь скорее всего шла о 4.2‰. С концентрацией более 1% люди не живут, и врач был бы очень сильно удивлен, увидев у вас 4.2% :)
+1
Алкоголь в крови нормируется в промилле, поэтому, речь скорее всего шла о 4.2‰. С концентрацией более 1% люди не живут, и врач был бы очень сильно удивлен, увидев у вас 4.2% :)

Специально щас нашел этот исторический артефакт — там написано: «Алкогольное опьянение 4.2 %».

Вроде с градусниками не было особых проблем, тем более его всегда можно просто проверить на 36.6. Это уже отточенная за 100 лет технология, тем более их делают бывшие советские заводы по старым ГОСТ-ам. Хотя щас, в связи с повсеместным внедрением «эффективного менеджмента» и выжиманием из всего подряд прибыли — все возможно.
0
этот исторический артефакт — там написано: «Алкогольное опьянение 4.2 %».
Ну, значит это действительно истерический артефакт:)

Вроде с градусниками не было особых проблем, тем более его всегда можно просто проверить на 36.6.

Хотя щас, в связи с повсеместным внедрением «эффективного менеджмента» и выжиманием из всего подряд прибыли — все возможно.

В том-то и дело, проверка на 36.6 – не гарантия корректной работы. По идее, медицинские термометры должны как-то проверяться и сертифицироваться. Если эта структура сертифицировала цифровой термометр, который врет в пределах 2 градуса – почему бы она не могла сертифицировать и ртутный (или любой другой) с такой же погрешностью измерений.
+1
e_mc2 — Вы буквоед, особенно, когда беседуете со мной: Ртутный градусник врет на 2 градуса ???!!! Это же почти 2 см по капилляру.
0
Нет, я просто хочу сказать, что нельзя слепо верить в то, что ртутный градусник надежнее.

Это же почти 2 см по капилляру.

Почему именно 2, а не 0.8? Повторюсь, все зависит от кучи параметров… От объема резервуара, от сужения капилляра, от самого капилляра, от давления в капилляре и т. д.

Я к тому, что врать может любой измерительный прибор (не зависимо от принципа его работы), и пока ты его лично не поверишь – можно только надеется на то, что производитель вас не обманывает.
+1
Как страшно жить. Тем не менее, любой практикующий врач вам скажет, что ртутный из аптеки предпочтительнее электронного из аптеки.
0
Это бесполезный спор. Просто купите этот термометр и поюзайте его, я считаю (ИМХО), что он говно.

И не из-за калибровки, а из-за конструкции датчика и самого принципа измерения. Показания датчика очень сильно зависят, в частности, от влажности тела, если совать его подмышку. Само измерение длится какое-то время в минутах, а затем уже он выдает показание, т.к. измерять температуру в реалтайме он не может. Теоретически это возможно, но посмотреть температуру нельзя, т.к. термометр подмышкой или во рту, как только вы его вытащите, чтобы посмотреть температуру — он тут же скинет ее на несколько градусов, тем более, если еще и покрыт потом, который тут же испаряется. Ртутный градусник очень инерционен в этом отношении — его надо даже специально встряхивать, чтобы произвести новый замер. Он работает как бы только в плюс, если это возможно, т.е. его можно просто догреть телом еще несколько минут, если вы не уверены в его показаниях.

По какому принципу работает электр.термометр — я не знаю. Может быть он отсчитывает фиксированный промежуток времени в 2-5 мин, а затем фиксирует максимальную температ. за этот период. А может ждет момента, когда в течении 1 мин температура уже не повышается, а затем фиксирует это показание. Может еще что, но по факту он измеряет каждый раз с разбросом показаний(может его не так прижали, может ребенок приоткрыл рот и вдохнул воздух, может выступило больше пота подмышкой и т.д.), в отличии от ртутного.
0
По какому принципу работает электр.термометр — я не знаю.

Попалось в сети: описание интеграловской микросхемы.
0
И еще один документик.
0
Что из себя представляет термометр медицинский ртутный?
Ртутный термометр представляет из себя стеклянную запаянную колбу, с капилляром, содержащим 2 г ртути, и со шкалой с делениями от 34 до 42. Цена деления шкалы – 0,1 градус. Ртутный термометр еще называют максимальным, потому что он показывает максимальную температуру тела при измерении температуры и столбик ртути остается на своем максимальном значении до тех пор, пока градусник не встряхнут.
Если технологических нарушений нет – нет и источника вранья.
0
Если технологических нарушений нет – нет и источника вранья.

А если есть? :) Производитель вот так сразу о них и объявит? Типа мы не смогли обеспечить ровно 2г ртути, и диаметр капилляра у нас гуляет… Ну и там не совсем вакуум…

Я не сомневаюсь в том, что законы термодинамики справедливы :) Я и говорю, что все зависит от тех. процессов производителя. С точки зрения чистой физики – на основании теплового расширения можно создать идеальный термометр. На практике – точность прибора будет зависть от тех самых «технических нарушений»
+1
Затеваете спор ни о чём ради зряшного буквоедства. Понимаете, о чем я?

Даже если ртутный врет на целых 1-2 ДЕСЯТЫХ доли градуса, то это будет не так страшно, как ошибка на градус-полтора с электронным (там это легко).
0
Коллега, да я не затеваю спор. Если вы воспринимаете это как «спор» то я задаюсь, Вы победили!

Я просто хотел сказать, что если мы возьмём среднестатистический «китайский» цифровой термометр, и такой-же «китайский» ртутный – то совершенно не факт, что ртутный окажется более точным. Я лично не проверял именно ртутные термометры, но «спиртовые» (или что там у китайцев там за жидкость) врут в пределах 5 градусов при заявленной точности в 0.5.
+2
Я же веду свою речь к тому, что я уже не уповаю, как в молодости, на всесилие и универсальность digital & algoritmic(CPU computed) технологий. Я просто понял, что часто вещи, сделанные на правильно продуманных физических принципах или calculated or produced on analog principles, работают на порядок/два надежнее и лучше, часто будучи тем не менее проще и дешевле.

Если бы по своему хитрый, но простой как 2 копейки клапан сброса давления в паровом котле, работающий по принципу центробежной силы или просто веса, заменяли бы на красивенький приборчик с MCU + датчик давления + электроуправляемый клапан — котлы взрывались бы тут и там повсеместно. Если даже взрываются ракеты Ариан, Протон и SpaceX из-за упования на эту самую електронику + CPU control. Из-за этого, в каком-то смысле, в мире деградирует классическая инженерная мысль.
-1
Из-за этого, в каком-то смысле, в мире деградирует классическая инженерная мысль.
В целом — да.
0
После того, как я с электронным проебал у себя пневмонию (и огребал потом лулзы на протяжении аж 3 лет), больше этой херне я не верю.
0
если мы возьмём среднестатистический «китайский» цифровой термометр, и такой-же «китайский» ртутный – то совершенно не факт, что ртутный окажется более точным
У меня 2 электронных и 1 ртутный. Электронные просто лень выбросить. Пользуемся ртутным.

Как я уже говорил, видел единственную модель электронного с 10-минутным режимом «максимального термометра». Ценник там достаточно конский был.
0
Как я уже говорил, видел единственную модель электронного с 10-минутным режимом «максимального термометра»
AND DT-625
0
не верю я что девайс как то расчитан на проценты. Даже в то что прога знает знак процента поверю вряд ли…
0
Вообще-то у многих таких градусников прописано в документации, что после пикания надо еще минуту выдержать.
0
Как он пикнет — через минуту или через две/три — знает только говнокодер, который его программировал
Те, кто этим занимался говорили, что пикает тогда, когда dT/dt падает до 0.1°C/30с. При этом температура занижается примерно на градус, это так называемое «быстрое измерение». Для более точных показаний рекомендовали держать дольше (правда, многие термометры после пи-пи просто вырубаются).
0
С таким говном один способ: сунуть под мышку, подождать несколько минут, потом включать.
0
о да, тоже столкнулся с подобным «чюдом техники». Не доверяйте свою жизнь и здоровье подобным приборам! Лучше всего — старый добрый термометр на ртути.
+1
У меня осталось ощущение, что их разработчики не поняли, для чего и почему в медицине температуру измеряют 10 минут, и действовали по немудрёному принципу «а вот сейчас мы этот каменный век-то и сковырнём».
0
ага, а есть еще и бесконтактные. по принципу тепловизора. На лоб посветил и увидел температуру. Только невдомек, что температура на поверхности лба и внутренняя температура тела — совершенно разные вещи
0
И еще к-ты пересчета без учета излучательной способности и прочие «успехи передовой науки».
0
да, шарлотаны идут в ногу со временем. Сейчас модно пропогандировать достижения НТР и под видом этих достижений впаривать людям совершенно шарлатанские изделия. Особенно это высоко развито в медицине. Всякие лампы Биоптрон, ИК душ, Сюда же зубные щетки со всякими подвижными частями и прочая, прочая.
Имел честь поговорить на выставке с представителями лампы биоптрон. Показали мне картинку, чем он отличается от остальных. Окажывается это не просто свет, а именно лечебный, потому как он отличается от лазера! внимание! некогерентностью. А от солнечного света — поляризацией. Я порекомендовал той тетеньке прислонить ЖК монитор вместо этой лампы. Все же дешевле + двойное назначение. Сидишь в одноклассниках зависаешь, и одновременно лечишься!)) Во где НТР!
+2
А чем зубные щетки с моторчиком не угодили?
+1
а я не с моторчиком. Здесь действительно есть полезный эффект, как и с бритвами с микродрожью.
Я о других, которые повторяют контур дуги, щетина расположена особенным образом, и таких вариаций 100500 а главное их небесные цены. Вот где настоящее разводилово.
+1
+100 ) щетки с моторчиком очень даже ничего, всего месяц пользуюсь, а зубы уже сияют белизной )
0
Вот когда от всего холодного и горячего начнут зубы болеть, вот тогда и прийдет время задуматься чего в таких щетках больше — пользы или вреда. Эмаль на зубах тоже не бесконечная и излишнее воздействие ей отнюдь не на пользу.
+2
Ой ли? В медицинский пирометр заложить излучающую способность кожи человека — не проблема. Хотя даже обычный пирометр с ε = 0.95 дает довольно адекватные результаты.
0
Только невдомек, что температура на поверхности лба и внутренняя температура тела — совершенно разные вещи
А внутреннюю и не меряют. Меряют в определенных местах — под языком, под мышкой, на лбу, в ухе и в жопе. Разумеется, измеренная в разных местах температура интерпретируется по разному.
0
подмышечная область она более подходит, поскольку имеет преимущества:
Кожный покров в принципе может блокировать внутреннюю температуру, но только не подмышечная впадина. Там нет микромышц. поэтому наиболее соответствует внутренней температуре тела. Кроме того она вполне доступна, чего не скажешь о ухе, жопе и под языком, особенно если это говорится о ребенке.
0
Тем не менее, температуру лба медики тоже меряют. Правда, уже не помню подробностей.
В ухе обычно меряют медицинскими пирометрами, для них это стандартная точка измерения.
0
Вот, кстати, подборка
0
И еще
0
Там проволочный термометр сопротивления или интегральный датчик на ячейке Брока.
0
LM35/335/135. Линейные аналоговые датчики на диоде Зенера, калиброванные на 10 mV/K. В даташите погрешность 1 С, но обычно это постоянный оффсет, т.е можно измерить раз и давать поправку. Очень удобные и дешевые.
0
Все так, но это только датчик. Еще нужен АЦП, точность которого зависит еще и от ИОН. + (возможно) нормирующий ОУ, элементы котрого тоже имеют температурную нестабильность. А в интегральном цифровом датчике все «в одном флаконе», и это имеет регламентированную точность.
0
т.е можно измерить раз и давать поправку
А как эту поправку дать??? Огромные проблемы!!!
Даже 0 градусов реперную точку получить… Это же офигенные многократные и многочасовые измерения! И на протяжении всего процесса давление воздуха должно быть «нормальным» :-)
0
Ну вот я DS18B20 для своих девайсов по ртутному 0,1°С калибрую в термобоксе (колхоз, но хоть такая калибровка). И таки да, 2-3 часа на один датчик.
0
Мне как-то раз калибровали терморезисторы на импортной супер-пупер установке… Термостабильность в камере 0.01 град (по паспорту)!!! Правда объём камеры — 10 см3, что тогда уже насторожило… В итоге — всё на помойку — и к Новосибирцам с их «керосинками» с жидким азотом :-)
0
Я бы всё-таки рекомендовал калибровать в жидкой среде. Керосин для DS18B20 — не вариант — очень низкое сопротивление среды не актуально. Можно чистый спирт (хорошего качества), лучше питьевой. Для понижения температуры — я думаю, можно также жидкий азот использовать. И тщательно всё перемешивать — а то градиент по температуре — существенный.
0
У меня самодельная камера, объем около 1,5 литров. В принципе, устраивает. А жидкая среда, да еще с азотом – в домашней лабе не вариант, на мой взгляд.
0
В моём предложении главное слово — не азот!!! :-)
А ёмкость — подходящая!!!
0
Ну, в принципе можно будет при случае поиграться с изопропиловым спиртом, например. А если еще и китайский термос со стеклянной колбой под это дело приспособить…
0
Ну ты доиграешься!Только Этиловый!!!
У него температура замерзания -117С и главное — он не оставляет отходов!
0
И обязательно марки ЧИВ!
0
Озадачил… «Роял» помню, ЧИВ — не помню… :-)
0
Чистый И Вкусный :)
0
Да я вроде другого и не встречал… Может мне просто повезло в жизни?
0
Как то я у своего знакомого, который себя «северянином» считает (и достал, кстати, своими разговорами о Севере) спросил: «Знаешь, что такое коктейль „Северное Сияние“? — Ну конечно — это водка, напополам с шампанским! Нее… „Северное Сияние“ — это на 3/4 — чистый спирт — а остальное уже шампанское… :-)
Надеюсь Челябинцы меня поймут… :-)
+1
Пойду налью себе 100 грамчиков раствора и спать :)
0
ЭКЗАМЕН ПО ХИМИИ

Я чем-то был в тот день ужасно занят
и прибежал последним на экзамен.
А за столом сидит доцент Смирнов Эль Ве
и бьет себя по лысой голове.

Попались мне валентности и спектры.
и тут у меня выпали конспекты…
А за столом сидит доцент Смирнов Эль Ве
и хлопает себя по голове.

Он бросил мне две колбы очень ловко.
В обеих жидкость, как компот в столовке.
— А ну-ка, — говорит, — давайте живо —
определите, что это за жидкость —
и эпсилон, н жу, и мю, и рю,
удельный вес и прочую муру.

А я нюхнул — ну, видно, дядя спит…
Ведь это ж настоящий винный спирт!
Ну, думаю, сейчас определю —
попробую сто грамм себе налью.

И тут уж я совсем забыл про спектры…
И вдруг у меня выпали конспекты…
А за столом сидит доцент Смирнов Эль Ве
и хлопает себя по голове.

-Ну, -спрашивает, -как?.., Определили?..
-А что вы там в стаканчик-то налили??-
— Да так, — говорю, — наверное, вода…
А он как закричит — не пей, балда!

Ну прямо так на стенку и полез.
— Да ты же,- говорит, — умрешь, балбес!
Да в этой колбе, там же аш-два-эс!
и добавляет еще о четыре раза,
и обзывает идиотом и заразой.

А я ему в ответ — и все вы врете!
Вы кто, — говорю, — ученый?.. А орете.
Ну вы, наверное, дядя, просто спите.
Ведь это ж настоящий винный спиртик!
Вы кандидат, а я дитя полей!
А он мне говорит — а ну налей!
И я налил, ни капельки не жалко.
И он спокойно, по науке, жахнул.
И стал еще немножечко просить.
Нет. — говорю, — мне надо закусить.
Ты бойкий, ну а я еще бойчей…
И он принес мне стеариновых свечей.

Ну только эти колбы доконали.
а он, гляжу, еще несет, каналья.
-Последняя, чего беречь напрасно —
-для госбюджетных опытов запасы,

И тут уж я совсем забыл про спектры
и вдруг у меня выпали конспекты…
А за столом сидит доцент Смирнов эль ве
и хлопает меня по голове.

Я говорю ему — ну, что, сдавать экзамен?
Он говорит: Сдавайте, я сейчас не занят.
Вы только в вертикальности держитесь,
определите, что это за жидкость.
-Конечно, спирт,! — Вы, видно, парень тертый,
и ставлю я вам твердую пятерку.
Да вы не суетитесь, не спешите,
и сами тут в зачетке распишитесь.
Я подписи своей не ставлю ценной —
за мной охотятся шпионы и доценты.

Ну, я пошел, адью, в таком аспекте,
и тут у меня выпали конспекты.
А за столом сидит доцент Смирнов эль ве
и хлопает себя по голове.

Никто бы не узнал об этом деле,
но наша группа — в щелку подглядели.
С тех пор меня считают парнем тертым…
Еще бы — на весь курс одна пятерка!

А в общем-то я химию учил…
Пятерку я и так бы получил.

1961

А. Дольский
0
MCP9700,TC1047 — от 20руб
0
по моему с ±2°C можно не думая ставить термистор
0
И для ±0.1°C можно термистор ставить не думая…
Для ММТ-4а достаточно знать 3 коэффициента А,B,C для конкретного экземпляра:
R= А+B*Exp(-C*T), где Т- температура °К, R- сопротивление термистора (Ом)
:-)
+1
Если исходная таблица отсортирована (а она, судя по всему, отсортирована), то можно использовать бинарный поиск.
0
  • avatar
  • evsi
  • 10 августа 2015, 12:46
Чтобы не страдать ерундой с таблицами, а потом с приближением, существует формула расчета.
T:=Tn/((Ln(Rt/Rn)*Tn)/B+1)-273.15;
где, T — искомая температура в градусах,
Tn — начальная температура в К, обычно 262,15К (25С)
Ln — натуральный логарифм,
Rt — текущее сопротивление термистора,
Rn — сопротивление термистора при начальной температуре
B — коэффициент из даташита термистора.
Rt может вычисляться по формуле, если стоит в паре с резистором:
Rt:=Ku*R/(1-Ku)

где KU — отношение значения ADC к его разрядности,
R — сопротивление резистора.

Уже приводил кусок программы на паскале, который вычисляет таблицу по всем этим параметрам без танцев с бубном Здесь
+1
Я бы исходную таблицу закинул в Excel, разбил на 3-4 поддиапазона — и в каждом провёл логарифмический тренд.
Для хорошей абсолютной точности всё равно придётся характеристику R(t) снимать экспериментально…
0
зачем делать молоко из масла? Зачем делать логарифмический тренд по таблице, выведенной на основе уже существующего логарифмического тренда, описанного в Datasheet?
0
или просто ради забавы и чувства самоутверждения, «что вот, мол, я это могу сделать»
0
Ну во-первых тренд «по-кускам» будет точнее.
Во-вторых, повторю:
Для хорошей абсолютной точности всё равно придётся характеристику R(t) снимать экспериментально…
И вот тогда — только с поддиапазонами!
Тупо повторять формулу из Datasheet — это не наш метод!
+1
ага, и так для каждого датчика отдельно. Можно конечно заморочиться, если точность нужна.
0
Да, конечно, каждый датчик имеет свою индивидуальную градуировку. Ещё и по 4-х проводной схеме подключается…
0
Пример «просто ради забавы» привёл в этом файле.
0
Как вариант:
1. Определяем «грубо» температуру по формуле:
T:=Tn/((Ln(Rt/Rn)*Tn)/B+1)-273.15;
2. Определяем «уточняющие» коэффициенты А, В:
А=-0.132*Т-19.15
В=-0.002*Т^2+0.611*Т+96.57
3. Вычисляет точное значение температуры:
Т=А*LN(Rt)+B



Естественно, что это всё имеет смысл, если таблица R(t) определена точно!
Ну а сами таблицы хранить в памяти не надо. Лишнее это.
0
табличный вариант отнимет 40 байт в ROM, но позволит обойтись без сложных вычислений, после каждого измерения
0
Точно 40 байт? В таблице макс. значение 1748, мин. 1. 2 байта на значение надо брать. Итого на 34 значения 68 байт.
А что один! раз вычислить логарифм — это уже сложные вычисления?
0
хм, от -40 до 125, шаг пять градусов
165/5 = 33, 33*2 (16 бит же)…
да, все верно ))
0
если речь о микроконтроллере — то это на самом деле затратно.
0
проще будет на каждое значение ацп по слову выделить, чем воткнуть туда модуль math и делать то же самое, только медленнее и хуже. Потому и делаются всякие таблицы, чтобы не нагружать железяку.
0
А я чотто не понял — кто-то же у нас совсем недавно был противником «танцев с бубном» и даже приводил " приводил кусок программы на паскале"...:-(
0
Для поверки термометров при отрицательных температурах термостаты заполняют этиловым спиртом или другими незамерзающими жидкостями, которые охлаждаются твердой углекислотой или жидким воздухом. Отсюда.
0
Вот хорошая статья по СТ3-19.
+1
Немножко поржал по доброму «Охлаждающим устройством являлся кондиционер БК-1500, штатный испаритель которого ......» — без оконного кондиционера и палок наука не двигается ;).
А по поводу логарифмов и таблицы сопротивлений — конечно таблица удобнее в сто раз, т.к. в реале производители датчиков (не чувствительных элементов) указывают ее а не коэффициенты уравнений.
0
Ну а я могу 100 примеров привести, где коэффициенты в 100 раз удобнее таблицы :-)
Какие-то проблемы перевести таблицу в коэффициенты?
Предположим у меня 20 термисторов, отградуированных с большой точностью — через градус. 20 таблиц будет удобнее в 100 раз?
+1
Вы мыслите как математик а не программист.

Как мыслят математики:

У нас есть нелинейная функция похожая на log(), давайте аппроксимируем ее к log() вычислим коэффициенты и реализуем в программе…

У нас оказалось, что аппроксимация на всем диапазоне дает недопустимую погрешность – давайте разобьём на поддиапазоны, и для каждого вычислим коэффициенты, и перепишем программу…

У нас поменялся тип датчика, и нужно вводить большее кол-во поддиапазонов, давайте их введем, перепишем программу…

У нового датчика зависимость не похожа на log(), давайте аппроксимировать к другой функции, и перепишем программу, с учетом разложения функции в ряд…

Как мыслит программист:

Сделаю ка я табличный способ, он универсален (иначе я устану логику приписывать), если что – придётся менять только коэффициенты в таблице, а не логику…
+2
Это всё отмазки. Надо одинаково хорошо владеть и тем и другим методом и применять по ситуации. Так мыслят инженеры. :-)
На этапе разработки (когда не вполне понятен объём требуемой памяти) я бы предпочёл мыслить как математик. Ведь завтра заказчик скажет: а давайте ещё пару/десяток датчиков добавим! А памяти то уже нет… Переписываем программу!
0
Инженеры мыслят (как и программисты) в привычных проверенных категориях. Если все мои датчики 2,2k3,3k3, 10k3, 100k6 заданы таблично — зачем мне что то иное?
А уж зоопарк датчиков разводить это не то-что моветон- это диверсия, не вижу смысла даже обсуждать.

ps И таблица в памяти кстати весьма мало места занимает.
+1
А уж зоопарк датчиков разводить это не то-что моветон- это диверсия, не вижу смысла даже обсуждать.
В серьёзных разработках каждый датчик имеет свою индивидуальную градуировку (т.е. свою собственную таблицу). А диверсия — этого не делать (понадеявшись на капиталистический datasheet)
0
Ну это конечно меняет дело ;) Ведь калибровку делать категорически запрещено… и кстати магическое словосочетание — своя собственная таблица.
Сломался датчик — срочно все переписать, перекомпилировать, перетестировать, переделать… и впедрить внедрить.
Наверное конечно есть и такой подход, но имхо не стоит искать приключений там где это не принесет пользы.
0
Ведь калибровку делать категорически запрещено…
Это что-то новое… Теперь я понимаю, почему наши космические корабли так часто бороздят воды Тихого океана…
Диверсия, блин!
Сломался датчик...
Здесь по ситуации может быть — или целиком меняется блок и датчик, и возможен вариант отбора датчиков по группам.
0
Или хранение коэффициентов в EEPROM.
0
вы говорите в разной области. Все зависит от цели и поставленных задач. Если требуется жутчайшая точность температуры, то действительно, таблицы никакой не хватит. Придется формулу внедрять. А ежели дома температуру воздуха показывать где +-2 градуса никто и не заметит, то сложные формулы приведут к удорожанию устройства, потому как потребуется вычислительная мощность. Вы о чем спорите то?
0
Признаю, что конечно не в курсе предметной области своего оппонента, но ссылка на статью где применяется переделанный БК-1500 (кто не в курсе это оконный кондиционер), а не специальный прибор для термостатирования как раз заставляет задуматься о тихоокеанской группировке…
По поводу таблиц там даже линейной интерполяцией точность ~0.2 в шаге таблицы 5 градусов, поэтому о 2 х градусах речь не идет.
А уж если требуется жутчайшая точность — интересны требования к ней, условия в которых она измеряется и чем огласите весь список пжлста!
0
Признаю, что конечно не в курсе предметной области своего оппонента, но ссылка на статью где применяется переделанный БК-1500 (кто не в курсе это оконный кондиционер)
Похоже, что Вы статью дочитали только до упоминания о БК-1500.:-)
А ведь там чуть выше:
После изготовления термометр сопротивления заново проградуирован в Сибирском институте метрологии (СНИИМ), г. Новосибирск, в интервале температур 0-200 °С. Абсолютная погрешность измерения температуры термометром оценена в 0,02 К.
+1
А ежели дома температуру воздуха показывать где +-2 градуса никто и не заметит
Я другу терморегулятор для отопления дома делал на DS18B20. И вот он мне клялся, что самый хороший режим — это установка температуры с точностью 0,1°!!!
сложные формулы приведут к удорожанию устройства, потому как потребуется вычислительная мощность.
Давайте разбираться.
Даже если у меня много-диапазонная градуировка.
Итак- вычислим «первое приближение»
T:=Tn/((Ln(Rt/Rn)*Tn)/B+1)-273.15;
Заметим, что Ln(Rt/Rn)=Ln(Rt)-Ln(Rn); Ln(Rn)- это константа!
И в дальнейших расчётах используется только Ln(Rt).
Т.е. сколько бы ты диапазонов не создал — основная «вычислительная мощность» потребуется для вычисления Ln(Rt) (один раз на измерение)!
А если подумать, то можно от Ln отказаться и перейти к Log2… :-)
+1
Вам может клясться кто угодно и в чем угодно, ведь даже сместив датчик на несколько сантиметров вы можете получить +/- несколько градусов — потому что там сквозняк или светит солнышко или конвекционный поток батареи, поэтому точность измерения не температуры 18b20 не есть температура воздуха, а корпуса в данной точке пространства.
Ну и поэкспериметируйте уж если так интересно, возьмите бусину термистора и поднесите к ней ладонь — она будет фиксировать ваше тепловое излучение.
Еще раз хочу сказать, что точность зависит не только от формулы -таблицы, но и от метода и условий, в моем пространстве решений проще это делать таблицами — удобнее точность вполне позволяет.
Вы так свои и не рассказали где производитель обязывает использовать только формулы, жду с нетерпением примеры.
0
Ваше первое заявление:
— конечно таблица удобнее в сто раз...
Последнее:
… в моем пространстве решений проще это делать таблицами — удобнее точность вполне позволяет.
Вот с последним трудно не согласиться. Но делать обобщений не стоит. Я привёл для примера другое «пространстве решений», где таблицы менее удобны (мягко говоря).
Вы так свои и не рассказали где производитель обязывает использовать только формулы...
А где интересно я такое говорил?
Я не сторонник формул или таблиц и говорил:
Надо одинаково хорошо владеть и тем и другим методом и применять по ситуации.
Что бы Вас успокоить, сообщу, что CRC я предпочитаю вычислять с использованием таблиц.
0
Вы так и не привели свои примеры — пока я вижу только голословные утверждения
А то что таблица в сто раз удобнее — это да и то что мне это удобнее делать таблицами не отменяет того, что могут быть случаи где формула будет по каким то причинам лучше.
Причины которые вы смогли указать — что при смене типа датчика при табличном задании будут проблемы
а давайте ещё пару/десяток датчиков добавим! А памяти то уже нет… Переписываем программу!
и что производитель дает формулу при этом же и таблицу калибровки! — это даже не интересно и выглядит слабо правдоподобно.
Жду конкретных примеров.
0
… и что производитель дает формулу при этом же и таблицу калибровки! — это даже не интересно и выглядит слабо правдоподобно.
У меня возникают смутные подозрения, что Вы просто не знаете, как из таблицы сделать формулу...:-)
0
… ведь даже сместив датчик на несколько сантиметров вы можете получить +/- несколько градусов
Сразу вспомнилось родное :-)
«Хорошо живут ребята-геофизики в балке.
На полу там минус 30, плюс полста на потолке!»
Всего-то 0,4 градуса/см :-)
0
Я вам больше скажу даже не интересовался и не пытался :) т.к. это не имело практической ценности.
Дальше линейной интерполяции значений не делал — точность там где надо ~0.2К, конечно это не 0.02К, но и этого пока вполне достаточно, хотя подумываю улучшить взяв среднее с соседними диапазонами т.е. чтобы получить некоторый прогиб более точно отражающий характеристику датчика.
0
Я вам больше скажу даже не интересовался и не пытался :)
А зря — там же все элементарно — в Excel даже можно сделать.
точность там где надо ~0.2К
Это точность при идеальном совпадении характеристики термистора и таблицы.
Таблица — как правило это усредненная характеристика, а каждый термистор будет иметь свою индивидуальную характеристику при такой точности.
Танцы с бубном начинаются если количество термисторов больше одного :-)!
Я уже не говорю о случае когда их 20.
0
Как вы собираетесь кроме как таблицей калибровочные коэффициенты вводить?
По поводу танцев, никаких данных по своей области вы не представляете, сделаете обсудим, а так пока я не вижу никаких особых преимуществ, а вот неудобств вижу больше:
1. Далеко не все производители предоставляют коэффициенты
2. Вычисления логарифмов не самая приятная задача для мк.
3. Простота и наглядность модификации данных в формулах отсутствует.
По поводу двадцати типов датчиков, опять не понятно что это значит — датчики с разной характеристикой? Прибор-установка меряет и криоген и нагрев чего то в разных диапазонах — поясните?
В моей области:
1.Наружная температура -40/+40C — 2.2к3
2. Выше ноля 10k3
все- точность самих датчиков приводил 0.2К
0
Как вы собираетесь кроме как таблицей калибровочные коэффициенты вводить?
Посмотрите мою таблицу в Excel выше(11 августа 2015 15:41)
точность самих датчиков приводил 0.2К
Ну о чём Вы говорите! Давайте считать вручную.
Пусть номинал 2,2 кОм +-5% при 25 градусах. Пусть худший случай -5% — это -0,11кОм
Теперь смотрим в таблицу — на 30 градусов — 1,8 кОм или 0,4кОм/5 градусов=0.08 кОм/градус — то есть на 25 градусов уже возможна ошибка больше чем на градус! А на границах диапазона — будет ещё больше!
При +25°С точность +-1°С получается. Если такая точность Вас устраивает ( а для кучи приложений этого вполне достаточно), то мне остаётся только за Вас порадоваться!
Мне же приходится активно использовать бубен :-)

Ведь что такое таблица, приведённая в datasheet?
Берут 1000 шт. термисторов, делают градуировку — и в таблицу вносят средние значения! Вполне вероятно, что из этой тысячи термисторов не былони одного с указанными в таблице параметрами.
0
я не совсем понял откуда 5%?
если производитель гарантирует 0.2k?
0
Я про NCP21WB473J03RA с который ТС приводит.Буква J обозначает +-5%.
C буквой F +-1%.
Вероятно Ваша табличка для +-1%
Обратите внимание, что при минусовых температурах такая точность не гарантируется!
0
Там она и не требуется ;)
про другие датчики — вообще не говорил, только про свои.
0
Вот ещё на термисторы от Murata ссылка.
С индексом D (+-0.5%)
0
Да и еще один наверное самый важный момент, который мы упустили — класс датчиков должен соответствовать проводимым измерениям, иначе все это не имеет смысла.
+2
Ключевой момент, да.
0
ага, то есть вместо того, чтобы купить термистор, соответствующий определенным требованиям по точности, вы считаете более целесообразным его калибровать. По-моему, ежели требуется точность — гораздо оправданее купить точный термистор, поставить его и забыть
0
Mihail, у Вас какие-то упрощённые представления…
См. ссылку.
+1
И вот еще ссылка.
0
про поверку мне известно, я говорю лишь о том, что не всегда оправдано делать это. НЕ ОПРАВДАНО. Понимаете?
0
Вот у меня стоит мощный светодиод. Мне нужно дуть на его радиатор таким образом, чтобы он сохранял температуру не более 50 градусов. Вопрос: Нужна ли мне калибровка? Достаточно реализовать ПИД регулятор, (что собственно и сделано), где учитывается не только статичные данные о температуре, но так же и динамика. В итоге, система реагирует практически мгновенно на любые изменения. Но калибровка мне не нужна. к слову совсем.
0
На самом деле даже ПИД в таких случаях необязателен — достаточно простого термостата >49C дуем, ПИД нужен там где есть необходимость поддержания чего то более менее точно.
0
Чисто теоретически, стабильная температура может быть приятна для СИДа в том плане, что его термическим расширением не будет туда-сюда шатать. Ну и негромкое постоянное «шшш» напрягает меньше, чем периодическое «шу-шу-шу».
0
Конечно если рассматривать все в идеальном приближении то да.
Но ПИД на порядок (если не на 2!) затратнее чем термостат и я плохо представляю люстру с вентилятором… в любом случае, а если это где то далеко то вообще пофиг.
И думаю что сиду пофиг +-5 градусов пролета на несколько секунд от например +50 даже в очень далекой перспективе
А учитывая что радиатор (как например и жидкость) нагревается и остывает не сразу то вполне термостата хватает обычно — посмотрите электрошкафы там если стоит вентилятор то он пускается термостатом.
Это все опят к вопросу необходимости (если конечно не стоит вопрос +-1С) и кстати есть такие мелкие контактные термостаты.
0
Но ПИД на порядок (если не на 2!) затратнее чем термостат
Это в современных-то реалиях, где цена МК-осьминожки не сильно отличается от цены компаратора для обычного термостата (особенно с учетом упрощения схемотехники и печатной платы) или того же биметаллического термореле?

Ну а остальное — это зависит от задачи уже. С одной стороны — электрошкаф с биметаллическим термостатом, с другой — контроллер вентилятора на матплате с переключаемыми стратегиями охлаждения (тихое, интенсивное, etc).
+1
Цена сильно зависит как только начинается не просто домашний колхоз, а кстати и он тоже — поди с полпинка несведущий человек напиши ПИД ;), собери да настрой все это — сколько времени уйдет?
Я не в коем случае не пытаюсь сказать, что надо все надо делать по простому, но надо задумываться о способе решения проблемы соответствует ли он ей?
+1
задача соответствует ПИД. Поэтому ПИД и применен. Требования описал выше. В ПИДе неплохо разбираюсь, поэтому его и применил
0
ПИД мне стоил неделю писанины доп модуля плюс подборка коэффициентов. Поскольку МК там и без того присутствовал, потому как брал инфу из DMX-512, в реальности затраты — это транзистор, катушка индуктивности, диод, коденсатор по выходу питания вентилятора и собственно термистор + RC цепочка. Стандартный набор.
0
это не люстра, а вполне себе осязаемый светодиодный прожектор, который используется в профессиональном освещении. Профессионалы — люди особо требовательные.
0
Интересно было бы ознакомиться хотя бы с поверхностным описанием да пару фоток.
0
samlight.ru
+1
+1
уже три года не работаю в данной фирме. Не нашел последний вариант документа
0
Спасибо за инфу, диод классный.
0
продукт коммерческий, поэтому нужно было максимально сделать малошумным устройство, 2 — пусть даже если и шумит — но без резких включений — выключений. 3 — максимально возможная стабильность температуры, посколькуу при нагреве кристала изменяются его цветовые характеристики. В общем ПИД нужен, а вот калибровка — нет.
0
и еще: в случае, если температуру не удавалось сохранить по разным причинам — система должна плавно приглушать интенсивность свечения, а на индикаторе прибора обозначалась эта проблема. Так что устройство достаточно умное получилось.
0
Кстати насчет CRC — вот ее я считаю без таблиц, т.к. они в данном случае не добавляют ничего по удобству, а по производительности вполне устраивает.
0
В серьезных проектах обычно бюджет позволяет выделить по тиньке на 1-2 датчика (памяти на таблицы хватит) и предавать абсолютное значение температуры по любой промышленной шине на головной контроллер. Плюсы —
— масштабируемость решения (если уж мы на стадии проектирования не знаем, сколько будет датчиков и не можем, соответственно, выбрать контроллер с достаточным объемом памяти под таблицы, хотя данная ситуация с термином «серьезная разработка» не клеится);
— унификация, т.е. возможность использования разных типов датчиков без необходимости вводить их поддержку в головном контроллере;
— помехозащищенность и, как следствие, снятие ограничений на расстояние до измеряемого объекта.
+1
А вот у меня не 1-2, а 10-20 датчиков. Абсолютная погрешность +-0,1°С
И мне таблицы в памяти на фиг не нужны :-)
Я так понял, что с таблицами работает только тот, кто не умеет превращать таблицы в формулы (или у него всего 1 таблица) :-)
0
ну сколько можно обсасывать одно и тоже?! Вам же говорят, что табличный метод на 2, а может и на 5 порядков быстрее, чем производить вычисления. Разве это не является преимуществом? Формула на самом деле совсем не сложная, тем более ее обсасывали уже много раз. а поскольку речь идет о программировании микроконтроллеров — гораздо более целесообразно применять табличный метод. Тем более что таблицу тоже надо уметь построить.
-1
Mihail, ты за базар отвечаешь? На 5 порядков — это в 100000 раз быстрее. На 2 порядка — в 100 раз. :-)
+1
я понимаю что такое порядок.
T = Table[ADC];
и
T=Tn/((Ln(Rt/Rn)*Tn)/B+1)-273.15
вполне может разниться на 5 порядков… Хотя на 5 — наверное перегнул, но на 4 — вполне вероятно.
0
собственно, здесь еще и Rt найти нужно
0
А ведь это проверяется элементарно! :-)
0
возвращаясь все к тому же светильнику: метод преобразования температуры — табличный, зато на avr8 есть ПИД + цифровые фильтры для него. чтобы стабильно работал. Вот где нужна инженерная мысль. Каким образом сделать так, чтобы все работало
0
А вот у меня не 1-2, а 10-20 датчиков. Абсолютная погрешность +-0,1°С
5-10 дополнительных копеечных Тинек с таблицами и все дела :)
Кстати, еще одно преимущество использования промежуточного контроллера — имеем небольшой запас уже откалиброванных измерителей и замена вышедшего из строя модуля становится простой и приятной. А демонтированный идет в ремонт и на повторную калибровку.
0
А вот у меня не 1-2, а 10-20 датчиков.

У вас достаточно специфическая задача (согласен с коллегой B-Screw , описанный им подход, ИМХО, сейчас более распространен).

Через аппроксимацию к нелинейной функции мы теоретически можем получить выгоду при большом кол-ве датчиков.

Раз вы затронули объем памяти – давайте его грубо прикинем, для данной задачи.

У автора разбивка диапазона на 34 поддиапазона (с шагом в 5 градусов) Если значения АЦП в таблице хранить «как есть» — то нужно 2 байта на значении. Но можно (в данном случае) не хранить абсолютные значения, а хранить разницу между предыдущим и последующим значением, для хранения разницы нам достаточно одного байта (правда нельзя будет реализовать бинарный поиск, но при размере таблицы в 34 элемента – это не так принципиально). Итого, таблица уместится в 34 байта ПЗУ, и алгоритм можно реализовать в (при желании) рамках целочисленной арифметики.

Ваше предложение:

Я бы исходную таблицу закинул в Excel, разбил на 3-4 поддиапазона — и каждом провёл логарифмический тренд.

Ок, но мы сразу переходим к арифметике с плавающей/фиксированной точкой, требуется реализация логарифма и т. д. (что отожрет немало памяти). Потом нам нужно хранить коэффициенты А и В для каждого поддиапазона. Если поддиапазонов 4, а для хранения коэффициентов (а они не целочисленные) потребуется по 32бита на число – то мы получим таблицу из 4 * 2 * 4 = 32 байта, что немногим меньше чем «34 байта ПЗУ». Но нам потребуется тянуть реализацию логарифма…

Это я к тому, что Ваш подход к решению задачи хорош, но утверждение « таблицами работает только тот, кто не умеет превращать таблицы в формулы (или у него всего 1 таблица)» не соответствует действительности.
+2
Потом нам нужно хранить коэффициенты А и В для каждого поддиапазона.
А это не совсем так. А и В — два коэффициента полностью описывающие датчик, без всяких разбиений на диапазоны! Так что 2*4=8 байт.
Я уже говорил, что это у автора таблица 34 элемента (по datasheetу). Но в общем случае это не так. Таблица может быть и через градус.
Это в диапазоне -40 + 125 °С — 166 элементов.
Плюс для абсолютной погрешности +-0,1°С у каждого датчика будет своя индивидуальная таблица.
Пока мне никто убедительных доводов в пользу таблиц не привёл. Кроме утверждения, что таблицы в 100000 раз быстрее, что мягко говоря весьма спорно. Поэтому мне рано отказываться от своего утверждения:
С таблицами работает только тот, кто не умеет превращать таблицы в формулы (или у него всего 1 таблица)
Правда может надо, справедливости ради, добавить: всего одна таблица, переписанная из datasheet термистора.
0
Пока мне никто убедительных доводов в пользу таблиц не привёл. Кроме утверждения, что таблицы в 100000 раз быстрее, что мягко говоря весьма спорно. Поэтому мне рано отказываться от своего утверждения:
С таблицами работает только тот, кто не умеет превращать таблицы в формулы (или у него всего 1 таблица)
Вам никто никаких других доводов привести, кроме уже приведенных, не сможет пока сами не оцените или специфика не заставит.
По идее datasheet это документ и им нужно руководствоваться при выборе датчика. Если вы собираетесь измерять температуру с точностью 0.1С то выбирайте соответствующий прибор, иначе грош цена будет вашим измерениям даже если, например поверенный вчера датчик деградирует от высоких температур или просто будет разрушаться механически.
К примеру:
www.ussensor.com/ultra-precision-interchangeable-thermistors-pr103j2-table
0
Santik
У меня возникают смутные подозрения, что Вы просто не знаете, как из таблицы сделать формулу...:-)
GIUR22
Я вам больше скажу даже не интересовался и не пытался :) т.к. это не имело практической ценности.
Вы считаете, что это достаточно убедительный довод в пользу исключительного применения табличного метода?
Типа: «Не читал, но осуждаю!»
0
Типа: «Не читал, но осуждаю!»
Вы свои посты проанализируйте — зеркальное отражение.
А если мои почитаете то увидите что- я говорю об удобстве для каждого конкретного случая но опять же читая ваши получается = «из логарифмов и палок», вместо подбора нормального датчика
зы все спать!
0

Перед стартом вычислений 50 циклов
После логарифмической формулы = 938
После табличного метода 981.
0
после табличного 951:

В итоге вычисления: 938-50=888 тактов.
табличный метод: 951 — 938 = 13 тактов. Итого в 68 раз. Будем говорить, что это скорее 2-й порядок, чем первый. Что ж, беру свои слова обратно.
0
забегая вперед: оптимизация максимальная. процессор atmega64
0
То есть, если я понял табличный метод в 20 раз быстрее? На 1 порядок?
Если ещё деление на В заменить умножением на В1=1/В…
Ну всё равно это не 5 порядков, и даже не 2.
Если по моей методике считать с первым приближением — не намного медленнее будет, ну раз в 25.
0
68 раз. Где вы 20 видели-то?
0
Перед стартом вычислений 50 циклов
После логарифмической формулы = 938
После табличного метода 981.
Это из более раннего 981-938=43
Ну не так и важно. Главное, что не на 5 порядков :-)
0
банальная опечатка. Цифра 8 и 5 в одной колонке дополнительного поля.
0
компилятор на максимальной оптимизации преобразует деление на константу к умножению на обратную ее величину. Так что здесь ресурс уже исчерпан))
0
А памяти то уже нет…
Заменяем контроллер на pin-to-pin совместимый с большим объемом памяти.
0
Заменяем контроллер на pin-to-pin совместимый с большим объемом памяти.
Страшно далеки они от народа! (с)
0
Унес в детальку.
0
Обычно параллельно термистору ставят резистор, для линеаризации характеристики
0
А смысл? Всё равно сигнал идет на АЦП — МК, где нелинейность элементарно компенсировать.
Или Вы стрелочным прибором будете измерять? Тогда смысл есть :-)
+1
продолжаем сравнительные тесты. Ранее мною была допущена ошибка в преобразовании типов. (тип не был указан)
смотрите строчку вычисления Ku. Там Ku всегда равнялся нулю, что запускало алгоритм по упрощенке, ну вот, мною ошибка была пофиксена и теперь совсем иные результаты:



50, 4877, 4890
(4877-50)/(4890-4877)=371 раз. А это уже между третьим и четвертым порядком.
0
А сколько памяти уходит на расчет по формуле? Включая подтянутую ей плавающую точку.
0
подтяжка точки + log получилось 1384 байт. Много это или мало — судить вам
0
У меня получилось 1436. Правда, под рукой была только Arduino «IDE» — хз с какими настройками оно компилирует.
0
пардон, между вторым и третьим. 2,57 если быть точнее)
0
Ну в 371 раз быстрее — это уже существенно :-). Надо задуматься над оптимизацией расчёта логарифма.
С другой стороны — желательно это всё сравнивать со временем преобразования АЦП.
И об АЦП. Для точных измерений всё-таки надо внешний 16 разрядный АЦП подвешивать. Тогда таблица значительно «подрастёт» :-)
0
Для 8-битных Atmega (АЦП 10 бит), к примеру, первое преобразование занимает 25 циклов (его можно упрятать в инициализацию системы) и далее по 13 циклов.
0
Я давно не занимался Atmega, почти всё забыл… Цикл это 200 кГц (максимум)?
0
Частота семплирования для 10 бит – да, максимум 200 кГц.
0
Не, что-то я не понимаю. Что такое частота семплирования? 200 кГц — это тактовая АЦП. 13 тактов необходимо.
Тогда частота дискретизации 200/13=15 кГц.
Т.е. на 3 порядка меньше тактовой МК (16 МГц)
Вывод — по формулам считать, хоть и 371 раз медленнее, но всё равно — в RealTime!
0
Проголосую, пожалуй, за формулы не по причине быстродействия, а по той причине, что при этом достаточно вынести в EEPROM (флэш) индивидуальные коэффициенты датчика, чтобы получить унифицированное (в рамках системы) программное решение.
0
Может Вы хотели сказать «проголосую за таблицы»? А то как-то нелогично предложение построено :-)
Таблицы быстрее формулы в 371 раз :-) Доказано Mihail'ом.
Я ошибся, когда оценивал количество байт для коэффициентов формул.
Так как я собираюсь получить A(T) и B(T) — нужно 5*4=20 байт плюс некие коэффициенты в основной формуле…
0
за формулы не по причине быстродействия
0
В этом наверное есть смысл при массовом производстве? Я так понял — преимущество в том, что flash-память у всех МК будет совпадать, а различия только в EEPROM?
Так в ATmega8 EEPROM -512 байт — туда несколько стандартных таблиц влезет.
e_mc2 уложился в 34 байта, я уложусь в 20 байт. Особой разницы нет.
Если таблицу в единицах АЦП держать — то — да, соглашусь.
0
Да, именно так. Прошивка одинаковая, отличаются только хранимые в EEPROM константы. Если не требуется лютое быстродействие – вполне себе вариант.
0
e_mc2 уложился в 34 байта, я уложусь в 20 байт. Особой разницы нет.


Да почему-же, разница есть, и она себя проявит на большом кол-ве датчиков. Ваш способ выигрывает по памяти 14 байт на один датчик, но проигрывает по производительности при малом кол-ве датчиков. Но у вас аппроксимация к нелинейной функции, чтобы обеспечить одинаковую точность вам нужно меньше поддиапазонов. И, при определенных условиях, ваш способ может выиграть по производительности, ибо сложность нахождения логарифма это O(1), сложность линейного поиска поддиапазона O(n), а у вас для той-же точности будет меньше поддиапазонов.

Плюс, в предложенном мной методе есть нюансы, в данном случае можно хранить разницу между соседними значениями в 8-битной переменной (и даже есть запас по размерности). Но это именно «в данном случае».

По факту — оба подхода имеют свои плюсы и минусы.
0
Честно говоря, я методику по определению коэффициентов А(Т) и В(Т) особо не проверял. Поэтому у меня всё-таки существуют определённые сомнения в «законности» такого подхода. Практически это 2-х итерационный метод. Но всё это надо доказывать. Жалко, что вы не захотели поучаствовать в нашей дискуссии по теме термисторов. Там нешуточный спор разгорается по поводу методов повышения разрядности АЦП :-)
А по теме — согласен совершенно — оба подхода имеют свои плюсы и минусы.
Если точность определения температуры +-2 градуса, измерение температуры — вспомогательная задача, которую желательно решить быстро — тогда конечно, табличный метод выгоднее.
0
Там нешуточный спор разгорается по поводу методов повышения разрядности АЦП :-)
Это вам так кажется, что он разгорается :)
0
Жалко, что вы не захотели поучаствовать в нашей дискуссии по теме термисторов. Там нешуточный спор разгорается по поводу методов повышения разрядности АЦП :-)

Да я не «не захотел», просто поздно заметил переписку в «личных сообщениях», уже ответил Вам :) А вообще – может вынесем поднятую там Вами тему в общее обсуждение? Вроде ничего секретного там нет, а чем больше людей проймёт участие – тем лучше…?
+1
Предлагаю trengtor небольшую обзорную статью написать по «методу повышения разрешения АЦП с помощью оверсемплинга». :-)
И там обсудить.
0
А зачем? Всё это уже открыто и обосновано задолго до. «Бери да пользуйся», называется.
0
Уже устал бороться с вашей упертостью, но повторюсь, табличный метод при 5 градусных интервалах дает +/- 0.2К (в минус сторону даже точнее на самом деле) тупой линейной аппроксимацей.
0
А я ещё больше устал… Вы плохо понимаете, что из себя представляет таблица, приведённая в datasheet…
+1
я понимаю только одно (на что давал несколько ссылок) — если вы хотите делать прецизионные измерения — берете прецизионный сенсор, с сертификатом точка.
Все остальное относится к теме «из говна и палок», а не что лучше таблицы или вычисление логарифмов на мк и какой бы вы не были гуру математики — имея на входе непредсказуемые данные получаем черти что на выходе.
зы по поводу таблиц приведите пожалуйста пример — скрин таблицы вот мой пример:
+1
Отличная таблица!
Теперь берём 10 шт. термисторов и на 25С проверяем. Какой разброс в показаниях Вы ожидаете получить? 10000.00 +- сколько?
0
я ожидаю получить что заявлено производителем
2.2k3
± 0.2 C° (± 0.36 F°),
from 0 to 70 °C

10k3
± 0.5 C° (± 0.9 F°),
from 0 to 70 °C

что не так?
0
он похоже намекает на ±5%, ±1% и прочее.
0
напишите статью о том, как точно измерить показания термистора, методику дробления на поддиапазоны, как вычислить коэффициенты, и формулы для вычисления точного показания. Думаю, многие заплюсуют и заценят. Я точно
+1
Ну это как минимум две статьи надо.
1.Как точно измерить показания термистора… ( я бы от себя добавил — используя 10-битный АЦП ATmega). Вот trengtor для повышения точности преобразования предлагает использовать оверсемплинг + децимацию.Я категорически не согласен.
2. Дробление на диапазоны — не очень это интересно. Это каждый может сделать в Excel — на графике тренд проводишь логарифмический и сразу готовую формулу получаешь. А разбиваешь на поддиапазоны — исходя из требуемой точности. Я файл Excel в этой теме выкладывал. Более интересное решение — найти коэффициенты A(T), B(T). Оказалось, что для термисторов, предложенных ТС (Murata) эти зависимости можно с большой точностью интерполировать квадратичной и линейной функцией.
Таким образом, чтобы описать зависимость R(T) достаточно пяти (3+2) коэффициентов. Пока тип этих коэффициентов float (4 байта), но возможно удастся уложиться в целое 2 байта.
Я хочу сказать, что вопросы эти не такие простые, как может на первый взгляд показаться…
Долгими зимними вечерами возможно придётся такую статью написать :-)
0
Это все прекрасно, но должна же быть какая то практическая ценность?
К примеру мы меряем 10бит, а на выходе хотим получить 0.01С во всем диапазоне термистора просто так wtf?
О чем вы?
ps наверное тут какая то очередная нтр происходит, но я правда не врубаюсь
0
Когда мы измеряем АЦП постоянное напряжение, точность преобразования ограничена только шумами. Так что вполне можно получить хорошую точность на 10 бит АЦП.
Вот например давно известна такая штука — МАРУ (масштабирумая автоматическая регулировка усиления), которая позволяет держать сигнал на оптимальном для АЦП уровне — т.е. динамический диапазон значительно возрастает без увеличения разрядности АЦП.
0
Внутри контроллеров далеко не во всех доступна — но в да аврках есть (я правда не пользовался).
В STM32 там вообще SAR АЦП отдельная песня.
Если делать на чем то внешнем то конечно доступно для всех, но карл! сколько все это будет стоить в конечном итоге — времени и денег.
Я наверное десятый или более раз спрошу — практическая задача то какая?
Выжать максимум из того, что имеем с прокачкой mad skills или получить какую то эталонную систему?
0
Практические задачи:
— мониторинг вечной мерзлоты — тут точность 0.1°С в диапазоне -20+30°С По краям диапазона и 1°С может быть. Датчики через 1 метр, 30-40 датчиков. Частично решена применением DS18B20, но пока очень дорого получается.
— Определение температуры «растепления» керна. Это к инженерной геологии относится. Диапазон -15+5°С с точностью 0.01°С, 3-4 датчика рядом.
0
хорошо что измеряем понятно, поехали дальше — чем, датчики какие и что значит дорого (глянул на али 60руб ds18b20)? задача коммерческая, государева али хобби такое?
0
Ну где ж такую хобю найдешь? :-)
Задача коммерческая с бюджетным финансированием. «Всё уже украдено до нас!» (с)
Я могу конечно уточнить, но стоимость «термокосы» на 20 датчиков с логгером около 10 тысяч импортных рублей (то бишь вечнозелёных). Но надо учитывать, что датчики градуируют (вроде бы). По крайней мере к каждому DS18B20 своя таблица поправок была.
Вторая задача интереснее (и по деньгам, в том числе) на порядок.
0
в этой термокосе 18b20 стоят?
Ну тогда давайте ссылку на производителя посмотрим чего он там понаписал :)
0
Да, DS18B20
Ага, так вам и дали документацию :-)
Не найдёте даже упоминания… Разработка выполнена, деньги «попилены». Какие вопросы?
«Центр изучения экстремальных ситуаций» г. Москва этой разработкой занимался 15 лет назад.
0
И кстати ds18b20 по датащиту(сам давно с ним игрался он меня не впечатлил) производителя:
-10°C to +85°C ±0.5°C
-55°C to +125°C±2
так что какие там ±0.01 я таки вас не разумею…
0
Даташитные ±0,5°С и ±2,0°С – это про систематическую погрешность (постоянную ошибку экземпляра). Которая достаточно просто «фиксится» калибровкой конкретного экземпляра. Что до 0,01°C – да, у них 0,0625°C шаг. Но получить точность 0,1°C достаточно легко.
0
Там ашипканелениейная если посмотреть график
зы про 0.1С комар пукнул и все…
0
Да, нелинейная.
«зы про 0.1С комар пукнул и все…» А если 10 комаров — уже градус! :-)
0
Поехали дальше ;)
Сертификатик на СИ имеется?
0
У комара?
0
если комар входит в состав изделия то безусловно…
0
Да так посты интересно идут от комаров — сразу к сертификатам.
Честно сказать — к теме мало относится. Могу пригласить в обсуждение в личку, если интересно.
0
Обсуждайте лучше в паблике. Некоторые не участвуют, но с интересом читают. Включая меня.
+1
Я вам пытаюсь довести одну простую мысль, которую уже выражал но может не совсем ясно, попробую еще раз. Каждой проблеме подбирать подходящее решение и делать это без фанатизма.
То есть — если вы решаете какую то коммерческую задачу завязанную на измерения и в дальнейшем с вероятными вопросами безопасности или финансовыми показателями, то ваше СИ должно сертифицировано, поверено итп и выполнено на соотвествуюшей элементной базе обеспечивающей нужную точность, стабильность.
Получается вы нам рассказываете про 0.1С я беру датащит на чувствительный элемент и привет, а там в лучшем случае 0.5 а вообще +/-2С в вашем диапазоне.
О чем разговор?
Тоже с таблицы vs ln, я не спорю что ln точнее но, есть ли какойто прямой выигрыш что вы будете иметь погрешность 0.01 вместо 0.1 на 5% датчике?
0
Ну типа: «я тебе один умный вещь скажу, но только ты не обижайся»(с)
Да пусть хоть 10% датчик. Я заказываю в сторонней организации калибровку, к примеру 50 датчиков — получаю 50 калибровочных таблиц с точностью 0.01°С
И мне абсолютно пофиг, что датчики различаются на 10% — у меня есть на каждый датчик индивидуальная таблица.
Частично проблемы ложатся на исполнителя калибровки — вот у них должны иметься сертифицированые средства измерения температуры с необходимой для калибровки погрешностью.
Я же получаю СИ (индикатор) температуры и буду проводить проверку в соответствии со стандартом предприятия.
0
Я тоже скажу — между СИ и индикатором такая пропасть ;)
Вы допускаете такую вещь после которой все разговоры о точности уже можно не вести и есть еще и стабильность и куда и за сколько она уплывет никто вам не скажет.
Я думаю дискуссию пора закрывать за бесполезностью оной.
+1
А тем не менее индикаторы — это СИ.
«Индикаторы – средства измерений (СИ) с ненормируемыми метрологическими характеристиками, используемые для наблюдения за изменением физических величин без оценки их значений в единицах измерения с нормированной точностью.»
Ссылка.
0
Да пусть хоть 10% датчик. Я заказываю в сторонней организации калибровку, к примеру 50 датчиков — получаю 50 калибровочных таблиц с точностью 0.01°С

Ну, теоретически мы можем взять 10% терморезистор и откалибровать его хоть с точностью до 0.0001°С. Но есть проблемы:

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

Можем ли мы гарантировать, что после того как наш терморезистор переживет несколько циклов быстрой заморозки/нагрева, поработает в среде с повышенной влажностью и т. д. у нас эта калибровка не уплывет? Это я к тому, что индивидуальная калибровка это хорошо, но помимо калибровки есть другие проблемы, которые придется как-то решать…

Вот trengtor для повышения точности преобразования предлагает использовать оверсемплинг + децимацию.Я категорически не согласен.

Здесь я Вас поддержу. Выскажу свои доводы против использования оверсемплинга в ИС: для оверсемплинга нужен не просто шум в сигнале, а по сути, белый шум. И мы должны гарантировать характеристики этого шума при эксплуатации прибора в разных условиях. А вот это обеспечить не так просто как кажется. Я когда-то делал генератор случайных чисел для одного криптодевайса, который в последствии должен быть сертифицирован. Тоже сначала подумал – да что там такого сложного, возьму в качестве энтропии тепловые шумы с младшего разряда АЦП. Когда начал анализировать характеристики шума младшего разряда – понял что не все так просто. Пришлось делать «классический» генератор на шумящем диоде.

— мониторинг вечной мерзлоты — тут точность 0.1°С в диапазоне -20+30°С По краям диапазона и 1°С может быть. Датчики через 1 метр, 30-40 датчиков. Частично решена применением DS18B20, но пока очень дорого получается.
А какие у Вас есть идеи (в качестве затравки для мозгового штурма)? Использовать откалиброванные терморезисторы подключенные по четырехпроводной схеме?
0
для оверсемплинга нужен не просто шум в сигнале, а по сути, белый шум
Для оверсемплинга можно также использовать манипуляции с опорным напряжением, а не сигналом. А в этом случае можно просто формировать пилообразное (или ступенчатое) опорное напряжение АЦП, используя для этого ШИМ от того же МК (такой пример показан, например, в апноте Atmel AVR120, посвященном оверсемплингу). Или, если уж хочется совсем по-правильному, подмешивать в него сигнал с шумящего стабилитрона. Важно лишь обеспечить нужный размах колебаний опорного напряжения, чтобы работал этот статистический метод повышения точности. Не вижу тут особых проблем, в общем.

Кстати, требуемая точность в этой задаче всего 0,3%, т.е. это вовсе не рокетсайнс.

Единственный существенный недостаток у оверсемплинга – это увеличение интервала измерения (интервала между получением измеренных величин). Но тут он будет некритичен, т.к. realtime не требуется (во-всяком случае, не указан в ТЗ).
0
В нашем случае в младших разрядах АЦП уже присутствует «естественный» шум с не Гаусовским распределением. Если мы промодулируем опорное пилой амплитудой в 2 младших разряда на пилу наложится этот самый шум и в результате мы получим другой шум, тоже не с Гаусовским распределением. Или я ошибаюсь?

Давайте зайдем с другой стороны – а зачем пытаться выжимать что-то из 10-битного АЦП AVR? По моему, для данной задачи проще взять другой МК с подходящим АЦП (ели я правильно понял, что Santik склоняется к идее использовать много аналоговых датчиков вместо DS18B20).
0
В нашем случае в младших разрядах АЦП уже присутствует «естественный» шум с не Гаусовским распределением.
Вы абсолютно правы.
...Santik склоняется к идее использовать много аналоговых датчиков вместо DS18B20
Для термокос DS18B20 подходит, но для более точных измерений (нахождение температуры растепления керна методом определения момента фазового перехода) DS18B20 уже «не потянет». Тут только термистор.
Два момента — и DS18B20 и термистор приходится калибровать. Но термистор в 5 раз дешевле… Хотя с учётом калибровки — это почти несущественно.
0
Можем ли мы гарантировать, что после того как наш терморезистор переживет несколько циклов быстрой заморозки/нагрева, поработает в среде с повышенной влажностью и т. д. у нас эта калибровка не уплывет?
Это очень болезненная тема (для всех термисторов). Но выпускались термисторы ТР-1 (на основе синтетических алмазов), которые по словам производителя очень хорошо сохраняли свои параметры и во времени и после воздействия температуры. Хотя прошла информация, что фирма (г.Александров) уже закрылась.
С оверсемплингом не согласен по той же причине. Никогда нельзя быть уверенным в точности «предсказанных» таким образом результатов. Проще поставить «почти честный» сигма-дельта АЦП или на 10-разрядном делать МАРУ и «играть» напряжением ИОНа.
Четырёх проводная схема, скорее всего не понадобится. Всё-таки термисторы довольно высокоомные, и сопротивлением кабеля подключения в общем случае можно пренебречь. Вот с низкоОмными медными — четырехпроводная схема подключения — это стандарт. И еще они получаются очень тяжёлыми — теплоёмкость огромная. Ждать, пока температура установится, приходится час — два.
+1
О-па — Александров? А что за фирма? Это не ВНИИСИМС ли случайно?
0
ля оверсемплинга нужен не просто шум в сигнале, а по сути, белый шум
Ну понятие «белый шум» весьма абстрактное, так как не указывает граничную частоту, где должна сохраняться одинаковая амплитуда: 20кГц, 1МГц, 1ГГц?.. Поскольку АЦП имеет свою частоту семплирования — то верхние частоты в любом случае игнорируются (еще не забываем про RC цепочку на его входе). Наоборот, присутствие ВЧ может сыграть определенную бяку. Поэтому вполне сойдет и розовый, главное, чтобы амплитуда частот в определенном диапазоне была одинаковой. Вообще в некоторых АЦП имеется свой собственный шум, который примешивается специально. Думаю, там люди понимали, что и какой шум требуется примешивать для точности показаний.
+1
а вообще самая большая проблема точности при оверсемплинге — это ограничения самого АЦП. Поскольку график число/напряжение — напоминает ступеньку для хромых. И часто едва ли не перескакивают на другую позицию. Особенно это заметно на граничных измерениях.
0
+1
Ну понятие «белый шум» весьма абстрактное

Да почему весьма, белый шум — это именно абстракция, такой шум есть только в мат. модели, в природе его нет, не практике мы имеем дело именно с розовым шумом. Поэтому я и написал «а по сути, белый шум».

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

Ведь у нас есть «естественный» шум не входе АЦП (он вызван тепловым шумом АЦП, помехами, которые прошли через фильтры по питанию, всякими наводками в цепи и прочими переходными процессами) В результате наложения специально сформированного розового шума на этот самый «естественный» мы получим… фиг знает что мы получим (с учетом того, что при наложении шумов, нужно учитывать их взаимную корреляцию, если я правильно помню теор. вер.)

Исправьте меня, если я не прав.
0
не практике мы имеем дело именно с розовым шумом
Поправлю. На практике мы можем говорить о белом шуме применительно к полосе частот. Розовый шум в той же полосе частот – это уже другой шум. И т.д.
0
А я вроде на подобный вопрос отвечал. 0.065°C младший разряд. Шумов там мало. При желании можно накоплениями и пр. шкалу расширить до 0.01. Но это без гарантии абсолютной точности!
А ±0.5°С — это абсолютная ошибка. Может быть уменьшена индивидуальной градуировкой датчика. Точность абсолютная ±0.1°С получается сравнительно легко.
0
При желании можно накоплениями и пр. шкалу расширить до 0.01.
Не выйдет.
0
Я и сказал «шкалу» а не абсолютную точность! Я с вами согласен — 0.1С на DS18B20 получить легко!
0
Вот trengtor для повышения точности преобразования предлагает использовать оверсемплинг + децимацию.Я категорически не согласен.
Обоснуйте причины своего несогласия :)
0
Конечно обосную! :-) Мы же ещё в личной переписке этот вопрос подняли. Я считаю, что этот вопрос пока рановато на общее обсуждение выставлять. Но в любом случае я беру тайм-аут. У меня в среду самолёт на Анапу :-)
С планшетника выйду — но там только пара фраз — «да», «нет» и «не согласен категорически!»:-)
0
Тьфу. Да, речь о тактовой частоте АЦП.
0
Это если процессору заниматься больше нечем (что, впрочем, не столь уж редкий случай). Ну и расчет весит примерно 1.5кб кода, что хотя и меньше полной таблички из 1024 элементов (доступ к которой и занимает 13 тактов), но вместит немало прореженных таблиц.
0
ну если никаких задач, кроме той, чтобы температуру измерять, нет, то да, можно сравнивать. Можно, а может и нужно по формуле вычислять.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.