блок калибровки NTC с выводом готовых значений

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

блок калибровки NTC с выводом готовых значений

#1

Сообщение Di123 » 12.09.2020{, 10:18}

Блок служит для снятия по градусно значений с последующим выбором нужных для заполнения таблицы масштабирования

блок
калибровка_термистора_(FBD).ubi
(231.25 КБ) 99 скачиваний
проект
калибровка термистора.flp
(332.3 КБ) 186 скачиваний
2020-09-12_125455.png
2020-09-12_125455.png (782 байт) 1356 просмотров
на вход in подключаем выход термистора
на вход temp выход с датчика температуры эталона
выход imp выдаёт импульс на вывод значения
выход text выдаёт показания в котором первая колонка это АЦП а вторая это температура эталона
в блоке задаём максимальную температуру с которой пойдут записи измерений и минимальную на которой они остановятся

суть работы заключается в опускании в стакан кипятка двух вместе связаных датчиков гермитичных где температура воды должна быть изначально выше максимально установленной в блоке что бы заработал отсчёт и просто ждём остывания постепенного
быстро нельзя потому что если температура проскочит на пару градусов больше чем время опроса датчика то замеры прекратятся (в данном проекте это пол секунды) да и быстрое охлаждение вносит неравномерность в одинаковое остывание датчиков что создаст перекос в точности показания потом

выглядит это так мониторе порта
2020-09-12_123318.png
схема типичная
11.GIF
11.GIF (3.4 КБ) 1356 просмотров
при заполнении таблицы целыми числами 50 49 48 ... выводится тоже будут ими
что бы были десятки нужно при заполнении умножать температуру на 10 либо 100 а при выводе её делить блоком деления на 10 или 100 с выбором флоат и в конвертере строк выбирать количество после запятой

после проделаных работ точность на калиброваном участке вполне устраивает (калибровка запитывалась от усб в данном случае)
2020-09-12_140340.png
2020-09-12_140543.png
большая шероховатость зелёной линии термистора обусловлена большим шагом из за 10 бит ацп
при 12 бит должно быть более плавно

ВАЖНО
после калибровки применять термистор только вместе с резистором R1 что участвовал в измерениях так сказать комплементарная пара
измерения производить с питанием от внешнего источника 9-12в дабы опорное напряжение менее колебалось

Kopeinvalera
Рядовой
Сообщения: 20
Зарегистрирован: 04.09.2020{, 08:11}
Репутация: 0
Имя: Валера

блок калибровки NTC с выводом готовых значений

#2

Сообщение Kopeinvalera » 14.09.2020{, 14:13}

Какая схема включения правильная?

Отправлено спустя 1 минуту 36 секунд:
Kopeinvalera писал(а):
14.09.2020{, 14:13}
Какая схема включения правильная? У кого ntc в плюс, а у кого в минус.
Вложения
Screenshot_2020-09-14-16-11-51-426_com.android.chrome.jpg

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

блок калибровки NTC с выводом готовых значений

#3

Сообщение Di123 » 14.09.2020{, 15:37}

я нарисовал с минусом
по ней и снимал показания

а с плюсом я не совсем понял как это делать
там теоретически подтяжку в мк нужно сделать или возможно как то по другому

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

блок калибровки NTC с выводом готовых значений

#4

Сообщение Di123 » 15.09.2020{, 07:41}

дополню раздел практическими иследованиями для тех у кого не получается или думают что у них всё получилось и оставили как есть но на деле обманули сами себя убедив что так должно быть

начнём с того что открытый терморезистор как выяснилось очень инертен в отличие от прекрасно залитой в колбе какой то чорной хренью и особенно эталон дс18б20 залитый в колбе обычным герметиком (притом из просмотреных сотни штук все на половину и по торчащим ногам и щелям явно некачественно так что имейте в виду надолгосрочность их)
на графике инертность выражена у открытого термистора буквально прямой а у эталона она заметно кривая если их оба опустить в горячую воду
теперь о проблеме замеров такого тамдема в том что мною выдвинутая теория о при остывании воды в стакане образуются вихревые потоки холодной воды от стенок к тёплому центру и цыфры будут соответственно хаотичные из за инертности термистора подтвердилась

если брать термистор в колбе то он из за малой инертности не успевает реагировать на эти омывающие потоки и находится практически в более менее стабильном состоянии если конечно не появится более холодный поток продолжительное время
тоесть сделать замер по закрытым датчикам в воде посути без проблем получится (если стакан обернуть тряпочкой качество замеров подымится немного)

теперь обовсём выше но в примерах
имеем 4 данных измерения
первый столбец АЦП а второй температура а третий цветной это разница от предыдущего измерения а цвет показывает цветовое изменение от мин и макс значения
2020-09-15_093217.png
первая колона этих столбцов это открытый термистор + эталон + вода
по цвету видно куча перекосов порой значения разности даже показывают отрицательное значение
тоесть термистор нам показывает реальное состояние воды вокруг него в данную милисекунду времени
а эталон нам показывает некое среднее значение из за своей медленной инертности

вторая колонна это повтор замеров первой
вся таже ерунда не пригодная к эксплуатации

третья колонна это герметичный термистор + эталон + вода
тут уже более всё стабильно есть пару мест перекосов в виду неравномерности воды как это исправить потом ниже
видно как градиент практически выравнился от мин до макс по цвету

четвёртая колонна это герметичный термистор + эталон + пенопласт на нём газетка потом датчики эти потом газетка потом утюг
тут уже более равномерно цвет распределился
тоже есть немного перекосов но они все правятся руками
видно что при 88-87 перекос и явно у 88 нето значение если оглядеть вокруг него разность цыфер то вместо 126 ставим 125 (ведь у нас должна получится плавная кривая а значит мы должны получить ровный перелив цвета градиента от мин до макс в экселе)
далее видим явный перекос 70-69 то коректируем 70 меняем 196 на 197
далее 58-57 ставим вместо 254 уже 255
и т. д. анализируя градиент
и в итоге получаем более менее ровную кривую которую даже по цвету колонки видно как она изгибается уже без резких ступенек и пиков
2020-09-15_095025.png
2020-09-15_095025.png (7.19 КБ) 1224 просмотра
не обязательно сидеть и выравнивать всю колонку достаточно проанализировать нужную точку если она вписывается в окружающий цвет то просто берём значение
и сильно градиет на всё не вытягивайте иначе он закрасит к одному цвету менее выраженные проблемные если значение мин и макс слишком отличаются на измеряемом диапазоне температур

всё это к тому что проделывать замер нужно в очень стабильной среде температур
особенно если это касается открытого термистора
если брать стекляный термистор то там инертность будет ещё выще
если брать тонкий пленочный термистор 0,4мм от батареек то там инертность ещё невероятнее (тут строить тепловую кровать ему для замеров нужно очень тщательно и без сквозняков накрыв это дело ещё чемнибудь)

теперь о проблеме АЦП на 10 бит как видно по колонке АЦП вы никогда не попадёте в теже значения при повторных измерениях в виду того что эталон смотрит значение раз в пол секунды и попасть в эти же несколько ступенек допустим 155-160 мало вероятно поэтому тут особо не заморачиваться
но когда вы берёте 12 бит начинается пляска из за большого количества ступенек их уже не несколько штук а несколько десятков и что бы построить ровную гладкую кривую нужно что бы эталон делал замеры чутли не в реальном времени но флпрог почемуто не рекомендует выводить эталон в такой режим опроса

в итоге заношу в таблицу 31 значение это только для эксперемента
да и подкоректировать кривую можно и в таблице где видно немного выпирающие точки делая кривую более плавной
2020-09-15_101752.png
и имеем на калиброваном участке посути одинаковые кривые зелёненький термистор повторяет изгиб эталона
2020-09-15_110717.png
разница в показаниях примерно 0,4гр это потомучто термистор остывает быстрее чем эталон а его шероховатость обусловлена тем что его шаг равен +/- 0,17гр в моём варианте

и важно ограничить показания в проекте если в таблице нет значений выше или ниже то ардуино начинает фантазировать сама допустим при 30гр термистор вам покажет 20 примерно
а при высокой температуре он и вовсе застабит её ибо сопротивление перестаёт уменьшаться где то в раёне 110гр у меня
2020-09-15_102610.png
и по графику видно что немного подав тепло как даже герметичный термистор нагревается быстрее чем эталон это про то что говорилось в начале статьи
:smile114:

Отправлено спустя 7 минут 36 секунд:
по поводу АЦП 12 бит то там нужно скорее всего показания снимать каждые 0,2гр хотя бы соответственно с уменьшением времени опроса что бы ступенек было как можно меньше на единицу считывания данных

Abay1
Рядовой
Сообщения: 31
Зарегистрирован: 01.03.2022{, 08:03}
Репутация: 0
Имя: Александр

блок калибровки NTC с выводом готовых значений

#5

Сообщение Abay1 » 12.11.2023{, 09:34}

Di123, представленная Вами, Дима, расширенная аналитика, восхитила мое воспаленное сознание!
СпойлерПоказать
+38, блииин.
Ненавижу болеть...
ЗЫ. Кипарики знают, что такое "Генератор тока на полевом" транзистере...
И, проблемы линейности термометра NTC уйдут на порядок вниз...
ИМХО

Ответить

Вернуться в «Датчики и энкодеры»