Датчик температуры врёт

dezhavi
Offline
Зарегистрирован: 26.12.2015

Прикупил вот такой вот  датчик  температуры
http://roboparts.ru/products/max6675-k-type

Но  он  врёт. Температура кипячёной воду 110 градусов.
А мне надо точно. Что бы  сопадало с ртутным.
Что с ним можно сделать?

Спасибо.

Radjah
Offline
Зарегистрирован: 06.08.2014

Ну дык протарируй его.

Есть еще DS28B20 -55..125 по даташиту.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Чем измеряли?
При замкнутом входе что показывает?
Какая температура холодного спая?

dezhavi
Offline
Зарегистрирован: 26.12.2015

Измерял градусником обычным. Не  сопадает.
Сейчас просто в воду  опускаю. 
А как  измерить темпратуру  холодного спая?
Не  совсем понял, что такое  замкнутый вход? Поясните  пожалуйста.

ПС. Я  ардуино только недавно  начал заниматься,  много чего не  знаю ((

Спасибо

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Обычно температура холодного спая равна температуре вашей окружающей среды ( возможно комнатной)
Замыкают обычно чем-то металлическим.
Например пинцетом, куском провода....

dezhavi
Offline
Зарегистрирован: 26.12.2015

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Я не пойму никак: у вас под рукой нет ничего металлического?
К чему дискуссия, замкните наконец чем-то датчик.
Просто когда замкнёте он должен показать температуру холодного спая.
А вообще-то пишут что всё решается простой калибровкой.

dezhavi
Offline
Зарегистрирован: 26.12.2015

Сейчас нету, датчик дома, а я пытаюсь понять.  не  сердитесь )))
Те если я зампку датчик, он должен мне  показать температуру  металла, к  ткорому я  замкнул датчик?
А как быть  с водой? ТОже  надо через замыкание железа?

Спасибо!

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Он должен показывать температуру вашей микросхемы.
Это холодный спай термопары.
Металл тут не при чём, он не датчик.
Он просто подаст сигнал 0.00000000000 милливольт на вход

dezhavi
Offline
Зарегистрирован: 26.12.2015

Вот тут у меня  и есть  затык.
Насколько я понимаю, микросхема, изменяет сопротовление на конце провода и в зависимости от этого вычисляет температуру, я правильно понимаю?
Моя микрочхема находиться же  далеко от измеряемогог объекта.
Вот я  окунаю датчик в воду, что еще  надо что бы  оно показывало точно?
Что я  должен замкнуть.
 

Уж простите за тупизну )

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Какое сопротивление???????????

Термопара выдаёт НАПРЯЖЕНИЕ!!!

http://electrik.info/main/automation/443-datchiki-temperatury-termopary....
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%80%D0%BC%D0%BE%D0%BF%D0%B0...

gena
Offline
Зарегистрирован: 04.11.2012

  Попробуйте другой датчик. Проверьте показания при комнатной температуре. Покажите скетч. Изучите документацию на микросхему MAX.

dezhavi
Offline
Зарегистрирован: 26.12.2015

При комнатной  выше  на 3-4 градуса. 
Кипяток 110 градусов.

Про  другой датчик,  тоже  думаю надо попробовать.

Счетч дома. Из дома покажу.

dezhavi
Offline
Зарегистрирован: 26.12.2015

Вот  скетч, он примитивный
 

#include "max6675.h"

int thermoDO = 2;  //он же SO
int thermoCS = 3;
int thermoCLK = 4;  //он же SCK

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

int vccPin = 5;  //пин для питания
int gndPin = 6;  //пин для земли

void setup() {
  Serial.begin(9600);
  //активируем питание и землю
  pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
  pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
  Serial.println("MAX6675 test");
  //ждем стабилизации чипа MAX
  delay(500);
}

void loop() {
  //Выводим показания в монитор порта
  Serial.print("C = ");
  Serial.print(thermocouple.readCelsius());
  Serial.print(";   F = ");
  Serial.println(thermocouple.readFahrenheit());
  delay(300);
}

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

dezhavi пишет:
Насколько я понимаю, микросхема, изменяет сопротовление на конце провода и в зависимости от этого вычисляет температуру, я правильно понимаю? Моя микрочхема находиться же  далеко от измеряемогог объекта.

Далеко - это десятки метров? :) Хотя, судя по даташиту, у нее этот компенсатор холодного спая внутри микросхемы зашит.

dezhavi пишет:
Вот я  окунаю датчик в воду, что еще  надо что бы  оно показывало точно?

Разобраться - как меряет микросхема, возможно ей требуется компенсация сопротивления проводов, или просто откалибровать по двум точкам: кипение воды и таяние снега/льда и ввести поправочные коэффициенты. Но это уже что называется микроскопом гвозди забивать.

http://termodat.msk.ru/article/pervichnyie-preobrazovateli-temperaturyi-termoparyi-i-termosoprotivleniya - Вот немножко теории про термопары и термосопротивления...

http://arduino-diy.com/arduino-termopara - а вот про подключение и борьбу с помехами...

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Какая компенсация сопротивления?
термопара- источник ЭДС, как батарейка.
Не будете нагружать- не будет течь ток - не будет падения напряжения на сопротивлении линии.
Георг Ом давно писал как-то об этом  явлении...

temenator
Offline
Зарегистрирован: 26.12.2015

Поздновато но влезу :)

При измерениях термопарами. 

Всегда нужно знать температуру холодного спая.

Имеется ввиду температура места подключения.

Кому интересно могут погуглить метрологию или госты на термопары.

Если нет необходимости измерения высоких температур то стоит забить на термопары.

 

 

dezhavi
Offline
Зарегистрирован: 26.12.2015

Как же мерить температуру без этого гемороя?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Вам мерять для Ардуины или для регулирования?

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

trembo пишет:
Какая компенсация сопротивления?
термопара- источник ЭДС, как батарейка.

http://contravt-metodichka.ru/?id=3916

Цитата:
Подключение к клеммным соединителям должно производиться либо термопарными электродами того же типа, что и используемая термопара, либо соответствующими компенсационными проводами. При работе с приборами НПФ КонтрАвт общее сопротивление соединительных проводов не должно превышать 100 Ом. Компенсационные провода обычно дешевле, имеют необходимую оболочку и меньшее электрическое сопротивление.

dezhavi
Offline
Зарегистрирован: 26.12.2015

Загрузили, дак  загрузили...

temenator
Offline
Зарегистрирован: 26.12.2015

Вот покури насчет компенсации Т холодного спая http://www.radioradar.net/hand_book/documentation/terpara.html.

Как вариант или считать Т спая как некую константу или используя датчик меги (в 328 он имеется), строить зависимость.

В промышленных шкафах у нас всегда был датчик который висел в шкафу и по нему была компенсация.

Но там измерялись Т газовой турбины и на погрешность -+ 5 градусов было пофиг.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Датчик в Меге врёт ещё больше чем любой термометр.
 

temenator
Offline
Зарегистрирован: 26.12.2015

В данном случае мелочи,тут хоть примерно знать сколько компенсировать :)

dezhavi
Offline
Зарегистрирован: 26.12.2015

Дак, как понимать солько  компенсировать?
А может купить  датчик другого принципа действия?

bwn
Offline
Зарегистрирован: 25.08.2014

dezhavi пишет:

Дак, как понимать солько  компенсировать?
А может купить  датчик другого принципа действия?

Купи DS18B20 он до 125 градусов и уже с гильзами есть.

Radjah
Offline
Зарегистрирован: 06.08.2014

Я это сразу посоветовал.

bwn
Offline
Зарегистрирован: 25.08.2014

Radjah пишет:

Я это сразу посоветовал.

ТС на тот момент еще не осознал глубину тоннеля, в который залез.)))))

Radjah
Offline
Зарегистрирован: 06.08.2014

Ну DS28B20 может измерять температуру холодного спая, тогда точность всей балайки только повысится. :)

dezhavi
Offline
Зарегистрирован: 26.12.2015

Дааа. Не понимал ))) ПИД параметры меня пугают

kvaDrug
Offline
Зарегистрирован: 02.01.2016

1. Термопара k-типа сама по себе является неточной, погрешность 1.5 градуса в лучшем случае.
2. Ваш датчик не является герметичным, окуная его в воду смотрите, чтобы вода сверху не затекала. Вода замкнет термопару, тем самым повлияет на результат.
3. В MAX6675 уже есть встроенный компенсатор холодного спая, ничего дополнительно шаманить не нужно.

Streloch
Offline
Зарегистрирован: 08.04.2018

Извиняюсь за пост в старой ветке. Пишу, потому как поиск в интернете дает ссылку сюда.

Сначала коротко: Для связки из термопары тип К, max6675 и библиотеки adafruit max6675.h для Arduino я просто отнимаю от показаний термопары 10 градусов и получаю относительно точные значения температуры.

Теперь подробно. Разъясню про "холодный спай" и его компенсацию. Термопара не градусник, и она не дает значения температуры, она показывает разницу между температурой капли спая и температурой кончиков электродов. Это значит, что при комнатной температуре показание термопары будет равно 0. "Компенсация холодного спая" - это уточнение температуры холодных концов термопары любым сторонним датчиком, чтобы прибавлять его к показанию термопары. И в max6675 такой датчик уже есть.

Однако! Датчик внутри MAX6675 ошибается . Точнее, все мои  китайского происхождения микросхемы max6675 купленные в разных магазинах одинакого ошибались в показаниях на 6 градусов.
Однако! Если холодные концы термопары находятся при другой температуре, нежели max6675, то показания внутреннего датчика будут несовпадать с температурой холодных концов термопары. Исключение составляют термопары, подключенные к микросхеме специальным термокомпенсационным проводом. Такое соединение можно условно считать "цельной термопарой с длинющими электродами". Часто термокомпенсационный провод сделан из тех же материалов, что и сама термопара.

Итак, чтобы получить более-менее точные показания необходимо провести калибровку данных, получаемых с микросхемы.

1. Температура холодного спая (датчик внутри микосхемы max6675) дает ошибку в 4-10 градусов. Замкните контакты подключения термопары простым медным проводом, и вы получите значение "комнатной" температуры внутри микросхемы. Сравните показание с любым прибором, которому вы доверяете.

2. Термопары все уникальны, кроме повереных в метрологической службе. Потому необходимо провести уточнение ошибки для конкретной термопары на гарантированных значениях температуры. Первая гарантированная температура - температура человеческого тела 36,6С. Вторая гарантированная температура - кипящая дистиллированая вода 100С. Третья гарантированная температура - тающий лед дистиллированой воды 0С. И четвертая гарантированная температура - комнатная температура, если у вас есть точный градусник. Мои опыты показали, что получить совпадение на всех точках не удается. И потому приходится выбирать поправку к показаниям термопары применительно к конкрентому интервалу температур.

Замечу, что max6675 не способен конвертировать показания термопары ниже 0С и выше +1024С. Потому гарантированная температура тающей воды неприменима конкретно к этой модели цифрового преобразователя.

Замечу еще, что связка из термопары тип K, цифрового преобразователя max6675 и библиотеки для arduino adafruit max6675.h дают случайный разброс показаний в пределах +/- 2 градуса на статичной температуре. Потому использование дистиллированной воды не даст улучшения точности калибровки. Водопроводная вода тоже сойдет. А главное, высокой точности от этого прибора ожидать не стоит в принципе.

И еще пара наблюдений:

если электроды соприкасаются только в точке спая, то нагрев среднего участка электродов (не спай и не концы) не влияет на показания.

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