блок измерения NTC

измерение температуры по таблице

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок измерения NTC

#1

Сообщение pan » 08.01.2018{, 15:54}

Изображение


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

Изображение
Вложения
myNTC_(CODE).ubi
(23.7 КБ) 483 скачивания
Последний раз редактировалось pan 08.01.2018{, 18:09}, всего редактировалось 3 раза.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

блок измерения NTC

#21

Сообщение ViktorPetrov » 10.09.2020{, 22:39}

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

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

блок измерения NTC

#22

Сообщение Labu559 » 10.09.2020{, 22:57}

Labu559 писал(а):
10.09.2020{, 13:41}
Беру бан за свой счёт, дальше без меня.
Умеющий смотреть- узрит!
ThermistorFullBridge.png
Linearize thermistors with new formula
LinearizeThermistor.xlsx
(433.16 КБ) 65 скачиваний
Вложения
Thermostat.rar
(224.99 КБ) 67 скачиваний
Последний раз редактировалось Labu559 02.07.2021{, 13:06}, всего редактировалось 1 раз.

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

блок измерения NTC

#23

Сообщение Di123 » 11.09.2020{, 14:25}

Labu559, пойдём по доходчевому пути
мы снимаем допустим температуру до десятых градуса
что нам даст использование опрника вместо амс этот тл ?
я даже сказал насколько велика была бы его эфективность в данном случае
а теперь возьмём сотые градуса ....

Brand2, пробую ваш вариант с плотером на калибровку но ничего не получается
графики не рисуются
более того судя по скрину они где то там наверху наверное
2020-09-11_181609.png
2020-09-11_181609.png (5.99 КБ) 1527 просмотров

Brand2
Лейтенант
Сообщения: 414
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 41
Откуда: Haifa
Имя: Alex

блок измерения NTC

#24

Сообщение Brand2 » 11.09.2020{, 18:17}

Di123, я не писал про плоттер кажется ничего,просто вывожу данные в монитор порта и потом ввожу их в блок масштабирования.

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

блок измерения NTC

#25

Сообщение Di123 » 11.09.2020{, 19:01}

Brand2, мне показали пример недавно как плотером пользоваться а там был как раз уарт всё как у вас
ну да ладно
не понятно один нюанс в том что в мониторе пишется значение ацп
но вы пишите что вводите потом их в блок но в блоке у автора вводятся только сопротивление Res_table

Отправлено спустя 4 минуты 19 секунд:
понятно у вас там видимо что то своё

Отправлено спустя 5 минут 57 секунд:
нуда у вас даже проще
налил в стакан кипяток опустил их туда и поставил за окно на часик а потом с монитора выбрал нужные тебе точки и на график набросать
и ни греть ни дуть ни замерять ничего не надо

Brand2
Лейтенант
Сообщения: 414
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 41
Откуда: Haifa
Имя: Alex

блок измерения NTC

#26

Сообщение Brand2 » 11.09.2020{, 20:19}

Di123,в блоке масштабирования в качестве входной величины вводите значение ацп,а выходной-температуру.
Лучше температуру вводить в виде трех цифр,если например 37,5 то вводите 375,а на выходе блока масштабирование поставьте деление на 10.

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

блок измерения NTC

#27

Сообщение Di123 » 11.09.2020{, 20:38}

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

тоесть достаточно умножить на 100 а после таблицы поделить на 100 и у нас наконецто будут сотые градуса

Отправлено спустя 3 минуты 9 секунд:
хотя там даже проще нужно выбрать флоат при делении и само всё будет

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

блок измерения NTC

#28

Сообщение ViktorPetrov » 11.09.2020{, 21:27}

А откуда сотые? если заполнять таблицу с шагом 10 градусов точность будит 0.5 градусов ,при шаге 2 градуса точность 0.1 градус уловили суть? Блок масштабирования рассчитывает данные тем самым грузит МК вычислениями ,а данный блок берет табличные данные зарание рассчитанные Вами и подставляет ,занимая только память для хранения таблицы .

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

блок измерения NTC

#29

Сообщение Di123 » 12.09.2020{, 08:28}

да всё верно я уже заметил вчера он перелистывает по 0,11 градуса
по поводу загружености и памяти для простых задач этого в идеале хватит
темболее как показали эксперементы разбег с эталоном калибровки был 0,35 гр только вот из за большого шага +/- 0,11 гр у него график более грубее чем у дс18б20 с её шагом в 0,065 гр

попоже поробую на есп32 там ацп поинтереснее да и проблем с памятью и загруженостью проца нету

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

блок измерения NTC

#30

Сообщение Labu559 » 12.09.2020{, 17:35}

Di123 писал(а):
11.09.2020{, 14:25}
Labu559, пойдём по доходчевому пути
Ув. Дмитрий, да я уже не знаю как более доходчиво, привожу документы, цитаты из профильных сайтов, предоставляя информацию стараюсь не делать однозначных/оценочных выводов. Ну попробуем:
Di123 писал(а):
11.09.2020{, 14:25}
что нам даст использование опорника вместо амс этот тл ?
В стабилизаторах AMS1117 5,0:Показать
1). Допускается разброс выходного напряжения от 4,85 до 5,15В. Значит необходимо калибровать датчик (снимать данные для таблицы) на том МК (со стабилизатором), который будет потом применяться как прибор. Применение внешней опоры позволяет без проблем перенести проект на любой МК (5,0V или 3.3V) без последующей калибровки и не обращать внимания на другую периферию МК (см.ниже).
2). Заявленная температурная стабильность для AMS1117 0,5%. Это значит, что при изменении температуры стабилизатора на 1°C выходное напряжение 5,0V может измениться на 5,0V*0,5%/100%=0.025V, а это значит, что если при калибровке при мизерной нагрузке tстабилизатора = ~t вн.среды (к примеру ~20°C), и после подключения остальной периферии (нагрузка) tстаб. поднялась до 40°C, то соответственно выходное напряжение может убежать в любую сторону на (t2-t1)*0,025V, или на +-0,5V.
3). От AMS1117 запитана другая периферия, которая не отключается/"замораживается" во время работы АЦП, а к примеру, конденсатор/индуктивность в момент комутации-подключения имеет близконулевое сопротивление!, что есть источником пульсаций (см.ниже)
Di123 писал(а):
11.09.2020{, 14:25}
насколько велика была бы его эфективность в данном случае
а теперь возьмём сотые градуса ...
На сколько именно эти факторы испортят результаты измерений? Если смотреть по отдельности, может показаться, что никак или близко к тому, ведь АЦП питается сама, сравнивает с тем же напряжением, что питается измерительная часть. Но!, делает это в разное время (сначала заряжается внутренний конденсатор выборки, отсекается от входа и после сравнивается с текущим напряжением на AREF или AMS1117! Я писал, выводите результаты измерений несколько раз подряд и Вы увидите в мониторе их дрейф, т.е. при неизменной температуре — при первом измерении- одни показания, при втором- другие, при следующих... и т.д. Есть такое? Нет идеальной системы, а все ошибки имеют свойство накапливаться, отдельные влияния их на результат измерений суммироваться. А обычные фильтры значений/усреднения, которые применяют, ошибок не устраняют, а просто их маскируют.
Может не по теме:Показать
На коте делали паяльную станцию. Всё просто: паяльник+операционник+Атмега-8+реле. Далее ШИМ, -медленный, -быстрый, потом появился опорник на TL431(ну как без него при ШИМе), потом автокалибровка и АТМега16, потом и ПИД регулятор. Тему закрыли, АТМеги16 уже не хватает. Но главное: все версии нашли поклонников, а "мораль у басни такова": Каждый волен выбирать, делайте как хотите/можете/получается, пренебрегайте чем хотите исходя из своей задачи,- главное, чтобы результат удовлетворял именно Вас. Но если неудовлетворит- это Ваши время, усилия, опыт, путь.
Всё! Удачи всем!
Последний раз редактировалось Labu559 02.07.2021{, 14:02}, всего редактировалось 1 раз.

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

блок измерения NTC

#31

Сообщение Di123 » 13.09.2020{, 07:23}

ладно амс я непитал от внешнего тут я не знаю что будет с показанием хотя она разогревается под 60 гр обычно у меня от внешки ну это проверю сравнение графиков на холодном и горячем потом

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

первое предположил что опорник плавает и ацп сбрасывает свою максимальную разрядность
но замеры после амс показали 3,2486в +/- 0,0002в плавали в конце
тоесть стаб там совершенно идеальный

второе подумал ацп на 15 пине взаимосвязан с шим при загрузке и видимо ему плохо от этого
поменял на 2 пин тоже самое но у него якобы светодиод завязан на нём возможно он болеет
поменял на 13 это вроде как чистый вх/вых но и на нём тоже самое
убрал эту версию

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

четвёртое склоняюсь покашто к попробовать термистор на 100к мало ли мож какие помехи неособо шунтируются при 10к на входе
но что то я в этой версии сомневаюсь

влияние датчика я предпологаю тут исключено ибо при калибровке допустим грубо говоря при 55 гр выдавал 1000 ацп а при 54 гр 900 а при 53 гр 1100 а при 52 гр 1200 ... тоесть условно перескоки были от предыдущего значения на градус (у нано перескоков небыло даже близко там значения ацп отличались довольно равномерно между собой если их вычитать от предыдущих)
температура стабильно падала под самоостыванием и вернуться она обратно не могла да и эталон бы зафиксировал это как повторный замер температуры но и датчик не двигался из своей тепловой рубашки что образовывалась вокруг него

в общем пока наблюдаю за чудесами магии

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

блок измерения NTC

#32

Сообщение fsergei70 » 30.06.2021{, 14:45}

Пытаюсь сделать блок расчета температуры по этому скетчу http://psenyukov.ru/подключение-термистора-к-arduino/
Смущает формула деления 1023 на значение считанное с аналогового входа минус 1, Теоретически если считаем с аналогово входа 1 получится деление на 0. Может стоит к считанному значению с входа все таки прибавлять 1.
Вот собственно проект с блоком
Вложения
NTC.flp
(194.36 КБ) 54 скачивания

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

блок измерения NTC

#33

Сообщение Labu559 » 30.06.2021{, 20:59}

fsergei70 писал(а):
30.06.2021{, 14:45}
если считаем с аналогово входа 1 получится деление на 0
Нет, если АЦП выдаст 1, то получится 1023/1 и после из результата деления вычитается 1 :), см. приоритет арифметических операций. Получить на АЦП 0 (деление на 0) возможно только при условии полного КЗ в нижнем плече делителя, при замыкании проводов выносного датчика-термистора (если он в нижнем плече, как рекоммендуют в этой теме и ув. Boroda в своей теме термистора). Если же термистор в верхнем плече делителя (я предлагал выше именно так подсоединять NTC, или как на рисунке в проекте по Вашей ссылке, хотя сам скетч для термистора в нижнем плече- ошибка многократных copy/paste-ов первоисточника, вероятно от-сюда!), то только при обрыве линии/датчика. Учитывая это, можно дополнить/оптимизировать код по Вашей ссылке,
добавив проверку такого результата АЦППоказать
Thermistor_Fix2.ino
Оптимизированный скетч
(1.3 КБ) 31 скачивание
NTC_Arduino.png
Симуляция в Протеусе "Thermistor_Fix2.ino".
Читал, что деление на 0 вызывает програмную перезагрузку МК (не проверял).
:smile37:
Удачи!

MaksVish
Рядовой
Сообщения: 91
Зарегистрирован: 14.07.2018{, 19:09}
Репутация: 1
Имя: Максим

блок измерения NTC

#34

Сообщение MaksVish » 07.11.2021{, 11:01}

Здравствуйте! Подскажите, ваш блок будет работать с термистором с положительной характеристикой!? Нельзя как то изменить параметры блока, что бы он подходил для датчика PTC? Внес значения своего датчика, и соответственно при комнатной температуре показывает 9*С и не реагирует на нагрев, да датчик PTC 2000 Om.

Ответить

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