Подключение температурного датчика Pt1000

Junior
Offline
Зарегистрирован: 16.12.2013

Добрый день! Помогите пожалуйста новичку! Подскажите как подключить температурный датчик Pt1000 к arduino, перевести все в градусы и результат выводить  на COM-порт? Очень нужно, буду рад любой инфе.:)P.S. Основная сложность в пересчете показаний в градусы.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

такие сенсоры нужно подключать к контроллеру по такой схеме (расчеты лень искать -поищите сами)

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

Junior
Offline
Зарегистрирован: 16.12.2013

А если как обычный делитель напряжения подключить? Больше волнует программная реализация. Видел подключение через делитель на atmege, а вот как пересчитывается нет возможности посмотреть

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Ну при 0 градусов он 1000 ом а при 100 градусах 1385.1 ом - схему можно упростить, но тогда точность будет ниже. ПОдключим через резистор 1000 ом к +5v. Получаем при 0 analogRead будет 1024 а при 100 надо считать(но лень и собственно не мне это надо).

R = 1000

V_in / VCC = R_term / (R+R_term) = analogRead()/2048  

Отношение к темпиратуре:

R_t0 = 1000

R_t100 = 1385.1

T_rx = (R_t100 - R_t0)/100 = 3.851 ом/градус

t = (R_term - R_t0)/T_rx

вот как то так это можно расчитать. 

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

Смотрите "схемы включения PT100", в Вашем случае будет просто другое сопротивление, а так - принцип измерения тот же...

Junior
Offline
Зарегистрирован: 16.12.2013

Спасибо, буду пробовать:)

sl20007@mail.ru
Offline
Зарегистрирован: 03.05.2013
//*****************************************************************************
// r - это напряжение на выходе инструментального усилителя, собранного по схеме в описании датчика,
// то есть на выходе 1В соответствует 1000 Ом (0 град С), опорное напряжение 2,5 В
// Функция расчета температуры датчика Pt1000(альфа=0,00385) из его сопротивления

double Input;

float GetPt1000Temperature(int r) {
  float t;
  float const D[8] = {
    255.819, 9.1455, -2.92363, 1.7909, 2.443792766,
    3.9083e-3, -5.775e-3, 1000.12
  };
  //const D = (D0, D1, D2, D3, (2.5V/1023), A, B/10000, Ro)
  if (r >= 410)
  {
    t = (sqrt((sq(D[5]) - ((1.0 - (r * D[4] / D[7])) *
                           0.0004 * D[6]))) - D[5]) / (0.0002 * D[6]);
  }
  else {
    t = D[0] * (((r * D[5]) / D[7]) - 1.0) +
        D[1] * sq(((r * D[5]) / D[7]) - 1.0) +
        D[2] * pow((((r * D[5]) / D[7]) - 1.0), 3) +
        D[3] * pow((((r * D[5]) / D[7]) - 1.0), 4);
  }
  return t;
}
void setup()  {
  Serial.begin(9600);
  Input = analogRead(0);
}
void loop()  {
   //считаем и выводим температуру RTD
    float TempRTD = GetPt1000Temperature(Input);
    Serial.print(" RTD ");
    Serial.print(TempRTD, 2);

}


//******************************************************************************


 

sl20007@mail.ru
Offline
Зарегистрирован: 03.05.2013

Расчет по Гост Р 8.625-2006

http://files.stroyinf.ru/Data1/51/51078/#i508376

 

 

Junior
Offline
Зарегистрирован: 16.12.2013

Спасибо за информацию! А что за схема в описаний датчика, ссылку бы посмотреть, буду очень благодарен:)

 

sl20007@mail.ru
Offline
Зарегистрирован: 03.05.2013

 

Я использовал ОУ LM358

http://www.farnell.com/datasheets/621743.pdf

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я бы предложил использовать более точный вариант

http://ru.aliexpress.com/item/HX711-Weighing-Sensor-Dual-Channel-24-Bit-...

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

jeka_tm пишет:

HX711-Weighing-Sensor-Dual-Channel-24-Bit-Precision-A-D

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

Подробнее на http://www.dfrobot.com/wiki/index.php/Weight_Sensor_Module_V1