PT100/PT1000 工业级温度传感器

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(资源)
 
(未显示1个用户的9个中间版本)
第1行: 第1行:
 
== 概述 ==
 
== 概述 ==
  
工业和医学应用中,如果在 -200°C ~ +800°C 范围内对温度测量的绝对精度和可重复性要求非常高,最好选择铂电阻温度 (RT) 检测器,即 PRTD。铂元素非常稳定,且不容易腐蚀或氧化
+
工业和医学应用中,如果测量的温度范围很宽,比如 -200°C ~ +800°C ,且对精度、可重复性要求比较高,最好的选择是铂电阻温度 (RT) 检测器,即 PRTD。
  
常见的 PRTD 包括 PT100、PT500 和 PT1000,0°C下分别呈现100Ω、500Ω和1000Ω阻值,其阻值会随温度变化 ([[PT1000 Table]])。也有成本稍高的大阻值传感器,例如 PT10000
+
PRTD 中的铂元素非常稳定,且不容易腐蚀或氧化。PRTD 的电阻与温度呈线性关系,温度越高电阻越大。
 +
 
 +
常见的 PRTD 包括 PT100、PT500 和 PT1000。在 0°C 下分别呈现 100Ω、500Ω 和 1000Ω 的阻值,其阻值会随温度变化 ([[PT1000 Table]])。也有成本稍高的大阻值传感器,例如 PT10000
 +
 
 +
<br>
 +
 
 +
== PT1000 Table ==
 +
 
 +
[[PT1000 Table]]
 +
 
 +
<br><br>
 +
 
 +
== 测量原理 ==
  
 
PRTD 传统测量方法是采用电流源激励:
 
PRTD 传统测量方法是采用电流源激励:
第16行: 第28行:
 
<br><br>
 
<br><br>
  
== PT1000 Table ==
+
== ADC ==
 
+
[[PT1000 Table]]
+
 
+
<br><br>
+
  
== ESP8266 ADC ==
+
=== ESP8266 ADC ===
  
 
硬件连接:
 
硬件连接:
第50行: 第58行:
 
<br><br>
 
<br><br>
  
== MCP3421 ==
+
=== MCP3421 ===
  
 
[[文件:Mcp3421-app.png]]
 
[[文件:Mcp3421-app.png]]
第289行: 第297行:
 
=== MAX31865 ===
 
=== MAX31865 ===
  
* https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
+
* SPI Interface
 +
* Handles 100 Ω to 1000 Ω (at 0°C) Platinum RTDs (PT100 to PT1000)
 +
* Compatible with 2-, 3-, and 4-Wire Sensor Connections
 +
* 15-Bit ADC Resolution; Nominal Temperature Resolution 0.03125NC (Varies Due to RTD Nonlinearity)
 +
* Total Accuracy Over All Operating Conditions: 0.5NC (0.05% of Full Scale) max
 +
* Fully Differential VREF Inputs
 +
* 21ms (max) Conversion Time
 +
* 20-Pin TQFN and SSOP Packages
  
<br><br>
+
* [https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf MAX31865 Datasheet]
 +
 
 +
[[文件:MAX31865-App.jpg | 700px]]
 +
 
 +
<br>
  
 
=== MAX6603 ===
 
=== MAX6603 ===
第306行: 第325行:
  
 
选择基准时的关键参数包括:负载驱动、初始精度、噪声、温漂和稳定度
 
选择基准时的关键参数包括:负载驱动、初始精度、噪声、温漂和稳定度
 +
 +
=== TL431 ===
 +
 +
* http://www.ti.com/lit/ds/symlink/tl431.pdf
 +
 +
<br>
 +
 +
=== MAX ===
 +
 +
* https://www.maximintegrated.com/cn/app-notes/index.mvp/id/2879
 +
 +
<source lang=bash>
 +
Maxim电压基准的精简列表
 +
Part Number Output Voltage (V) Supply Voltage Range (V) Temp. Drift (ppm/°C max) Initial Accuracy TA = +25°C (% F.S. max) Quiescent Current (mA max) 0.1Hz to 10Hz Noise (µVP-P), max (typ) Package Options Temp. Ranges*
 +
MAX6160 Adj.(1.23 to 12.4) 2.7 to 12.6 100 1 100µA (15) SOT143, SO E
 +
MAX6120 1.2 2.4 to 11 100 1 70µA (10) SOT23, SO E
 +
MAX6520 1.2 2.4 to 12.6 50 1 70µA (10) SOT23, SO E
 +
MAX6001 1.25 2.5 to 12.6 100 1 45µA 25 SOT23 E
 +
MAX6012 1.25 2.5 to 12.6 20 to 30 0.3 to 0.5 35µA 25 SOT23 E
 +
MAX6190 1.25 2.5 to 12.6 5 to 25 0.16 to 0.48 35µA 25 SO E
 +
MAX6021 2.048 2.5 to 12.6 20 to 30 0.2 to 0.4 35µA 40 SOT23 E
 +
MAX6191 2.048 2.5 to 12.6 5 to 25 0.1 to 0.5 35µA 40 SO E
 +
MAX873 2.5 4.5 to 18 7 to 20 0.06 to 0.1 28µA (16) DIP, SO C, E
 +
MAX6002 2.5 2.7 to 12.6 100 1 45µA 60 SOT23 E
 +
MAX6025 2.5 2.7 to 12.6 20 to 30 0.2 to 0.4 35µA 60 SOT23 E
 +
MAX6125 2.5 2.7 to 12.6 50 1 100µA (15) SOT23, SO E
 +
MAX6192 2.5 2.7 to 12.6 5 to 25 0.1 to 0.4 35µA 60 SO E
 +
MAX6225 2.5 8 to 36 2 to 5 0.04 to 0.1 2.7 (1.5) DIP, SO C, E
 +
MAX6325 2.5 8 to 36 1 to 2.5 0.04 2.7 (1.5) DIP, SO C, E
 +
MAX6003 3 3.2 to 12.6 100 1 45µA 75 SOT23 E
 +
MAX6030 3 3.2 to 12.6 20 to 30 0.2 to 0.4 35µA 75 SOT23 E
 +
MAX6193 3 3.2 to 12.6 5 to 25 0.07 to 0.33 35µA 75 SO E
 +
MAX6004 4.096 4.3 to 12.6 100 1 45µA 100 SOT23 E
 +
MAX6041 4.096 4.3 to 12.6 20 to 30 0.2 to 0.4 35µA 100 SOT23 E
 +
MAX6141 4.096 4.3 to 12.6 50 1 105µA (25) SOT23, SO E
 +
MAX6198 4.096 4.3 to 12.6 5 to 25 0.05 to 0.24 35µA 100 SO E
 +
MAX6241 4.096 8 to 36 2 to 5 0.025 to 0.1 2.9 (2.4) DIP, SO C, E
 +
MAX6341 4.096 8 to 36 1 to 2.5 0.025 2.9 (1.5) DIP, SO C, E
 +
MAX6045 4.5 4.7 to 12.6 20 to 30 0.2 to 0.4 35µA 110 SOT23 E
 +
MAX6145 4.5 4.7 to 12.6 50 1 105µA (30) SOT23, SO E
 +
MAX6194 4.5 4.7 to 12.6 5 to 25 0.04 to 0.22 35µA 110 SO E
 +
MAX675 5 8 to 33 12 to 20 0.15 1.4 15 TO-99, DIP, SO C, E
 +
MAX875 5 7 to 18 7 to 20 0.06 to 0.1 0.28 (32) DIP, SO C, E
 +
MAX6005 5 5.2 to 12.6 100 1 45µA 120 SOT23 E
 +
MAX6050 5 5.2 to 12.6 20 to 30 0.2 to 0.4 35µA 120 SOT23 E
 +
MAX6150 5 5.2 to 12.6 50 1 110µA (35) SOT23, SO E
 +
MAX6195 5 5.2 to 12.6 5 to 25 0.04 to 0.2 35µA 120 SO E
 +
MAX6250 5 8 to 36 2 to 5 0.02 to 0.1 3 (3) DIP, SO C, E
 +
MAX6350 5 8 to 36 1 to 2.5 0.02 3 (1.5) DIP, SO C, E
 +
REF02 5 8 to 33 8.5 to 250 0.3 to 2 1.4 15 TO-99, DIP, SO C
 +
*温度范围:C = 0°C至+70°C,E = -40°C至85°C
 +
 +
文献
 +
The Art of Electronics, by Paul Horowitz & Winfield Hill, Chapter 6
 +
Micro-Electronic Circuits, by Adel S. Sedra & Kenneth C. Smith
 +
</source>
  
 
<br><br>
 
<br><br>

2018年10月24日 (三) 10:38的最后版本

目录

[编辑] 1 概述

工业和医学应用中,如果测量的温度范围很宽,比如 -200°C ~ +800°C ,且对精度、可重复性要求比较高,最好的选择是铂电阻温度 (RT) 检测器,即 PRTD。

PRTD 中的铂元素非常稳定,且不容易腐蚀或氧化。PRTD 的电阻与温度呈线性关系,温度越高电阻越大。

常见的 PRTD 包括 PT100、PT500 和 PT1000。在 0°C 下分别呈现 100Ω、500Ω 和 1000Ω 的阻值,其阻值会随温度变化 (PT1000 Table)。也有成本稍高的大阻值传感器,例如 PT10000


[编辑] 2 PT1000 Table

PT1000 Table



[编辑] 3 测量原理

PRTD 传统测量方法是采用电流源激励:

PT1000-measure.gif


对于较高阻值的 PRTD,应采用高精度电压源激励 PRTD,可以利用 ADC 的电压基准为 PRTD 提供偏压。PRTD 可直接连接到 ADC,ADC 基准通过一个高精度电阻提供 PRTD 偏置电流。ADC即可以高精度比例测量温度:

PT1000-measure2.gif



[编辑] 4 ADC

[编辑] 4.1 ESP8266 ADC

硬件连接:

 VCC33 ---> PT1000 <-- (A0) --> 300R 1% ---> GND


void setup()
{
  Serial.begin(115200);
}

void loop() {
  int vd = analogRead(A0);
  Serial.print("vd = ");
  Serial.println(vd);

  uint32_t rtd = (1024 - vd) * 300 / vd;
  Serial.print("rtd = ");
  Serial.println(rtd);

  delay(1000);
}



[编辑] 4.2 MCP3421

Mcp3421-app.png


快速测试:
#include <Wire.h>
#define MCP3421_ADDRESS 0X68

void setup()
{
  Serial.begin(115200);  
  Wire.begin();
}

void loop()
{
  Wire.requestFrom(MCP3421_ADDRESS, 4);
  if (Wire.available() != 4) {
    Serial.println("Wire.available failed");
    while(1);
  }
  int16_t v = (Wire.read() << 8);
  v |= Wire.read();
  // read but ignore status
  uint8_t s = Wire.read();
  //print voltage from channel one in millivolts
  Serial.print(v);Serial.println(" mv");
  delay(1500);
}


改进:
#include <Wire.h>

// I2C address for MCP3422 - base address for MCP3424 = 0x68
#define MCP342X_ADDRESS 0X68

// fields in configuration register
#define MCP342X_GAIN_FIELD 0X03 // PGA field
#define MCP342X_GAIN_X1    0X00 // PGA gain X1, 12 bits, 1 mV
#define MCP342X_GAIN_X2    0X01 // PGA gain X2, 14 bits, 250 uV
#define MCP342X_GAIN_X4    0X02 // PGA gain X4, 16 bits, 62.5 uV
#define MCP342X_GAIN_X8    0X03 // PGA gain X8, 18 bits, 15.625 uV

#define MCP342X_RES_FIELD  0X0C // resolution/rate field
#define MCP342X_RES_SHIFT  0X02 // shift to low bits
#define MCP342X_12_BIT     0X00 // 12-bit 240 SPS
#define MCP342X_14_BIT     0X04 // 14-bit 60 SPS
#define MCP342X_16_BIT     0X08 // 16-bit 15 SPS
#define MCP342X_18_BIT     0X0C // 18-bit 3.75 SPS

#define MCP342X_CONTINUOUS 0X10 // 1 = continuous, 0 = one-shot

#define MCP342X_CHAN_FIELD 0X60 // channel field
#define MCP342X_CHANNEL_1  0X00 // select MUX channel 1
#define MCP342X_CHANNEL_2  0X20 // select MUX channel 2
#define MCP342X_CHANNEL_3  0X40 // select MUX channel 3
#define MCP342X_CHANNEL_4  0X60 // select MUX channel 4

#define MCP342X_START      0X80 // write: start a conversion
#define MCP342X_BUSY       0X80 // read: output not ready

uint8_t chan = 0XFF, gain = 0XFF, res = 0XFF;

//------------------------------------------------------------------------
// default adc configuration register - resolution and gain added in setup()
uint8_t adcConfig = MCP342X_START | MCP342X_CHANNEL_1 | MCP342X_CONTINUOUS;

// divisor to convert ADC reading to milivolts
uint32_t mvDivisor;

void halt(void)
{
   Serial.println("Halted - check address and wiring");
   while(1);
}

// read mcp342x data - updated 10mar11/wbp
uint8_t mcp342xRead(int32_t &data)
{
   // pointer used to form int32 data
   uint8_t *p = (uint8_t *)&data;
   // timeout - not really needed?
   uint32_t start = millis();
   if ((adcConfig & MCP342X_RES_FIELD) == MCP342X_18_BIT)  // in 18 bit mode?
   {
      do {   // 18-bit mode
         Wire.requestFrom(MCP342X_ADDRESS, 4);
         if (Wire.available() != 4) {
            Serial.println("read failed");
            return false;
         }
         for (int8_t i = 2; i >= 0; i--) {
            p[i] = Wire.read();
         }
         // extend sign bits
         p[3] = p[2] & 0X80 ? 0XFF : 0;
         // read config/status byte
         uint8_t s = Wire.read();
         if ((s & MCP342X_BUSY) == 0) return true;  // escape here
      } while (millis() - start < 500);   // allows rollover of millis()
   } else {
      do {  // 12-bit to 16-bit mode
         Wire.requestFrom(MCP342X_ADDRESS, 3);
         if (Wire.available() != 3) {
            Serial.println("read failed");
            return false;
         }
         p[1] = Wire.read();
         p[0] = Wire.read();
         // extend sign bits
         p[2] = p[1] & 0X80 ? 0XFF : 0;
         p[3] = p[2];
         // read config/status byte
         uint8_t s = Wire.read();
         if ((s & MCP342X_BUSY) == 0) return true;  // or escape here
      } while (millis() - start < 500);   // allows rollover of millis()
   }
   Serial.println("read timeout");      // dang it
   return false;
}

// write mcp342x configuration byte
uint8_t mcp342xWrite(uint8_t config)
{
   Wire.beginTransmission(MCP342X_ADDRESS);
   Wire.write(config);
   Wire.endTransmission();
}

void setup()
{
   Serial.begin(115200); 
   pinMode(D4, OUTPUT);
   digitalWrite(D4, LOW);
   Wire.begin();

   do {
      Serial.println();
      Serial.flush();
      Serial.print("Enter gain (1, 2, 4, or 8): ");
      while(Serial.available() < 1);
      switch (Serial.read()) {
      case '1': // ACSCII number received
         gain = MCP342X_GAIN_X1; 
         break;
      case '2': 
         gain = MCP342X_GAIN_X2; 
         break;
      case '4': 
         gain = MCP342X_GAIN_X4; 
         break;
      case '8': 
         gain = MCP342X_GAIN_X8; 
         break;
      } 
   } 
   while (gain > 3);
   Serial.println(1 << gain, DEC);

   do {
      Serial.flush();
      Serial.println();
      Serial.print("Enter resolution (12, 14, 16, or 18): ");
      while (Serial.available() < 2);
      if (Serial.read() != '1') continue;
      switch (Serial.read()) {
      case '2': 
         res = 0; 
         break;
      case '4': 
         res = 1; 
         break;
      case '6': 
         res = 2; 
         break;
      case '8': 
         res = 3; 
         break;
      }
   } 
   while (res > 3);
   Serial.println(12 + 2*res, DEC);

   adcConfig |= res << 2 | gain | MCP342X_START;
   
   // divisor to convert ADC reading to millivolts
   mvDivisor = 1 << (11 + 2*res);
   Serial.print("md = ");
   Serial.println(mvDivisor);
}

void loop()
{         
   int32_t data;

   mcp342xWrite(adcConfig);

   if (!mcp342xRead(data)) halt();

   Serial.print("data = ");
   Serial.println(data);
      
   // voltage in millivolts
   double mv = (double)data * 2048 / mvDivisor;
   // uncomment line below to convert reading to microvolts
   uint32_t uv = mv * 1000;
   
   Serial.print("V = ");
   Serial.print(mv);
   Serial.print(" mV");
   Serial.print(" , ");
   Serial.print(uv);
   Serial.println(" uV");
   
   delay(2000);                          // 5 seconds + conversion time x 4
}



[编辑] 5 专用芯片

选型: Temperature Sensor Tutorial


[编辑] 5.1 MAX31865

  • SPI Interface
  • Handles 100 Ω to 1000 Ω (at 0°C) Platinum RTDs (PT100 to PT1000)
  • Compatible with 2-, 3-, and 4-Wire Sensor Connections
  • 15-Bit ADC Resolution; Nominal Temperature Resolution 0.03125NC (Varies Due to RTD Nonlinearity)
  • Total Accuracy Over All Operating Conditions: 0.5NC (0.05% of Full Scale) max
  • Fully Differential VREF Inputs
  • 21ms (max) Conversion Time
  • 20-Pin TQFN and SSOP Packages

MAX31865-App.jpg


[编辑] 5.2 MAX6603



[编辑] 6 电压基准

对于传感器测量应用,基准输出用作ADC或AFE输入,也用作变送器激励。如果噪声或其它原因造成基准电压波动,传感器输入和ADC都将发生相同的波动,从而降低总误差

压基基准噪声源降低 ADC 的噪声性能,所以应选择性能优于 ADC 的基准。对于高精度系统,基准的初始误差以及温漂和时漂是增益误差的最重要因素之一。对于经过校准的系统,温漂和时漂是最关键的参数

选择基准时的关键参数包括:负载驱动、初始精度、噪声、温漂和稳定度

[编辑] 6.1 TL431


[编辑] 6.2 MAX

Maxim电压基准的精简列表
Part Number	Output Voltage (V)	Supply Voltage Range (V)	Temp. Drift (ppm/°C max)	Initial Accuracy TA = +25°C (% F.S. max)	Quiescent Current (mA max)	0.1Hz to 10Hz Noise (µVP-P), max (typ)	Package Options	Temp. Ranges*
MAX6160	Adj.(1.23 to 12.4)	2.7 to 12.6	100	1	100µA	(15)	SOT143, SO	E
MAX6120	1.2	2.4 to 11	100	1	70µA	(10)	SOT23, SO	E
MAX6520	1.2	2.4 to 12.6	50	1	70µA	(10)	SOT23, SO	E
MAX6001	1.25	2.5 to 12.6	100	1	45µA	25	SOT23	E
MAX6012	1.25	2.5 to 12.6	20 to 30	0.3 to 0.5	35µA	25	SOT23	E
MAX6190	1.25	2.5 to 12.6	5 to 25	0.16 to 0.48	35µA	25	SO	E
MAX6021	2.048	2.5 to 12.6	20 to 30	0.2 to 0.4	35µA	40	SOT23	E
MAX6191	2.048	2.5 to 12.6	5 to 25	0.1 to 0.5	35µA	40	SO	E
MAX873	2.5	4.5 to 18	7 to 20	0.06 to 0.1	28µA	(16)	DIP, SO	C, E
MAX6002	2.5	2.7 to 12.6	100	1	45µA	60	SOT23	E
MAX6025	2.5	2.7 to 12.6	20 to 30	0.2 to 0.4	35µA	60	SOT23	E
MAX6125	2.5	2.7 to 12.6	50	1	100µA	(15)	SOT23, SO	E
MAX6192	2.5	2.7 to 12.6	5 to 25	0.1 to 0.4	35µA	60	SO	E
MAX6225	2.5	8 to 36	2 to 5	0.04 to 0.1	2.7	(1.5)	DIP, SO	C, E
MAX6325	2.5	8 to 36	1 to 2.5	0.04	2.7	(1.5)	DIP, SO	C, E
MAX6003	3	3.2 to 12.6	100	1	45µA	75	SOT23	E
MAX6030	3	3.2 to 12.6	20 to 30	0.2 to 0.4	35µA	75	SOT23	E
MAX6193	3	3.2 to 12.6	5 to 25	0.07 to 0.33	35µA	75	SO	E
MAX6004	4.096	4.3 to 12.6	100	1	45µA	100	SOT23	E
MAX6041	4.096	4.3 to 12.6	20 to 30	0.2 to 0.4	35µA	100	SOT23	E
MAX6141	4.096	4.3 to 12.6	50	1	105µA	(25)	SOT23, SO	E
MAX6198	4.096	4.3 to 12.6	5 to 25	0.05 to 0.24	35µA	100	SO	E
MAX6241	4.096	8 to 36	2 to 5	0.025 to 0.1	2.9	(2.4)	DIP, SO	C, E
MAX6341	4.096	8 to 36	1 to 2.5	0.025	2.9	(1.5)	DIP, SO	C, E
MAX6045	4.5	4.7 to 12.6	20 to 30	0.2 to 0.4	35µA	110	SOT23	E
MAX6145	4.5	4.7 to 12.6	50	1	105µA	(30)	SOT23, SO	E
MAX6194	4.5	4.7 to 12.6	5 to 25	0.04 to 0.22	35µA	110	SO	E
MAX675	5	8 to 33	12 to 20	0.15	1.4	15	TO-99, DIP, SO	C, E
MAX875	5	7 to 18	7 to 20	0.06 to 0.1	0.28	(32)	DIP, SO	C, E
MAX6005	5	5.2 to 12.6	100	1	45µA	120	SOT23	E
MAX6050	5	5.2 to 12.6	20 to 30	0.2 to 0.4	35µA	120	SOT23	E
MAX6150	5	5.2 to 12.6	50	1	110µA	(35)	SOT23, SO	E
MAX6195	5	5.2 to 12.6	5 to 25	0.04 to 0.2	35µA	120	SO	E
MAX6250	5	8 to 36	2 to 5	0.02 to 0.1	3	(3)	DIP, SO	C, E
MAX6350	5	8 to 36	1 to 2.5	0.02	3	(1.5)	DIP, SO	C, E
REF02	5	8 to 33	8.5 to 250	0.3 to 2	1.4	15	TO-99, DIP, SO	C
*温度范围:C = 0°C至+70°C,E = -40°C至85°C

文献
The Art of Electronics, by Paul Horowitz & Winfield Hill, Chapter 6
Micro-Electronic Circuits, by Adel S. Sedra & Kenneth C. Smith



[编辑] 7 资源






















个人工具
名字空间

变换
操作
导航
工具箱