Калибровка датчика DS18b20

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Jeka_M пишет:

тут что-то другое.

У меня нет проминьки, что там в этом месте у неё стоит. Не оно греет (и кстати. об умении собирать - вот. пожалуйста).

Вот знаете, что напрягает? Если нужна по сути температура платы ардуиновской, то нафига даллас вообще? 328-ая ведь и сама умеет температуру мерять. Чего этим-то не пользоваться?

Logik
Offline
Зарегистрирован: 05.08.2014

Да стабилизатор там стоит, и подогревает датчик )))

Продолжаем совершенствовать код ;)

ПС. Я такие датчики опрашую по очереди по циклу. Получается период опроса если один 0,75сек а если 3 шт то 2,25сек. При этом показания датчика не меняются хоть он один хоть их три. Вывод: саморазогрев не наблюдается.

nevkon
Offline
Зарегистрирован: 20.01.2015

Ну тогда не помешает спросить как и чем питается плата? если от кроны, то действительно нагрев на 4-6 градуса у вас божеский, запихайте платку в плотный мешочек (или между двумя ватными пластинками положите) - будет совсем весело.

хрустальный шар отдыхает :)

lean_74
Offline
Зарегистрирован: 22.12.2015

Поднимем вопрос. Что имеем: четыре далласа, подключенные к разным пинам, Датчики из одной партии, разброс по параметрам до 1,2 градусов, вместо обящанных 0,5 производителем. Если подкорректировать показания в одном температурном диапазоне, скажем в районе 36,6 градусов, то в остальных показания разбегаются, так при температуре 24,5 градусов снова показания разные, какие будут мысли как их синхронизировать? создавать разные таблицы, для каждого датчика и его диапазона? Все датчики подключены одинаково, равной по длине проводами, лежат рядом на столе. 

//#include <avr/wdt.h>
#include <Wire.h>
#include <EEPROM2.h>
#include <LiquidCrystal_I2C.h>
                                                                                                                                                                                                                                              
#include <OneWire.h>
//LiquidCrystal_I2C lcd(0x27, 16, 2);  // инициализация библиотеки дисплея
LiquidCrystal_I2C lcd(0x3F, 16, 2);  // инициализация библиотеки дисплея
#include <SPI.h>
#include <SD.h>

File myFile;


#define pinds1 14  //пины для подключения Далласов
#define pinds2 15
#define pinds3 16
#define pinds4 17

int temp[4];//текущая температура в термометрах  
int tempCorrect[4]={0,0,0,0};//температура корректировки текущего термометра  
//int memorytempCorrect[4]={18,20,22,24};// место в памяти где храним температуру корректировки текущего термометра  
unsigned int id=0;

uint8_t secund = 0;
uint8_t oldsec = 0;
//uint8_t old2sec = 0;
uint8_t old10sec = 0;
int memoryday_Loger[4]={10,12,14,16}; 
//#define histeresis 10   //Это гистерезис = 1 градус цельсия
int day_Loger[4] ={0,0,0,0};              //массив для хранения текущих дней   в обычном исчислени 1,2,3,
int currentdayRTC = 1;           // текущий день 
int oldcurrentdayRTC = 1;        // предыдущий день 

//Если на 1-шине сидит один датчик, то его ID знать не требуется!
OneWire ds1(pinds1);// создаем объект ds класса OneWire с единственным параметром номер пина шины OneWire
OneWire ds2(pinds2);
OneWire ds3(pinds3);
OneWire ds4(pinds4);
OneWire *pinds[]={&ds1,&ds2,&ds3,&ds4}; //создаем массив с указателями на отдельные объекты класса OneWire

#define START_CONVERT 0          
#define READ_TEMP 1

//#define beeper_pin 6                //пищалка 

volatile uint8_t minut=0;

volatile uint8_t chas=0;

volatile uint8_t sec=0;

volatile int den=0;




void setup() {
  Serial.begin(9600);
  Serial.print("Initializing SD card...");
   
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
    // Проверяем, существует ли на карте файл data.csv, если существует, то удаляем его.
  if(SD.exists("data.csv")) {
    SD.remove("data.csv");
  }
  // Выводим сообщение о том, что инициализация прошла успешно

  Serial.println("initialization done.");
  
  Wire.begin();        // старт I2C
  
  lcd.begin();          // Старт дисплея
//  lcd.backlight();     // Включаем подсветку дисплея
 // lcd.clear();
    welcome();
    EEPROM_read(26,currentdayRTC);//Было 22
    den=currentdayRTC;
    EEPROM_read(28,oldcurrentdayRTC);//Было 24
  for (int i=0; i<4; i++){
  tempProcess(START_CONVERT,*pinds[i]);//конвентируем
//  EEPROM_read(memorytempCorrect[i], tempCorrect[i]);//при перезагрузке ститываем температуру корректировки термометров
  EEPROM_read(memoryday_Loger[i], day_Loger[i]); //при перезагрузке ститываем текущийй день    
 }
   // настройкa часов
  TCCR1A=(1<<WGM11); //режим14 FAST PWM 
  TCCR1B=(1<<CS12)|(1<<WGM13)|(1<<WGM12); //делить частоту CPU на 256
  ICR1=62499;  // (16000000MHz /div256) -1 = 1 раз в секунду
  TIMSK1=(1<<TOIE1); //разрешить прерывание
 
 
  
  delay(2000);
//  wdt_enable (WDTO_8S); //взводим сторожевой таймер на 8 секунд.

}

 ISR (TIMER1_OVF_vect) { 
sec++ ; //инкремент переменной каждую секунду 
if (sec>59){sec=0; minut++; }// disp = (chas * 100) + minut;} 
if (minut>59){minut=0; chas++;} // disp = (chas * 100) + minut;} // при записи каждый час хватит памяти на 11 лет
if (chas>23){chas=0;den++; currentdayRTC++;}//readSet();
if (den>36){den=0; } // частный случай для нас не принципиальный,
  
} 




void loop() {
//  wdt_reset(); //сбрасываем "собаку"
  secund = sec;
  if (oldsec != secund) {
    thermostat ();// каждую секунду получаем данные с датчиков температуры 
    oldsec = secund; //
    old10sec++;
    if (old10sec > 10){
      save_Message();
      old10sec = 0;
      
    }

    lcd.setCursor(0, 0);                 // устанавливаем курсор в 0-ом столбце, 0 строка (начинается с 0)
     lcd.print("T1=");
    lcd.print(temp[0]/10);// печать температуры на дисплей temp
    lcd.print(".");
    lcd.print(temp[0] % 10, 1);
    lcd.print((char)223);
    lcd.print("T2=");
//    lcd.print(day_Loger[1]);
    lcd.print(temp[1]/10);// печать температуры на дисплей temp
    lcd.print(".");
    lcd.print(temp[1] % 10, 1);
    lcd.print((char)223);
    lcd.print("                "); 
    lcd.setCursor(0, 1);    
     lcd.print("T3=");
    lcd.print(temp[2]/10);// печать температуры на дисплей temp
    lcd.print(".");
    lcd.print(temp[2] % 10, 1);
    lcd.print((char)223);
     lcd.print("T4=");
   // lcd.print(day_Loger[2]);
    lcd.print(temp[3]/10);// печать температуры на дисплей temp
    lcd.print(".");
    lcd.print(temp[3] % 10, 1);
    lcd.print((char)223);
     lcd.print("                "); 
 // }

  }
  if (oldcurrentdayRTC != currentdayRTC) { // раз в день читаем настройки заново
    for (int i=0; i<3; i++){  
    day_Loger[i]++;
    if (day_Loger[i]>=255) day_Loger[i]=0;
    EEPROM_write(memoryday_Loger[i], day_Loger[i]);// записываем новый день в память меги, чтобы не потерять во время сбоя или перезагрузки системы
 //   EEPROM_read(memorytempCorrect[i], tempCorrect[i]);//раз в день на всякий случай ститываем температуру корректировки термометров
  
  }
    oldcurrentdayRTC = currentdayRTC;

    EEPROM_write(26,currentdayRTC);
    EEPROM_write(28,oldcurrentdayRTC);
  }
}


void welcome() {
  lcd.setCursor(0, 0);
  lcd.print("SMART loger v01");
  lcd.setCursor(0, 1);
  lcd.print("only for My");
}



void thermostat () {
  for (int i=0; i<4; i++){
  temp[i]= tempProcess(READ_TEMP,*pinds[i])+tempCorrect[i];//читаем Температуру и корректировку к ней
  tempProcess(START_CONVERT,*pinds[i]);
      

  } //тут конец цикла for
//  delay(1000);//только для примера

}

//============================== 
int tempProcess(boolean ch,OneWire &ds){
  int t=0; 
  if(!ch){
    ds.reset(); 
    ds.write(0xCC);
    ds.write(0x44);
  }
  else{
    ds.reset();
    ds.write(0xCC);
    ds.write(0xBE);
    t= ds.read(); 
    t = t | (ds.read()<<8); 
    //return  t>>4;//целые *C, десятые отброшены
    //return  (t+8)>>4;//целые *С с округлением
    return  (t*10)>>4;//целое в десятых *C (214=>21,4*C)
  }
}
//пищалка////////////////////////////////////////////////////////////////////////
void beeper(int duration) {
//  tone(beeper_pin, 2000, duration);
}

void save_Message() {

id=id+1;
    Serial.print(temp[0]);
    Serial.print(";");
    Serial.print(temp[1]);
    Serial.print(";");
    Serial.print(temp[2]);
    Serial.print(";");
    Serial.print(temp[3]);
    Serial.print(";");
    Serial.println(id);
  
   myFile = SD.open("data.csv", FILE_WRITE); 
 // delay(500);
  
  // if the file opened okay, write to it:
  if (myFile) {
 //   Serial.print("Writing to data.csv...");
 
    myFile.print(temp[0]);
    myFile.print(";");
    myFile.print(temp[1]);
    myFile.print(";");
    myFile.print(temp[2]);
    myFile.print(";");
 
    myFile.print(temp[3]);
    myFile.print(";");
	
    myFile.println(id);
	// close the file:
    myFile.close();
//    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening data.csv");
  }



}
Initializing SD card...initialization done.
260;260;240;256;1
260;259;241;255;2
260;259;241;255;3
259;258;241;255;4
258;258;241;255;5
256;257;241;255;6
256;257;241;255;7
257;257;241;255;8
256;256;241;254;9
256;256;242;254;10
256;256;242;254;11
256;256;242;254;12
256;256;242;254;13
256;256;242;253;14
256;256;241;253;15
256;256;241;253;16
256;256;242;254;17
255;255;242;254;18
255;255;242;254;19
255;255;241;254;20

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

lean_74 пишет:

Поднимем вопрос. Что имеем: четыре далласа, подключенные к разным пинам, Датчики из одной партии, разброс по параметрам до 1,2 градусов, вместо обящанных 0,5 производителем. Если подкорректировать показания в одном температурном диапазоне, скажем в районе 36,6 градусов, то в остальных показания разбегаются, так при температуре 24,5 градусов снова показания разные, какие будут мысли как их синхронизировать? создавать разные таблицы, для каждого датчика и его диапазона? Все датчики подключены одинаково, равной по длине проводами, лежат рядом на столе. 

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

lean_74
Offline
Зарегистрирован: 22.12.2015

bwn пишет:
Они на малейший сквознячок реагируют.

Да пусть реагируют, лишь бы одинаково реагировали, а то один на +0,6  градуса, другой на -0,5. 

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

На столе не обеспечить равномерный терморежим. Поэтому коробка с нетеплопроводным дном. Если и в ней после стабилизации так же, уже думать.

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 пишет:

Да пусть реагируют, лишь бы одинаково реагировали, а то один на +0,6  градуса, другой на -0,5. 

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

И, кстати, "один на +0,6  градуса, другой на -0,5" - это практически и есть штатная погрешность "плюс/минус 0.5" - что вас не устраивает, непонятно.

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

b707 пишет:

И, кстати, "один на +0,6  градуса, другой на -0,5" - это практически и есть штатная погрешность "плюс/минус 0.5" - что вас не устраивает, непонятно.

Причем я таких разбегов пока и не видел ни разу, хоть в одной, хоть в разных партиях, при среднекомнатной температуре обычно в пределах 1-4 единиц младшего разряда. На краях диапазона не проверял, как то не требовалось.

lean_74
Offline
Зарегистрирован: 22.12.2015

Я должен померить и записать температуру в разных точках рефрижиратора(пока он едет по нашей необъятной стране), как она там менялась во времени и никто в нем идеальные условия создавать не будет, разбег до 0,5 градуса меня устраивает(хотя лучше бы 0,1 градуса), а вот в 1,2 уже нет. Возможно отказаться от Далласов и на термисторы переходить? У кого есть опыть поделитесь инфой? Далласы брал из разных партий, разбеги в разных температурных диапазонах разные.

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

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

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 пишет:

Я должен померить и записать температуру в разных точках рефрижиратора(пока он едет по нашей необъятной стране), как она там менялась во времени и никто в нем идеальные условия создавать не будет, разбег до 0,5 градуса меня устраивает(хотя лучше бы 0,1 градуса), а вот в 1,2 уже нет.

вы пишете откровенную ерунду. У меня в комнате с закрытыми окнами и без явных сквозняков температура постоянно гуляет на 2-3 градуса. В вашем рефрижераторе температура, скажем у двери и у компрессора тоже будет отличаться градуса на 3-4 - а вы какие-то десятые пытаетесь ловить. Ставьте 2-3 датчика в разных углах и усредняйте.

lean_74
Offline
Зарегистрирован: 22.12.2015

bwn пишет:

 Долго коробку из под обуви найти?

Да в коробке уже давно, все вместе, еще и  в полотенце завернутые, один рядом к другому, то что было 1,2 градуса стало 0,8, при температуре 24 градуса и 0,2 при 36,6. 

inspiritus
Offline
Зарегистрирован: 17.12.2012

CotDaVinchi пишет:

 Вода закипела при 80 гр. С. Он чуть не упал...

спирт кипит при 78 :) 

у этих русских из крана течет водка ?

два далласа готовые, собранных  в нерж-трубках , погуженные в кастрюлю 5л  с варящимся борщем, показывали ноздря-в-ноздрю два знака после запятой.

ЗЫ. Боржч был с говядинкой, доходил на МЕДЛЕННОМ. Огне :)

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 - вы никак не можете понять простую вещь - температура двух лежащих рядом градусников МОЖЕТ ОТЛИЧАТЬСЯ на градус и больше. То есть температура этих датчиков реально разная - дело не в ошибки измерения.

lean_74
Offline
Зарегистрирован: 22.12.2015

b707 пишет:

 Ставьте 2-3 датчика в разных углах и усредняйте.

Задача в том и состоит, чтобы узнать эти разницы в разных углах, а не среднюю температуру. Требование в 0,1 градуса - требования заказчика.

lean_74
Offline
Зарегистрирован: 22.12.2015

b707 пишет:

 температура двух лежащих рядом градусников МОЖЕТ ОТЛИЧАТЬСЯ на градус и больше. То есть температура этих датчиков реально разная - дело не в ошибки измерения.

Даже так ... никогда бы не подумал... 

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 пишет:

 Требование в 0,1 градуса - требования заказчика.

Тогда непонятно, с чего вы решили, что вам Далласы подойдут с их 0.5 погрешности. Вам нужны другие датчики, как минимум с точностью 0.05 градуса. Думаю, найти будет не просто.

Может проще будет заказчику мозги вправить, что в рефрижераторе такая точность лишняя? (что, в принципе, на самом деле так и есть)

lean_74
Offline
Зарегистрирован: 22.12.2015

завтра попробую в металлическом корпусе... 

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 пишет:

b707 пишет:

 температура двух лежащих рядом градусников МОЖЕТ ОТЛИЧАТЬСЯ на градус и больше. То есть температура этих датчиков реально разная - дело не в ошибки измерения.

Даже так ... никогда бы не подумал... 

Речь о градусниках, свободно обдуваемых воздухом.

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 пишет:

завтра попробую в металлическом корпусе... 

опустите их в воду и подождите - должны практически совпасть. Это аналог коробки с ватой.

А на открытом воздухе никогда не совпадут.

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

Ловить 0,1гр в объеме ж.д. вагона, порекомендуйте заказчику поменять поставщика травы.

lean_74
Offline
Зарегистрирован: 22.12.2015

bwn пишет:

Ловить 0,1гр в объеме ж.д. вагона, порекомендуйте заказчику поменять поставщика травы.

))))) Да еще вопрос, то что я их подключил на аналоговые пины, а не на цифровые, может как - то повлиять?, мне на аналоговые просто плату было проще развести. 

b707
Offline
Зарегистрирован: 26.05.2017

lean_74 пишет:

))))) Да еще вопрос, то что я их подключил на аналоговые пины, а не на цифровые, может как - то повлиять?, мне на аналоговые просто плату было проще развести. 

нет, там цифровой протокол - он либо работает либо нет. Контрольную сумму пакета только не забывайте проверять.

vvadim
Offline
Зарегистрирован: 23.05.2012

b707 пишет:

Может проще будет заказчику мозги вправить, что в рефрижераторе такая точность лишняя? (что, в принципе, на самом деле так и есть)

да она просто никогда не возможна))))

тут или заказчик прибацанный или автор что то не договаривает.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

vvadim пишет:

тут или заказчик прибацанный или автор что то не договаривает.

Никакого прибабаца, довольно обычная ситуация. Заказчик включает в ТЗ заведомо невыполнимое требование, чтобы всегда иметь основания не заплатить или заплатить не полностью, а столько, сколько сочтёт нужным. Чуть не половина судебных дел, которые доводилось видеть, были ровно на эту тему.

b707
Offline
Зарегистрирован: 26.05.2017

ЕвгенийП пишет:

Никакого прибабаца, довольно обычная ситуация. Заказчик включает в ТЗ заведомо невыполнимое требование, чтобы всегда иметь основания не заплатить или заплатить не полностью, а столько, сколько сочтёт нужным. Чуть не половина судебных дел, которые доводилось видеть, были ровно на эту тему.

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

lean_74
Offline
Зарегистрирован: 22.12.2015

b707 пишет:

- а тендер ушел кому надо.

тут стоит задуматься.  но до сих не обманывали. как-то ровно все было. Да 0,5 градуса, было заранее оговорено.

arduino328
Offline
Зарегистрирован: 01.09.2016

lean_74 пишет:

Далласы брал из разных партий, разбеги в разных температурных диапазонах разные.

Возможно, если бы Далласы были из одной партии, то разброс был бы меньше.

inspiritus
Offline
Зарегистрирован: 17.12.2012

Два далласа. Борщ (густой, без перемешивания). Медленное кипение. 5л емкость .датчики пучком, в одном месте все.  Одинаковые показания. 

Пробовал потом на всей партии - 30 штук ( по пять одновременно) . Показания в группе были одинаковы до второго знака минуты через три после погружения.

SLKH
Offline
Зарегистрирован: 17.08.2015

ЕвгенийП пишет:

vvadim пишет:

тут или заказчик прибацанный или автор что то не договаривает.

Никакого прибабаца, довольно обычная ситуация. Заказчик включает в ТЗ заведомо невыполнимое требование, чтобы всегда иметь основания не заплатить или заплатить не полностью, а столько, сколько сочтёт нужным. Чуть не половина судебных дел, которые доводилось видеть, были ровно на эту тему.

Не обязательно. "Не ищите злой умысел там..."

Заказчик может просто не понимать элементарных вещей (которые на самом деле не элементарны). На китайских комнатных термометрах младший разряд 0,1 град. - вот он и в ТЗ это записал. То, что это и не "точность", и не "погрешность", он может не подозревать.

 

==========

а вообще интересная тема - как народ верит цифровым приборам.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

поверенным и сертифицированным прибором

Обязательно входящим в госреестр средств измерений.

evgta
Offline
Зарегистрирован: 02.09.2016

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

AlexArGC
AlexArGC аватар
Offline
Зарегистрирован: 18.11.2016

Купил 5 датчиков DS18B20 в нержавейке из под небесной.

Измерения на воздухе плавали с разбегом 3-5 градуса между датчиками

Измеряем температуру...Выполнено
Адрес: 28E01E4398180016 - Temp C: 22.87
Адрес: 289001439818009D - Temp C: 24.37
Адрес: 28E10143982100AD - Temp C: 24.06
Адрес: 28A526439817002A - Temp C: 24.75
Адрес: 28C7034398FF00AE - Temp C: 25.44

После опускания в воду, через 10 минут:

Измеряем температуру...Выполнено
Адрес: 28E01E4398180016 - Temp C: 24.12
Адрес: 289001439818009D - Temp C: 23.81
Адрес: 28E10143982100AD - Temp C: 24.19
Адрес: 28A526439817002A - Temp C: 24.69
Адрес: 28C7034398FF00AE - Temp C: 24.56

Делайте выводы! Кто погрешности собрался корректировать...

 

 

Sziklai
Offline
Зарегистрирован: 10.11.2018

Не знаю актуально ли до сих пор, но столкнулся тоже с саморазогревом этих датчиков.
Решил проблему посадив датчики на отдельный регулятор напряжения 3в и ниже.
Они при 2.2в стабильно работали. Чем ниже напряжение - меньше ток :)

b707
Offline
Зарегистрирован: 26.05.2017

Sziklai пишет:
Не знаю актуально ли до сих пор, но столкнулся тоже с саморазогревом этих датчиков

Слишком часто опрашивали, наверно

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

Тогда был бы спиртовой кумар! 

Дядя прикинул, насколько грязная вода из  крана!

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

Получил 25 датчиков в гильзах. Датчики все лежали в глухом месте, далеким от сквозняков. Температура около 21 градуса. Снятие температуры производилось по два датчика сразу. Интересовала разность показаний DS18b20 между собой в парах. 19 датчиков имели разброс менее 0,5 градусов (разница в показаниях пары датчиков). Четыре датчика показывали разброс в 0,5 градусов, типа 21,5 и 20,5 градуса. Но два датчика превзошли всех - 33 и 19 градусов!  

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

Решил для себя сделать образцовый термометр с точностью 0,01-0,05 градусов. В прошлом году заказал на пробу у Китая четыре платиновые термосопротивления. На корпусах написано Pt100. При измерении сопротивления при температуре опять таки 19-21 градуса, два  показывали одно значение сопротивления, два других - другое. Детально рассмотрю этот эффект чуть попозже, когда соберу преобразователь и можно будет детально разобраться по наклону характеристики, что это за термосопротивления.

sadman41
Offline
Зарегистрирован: 19.10.2016

Чем платину измеряли? Сопротивление провода учли?

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

Натолкнулся на вероятную причину плаваний показаний на http://forum.homedistiller.ru/index.php?topic=5378.20 

"1. После перегрева, вызванного ошибочным подключением или же колдырной пайкой, наблюдается серьезное "плавание" показаний и частый сброс регистров на исходных 85 цельсиев."

МОжет, китаеза перегревает датчики при пайке или при гильзовании? типа, если подогреть до 200 градусов, компаунд быстрее полимеризуется? Кто нибудь перегревал эти датчики?

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

CotDaVinchi пишет:

с точностью 0,01-0,05 градусов. ... Pt100. 

Ознакомьтесь - http://wexon.ru/useful/rezistivnye-termodatchiki-pt100

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

Спасибо! Я знаком с этими таблицами. Ну и с метрологией. И вообще с проблемами измерения температуры различными датчиками. Ранее не было потребности разбираться с такими проблемами, платиновые датчики прикупил для ознакомления и с датчиками и китайскими продаванами. Даже если они всучили не те датчики (это выяснится позже), к примеру медные, прибор я все равно сделаю, ибо в этом появилась потребность. Прикупить готовый - вариант не самый лучший для моих целей. АЦП - от аналоговых девиц, Мк- из Пиков... Есть у меня магазины сопротивлений, претендующих на эталоны второго порядка. Ну может быть третьего порядка... 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Брал недавно два вот таких
https://s.click.aliexpress.com/e/bBcvIpSS
Один врет аж на 10 %
Калибрую советскими лабораторными ртутными градусниками до +-0.5 градуса

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

Я не нашел в доступности эталонных лабораторных термометров с делениями в 0,1-0,05 градуса в учебных учреждениях (все переколотили). Новые никто не заказывает , типа термометр со шкалой от 10 до 20 градусов, с шагом в 0,05... Короче - оптимизация и ...! Заказывать через магазины лабораторный термометр за 1,5 тыр - тоже не вариант. А проверять и поверять DS18х20 чувствую - придется. Вобщем, проблему надо решить.

При первичном ознакомлении с датчиками я использовал старый лабораторный термометр с ценой деления 0,1 градус, термометр ГДРовский. Расхождение с градусником было в пределах 0,5 градуса, ну я и успокоился. Это было три года назад.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Лабораторные аналогично надо калибровать (
Сейчас бумажку нашёл в комплекте с градусниками - последняя калибровка была аж в мае 1975 года, средняя поправка в табличке +-0.4 градуса, естественно за 40 лет она явно стала +-градуса, а может и больше.
Кстати, в прошлом году на bme280 собирал домашний градусник - неплохо показывает.

CotDaVinchi
Offline
Зарегистрирован: 12.05.2016

Вот поэтому и хочу собрать термометр лабораторный, для независимости. Сильно облегчит построение систем измерения температуры. ВМЕ280 тоже есть, но к сожалению, плохо переносит суровые условия, в которых придется работать. Буду использовать его только для измерения влажности

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

CotDaVinchi пишет:

Я не нашел в доступности эталонных лабораторных термометров с делениями в 0,1-0,05 градуса в учебных учреждениях (все переколотили). Новые никто не заказывает , типа термометр со шкалой от 10 до 20 градусов, с шагом в 0,05... Короче - оптимизация и ...! Заказывать через магазины лабораторный термометр за 1,5 тыр - тоже не вариант. А проверять и поверять DS18х20 чувствую - придется. Вобщем, проблему надо решить.

При первичном ознакомлении с датчиками я использовал старый лабораторный термометр с ценой деления 0,1 градус, термометр ГДРовский. Расхождение с градусником было в пределах 0,5 градуса, ну я и успокоился. Это было три года назад.

Ну а данный природой термостат + ртутный градусник, чем уж так плохи? Там 0,1-0,2 вроде легко ловится?