서미스터를 교정하는 가장 간단한 방법은 무엇입니까?


11

실험실 장비에 접근 할 수없는 애호가로서, 내가 가지고있는 서미스터를 교정 할 수는 없습니다.

물론 DS18B20과 같은 캘리브레이션 된 온도 센서가 있지만 Aruino UNO (새로운 MCU와 비교)와 같은 느린 MCU의 서미스터는 더 빠릅니다.

실험실 장비를 사용하지 않고 서미스터를 교정하기 위해 어떤 옵션이 있습니까?


1
보정 된 센서를 DS18B20으로 사용하여 서미스터의 특성을 취하십시오.
Janka

"스냅 피어"는 무슨 뜻입니까? 서미스터에서 소프트웨어를 수정해야하지만 DS18B20을 사용하지 않는 경우에는 타당하지 않은 것 같습니다.
Elliot Alderson

최대 해상도에서 DS18B20의 1 초 지연이 우려되는 경우 배터리 모니터 onewire 센서 (예 : DS2438) 중 하나를 사용하십시오. 칩에 빠른 온도 센서가 있습니다.
Janka

2
@newbie 정확도를 위해 온도를 교정하는 것은 일반적으로 어렵다. 일부 범위는 다른 범위보다 더 어렵습니다. 일반적으로 사용 가능한 재료의 동결 점은 범위에 더 많은 재료가 포함되어 있으면 더 도움이 될 수 있습니다. 그러나 정확한 참조는 NIST 또는 DIN (또는 유사한 그룹) 표준을 실험실 어딘가에 보관하고 물리학 자 또는 두 사람이 관리합니다. 온도 범위와 해당 범위에 대해 원하는 정확도와 정밀도를 지정하면 질문에 도움이 될 것입니다.
jonk

1
@newbie 그러나 집에서? 순도를 찾은 다음 얼음 / 액체 조합 또는 순수한 응축 보일러를 만드십시오. 예를 들어, 물과 혼합 된 얼음이 매우 일반적으로 사용되지만 그것이 충분한 지 아닌지는 정확성 수치와 기꺼이 수행 할 작업에 따라 달라질 수 있습니다. 플로렌스 플라스크의 바닥에 끓는 물이나 황산을 응축시킬 수도 있습니다. (두 가지를 모두 사용했습니다.) 그러나 결과는 불순물과 대기압 변화 및 기타 요인에 따라 달라집니다. 귀하의 요구 사항은 홈브류 시도를 위해 제안 할 수있는 것들을 많이 견뎌냅니다.
jonk

답변:


5

서미스터 (또는 대부분 해당 문제에 대한 모든 센서)를 교정하는 것은 2 단계 프로세스입니다.

  1. 교정 데이터를 측정
  2. 해당 데이터에 맞는 교정법을 고안하십시오

첫 번째 단계는 가장 어렵고 불행하게도 내가 가장 경험이 적은 단계입니다. 그런 다음 매우 일반적인 용어로만 설명하겠습니다. 두 번째 단계는 대부분 수학입니다.

교정 데이터 측정

알려진 온도에서 측정 된 저항 값으로 (T, R) 쌍으로 테이블을 채워야합니다. 교정 데이터는 실제 사용에 필요한 모든 온도 범위를 포괄해야합니다. 이 범위를 벗어난 데이터 포인트는 그다지 유용하지 않습니다. 그렇지 않으면 데이터 포인트가 많을수록 좋습니다.

서미스터의 저항을 측정하기 위해, 나는 당신을 조언 에 대해 저항계 사용하지 않는 것이 좋습니다. 실제 교정 후 측정에 사용할 것과 동일한 설정을 대신 사용하십시오. 이런 식으로 저항 측정의 모든 체계적인 오류 (ADC 오프셋 및 게인 오류 등)가 교정됩니다.

온도를 알기 위해 고정 온도 포인트 (예 : 끓는 물 또는 녹는 얼음)를 사용하거나 이미 보정 된 온도계를 사용하는 두 가지 옵션이 있습니다. 고정 점은 온도 보정의 금본위 제이지만 정확하게 맞추기가 어렵 기 때문에 관심있는 온도 범위 내에서 많은 점을 찾지 못할 수 있습니다.

잘 알려진 온도계를 사용하는 것이 더 쉬울 수 있지만 몇 가지주의 사항이 있습니다.

  • 서미스터와 기준 온도계의 온도가 동일한 지 확인해야합니다
  • 둘 다 열 평형에 도달 할 수있을만큼 온도를 안정적으로 유지해야합니다.

높은 열 관성 (냉장고 또는 오븐)이있는 인클로저 내에서 두 장치를 가까이두면 도움이 될 수 있습니다.

분명히, 기준 온도계의 정확도는 여기서 매우 중요한 요소입니다. 최종 측정 정확도에 대한 요구 사항이 훨씬 더 정확해야합니다.

교정법 규정

이제 데이터에 맞는 수학 함수를 찾아야합니다. 이것을“임시적 적합”이라고합니다. 원칙적으로 모든 법률은 데이터 포인트에 충분히 근접한 한 수행 할 수 있습니다. 다항식은 함수가 계수에 상대적으로 선형이기 때문에 적합이 항상 수렴하고 낮은 마이크로 컨트롤러에서도 평가하기에 저렴하므로 다항식이 선호됩니다. 특별한 경우, 선형 회귀는 가장 간단한 법칙 일 수 있습니다.

그러나 매우 좁은 온도 범위에 관심이 없다면 NTC 서미스터의 응답은 매우 비선형 적이며 낮은 정도의 다항식 피팅에 적합하지 않습니다. 그러나 변수의 전략적 변화는 법칙을 거의 선형적이고 적합하게 만들 수 있습니다. 이를 위해 기본적인 물리학을 통해 기분 전환을 할 것입니다 ...

NTC 서미스터의 전기 전도는 열적으로 활성화되는 프로세스입니다. 그러면 컨덕턴스는 Arrhenius 방정식 으로 모델링 할 수 있습니다 .

G = G exp (−E a / (k B T))

여기서 G 는“사전 지수”라고하며 E a활성화 에너지 이고 k BBoltzmann 상수 이고 T는 절대 온도입니다.

이것은 선형 법칙으로 재 배열 될 수 있습니다.

1 / T = A + B 로그 (R)

여기서 B = k B / E a ; A = B 로그 ( G∞ ); log ()는 자연 로그입니다.

교정 데이터를 가져와 log (R)의 함수로 1 / T를 플롯 하면 (기본적으로 Arrhenius 플롯) 축이 교체 ), 거의 직선이 아님을 알 수 있습니다. 선형성에서 벗어난 것은 주로 사전 지수 요소가 약간 온도에 의존한다는 사실에서 비롯됩니다. 그럼에도 불구하고 곡선은 매끄 럽기 때문에 낮은 차수의 다항식에 쉽게 맞출 수 있습니다.

1 / T = c 0 + c 1 log (R) + c 2 log (R) 2 + c 3 log (R) 3 + ...

관심있는 온도 범위가 충분히 짧으면 선형 근사치가 충분할 수 있습니다. 그런 다음 β 계수가 1 / B 인 소위 "β 모델"을 사용합니다. 3 차 다항식을 사용하는 경우 c 2 계수를 무시할 수 있습니다. 이를 무시하면 유명한 Steinhart–Hart 방정식이 있습니다.

일반적으로 다항식의 정도가 높을수록 데이터에 더 적합해야합니다. 그러나 학위가 너무 높으면 과적 합하게 됩니다. 어쨌든 피팅의 자유 매개 변수 수는 데이터 포인트 수를 초과해서는 안됩니다. 이 숫자가 같으면 법이 데이터에 정확히 맞지만 적합도를 평가할 방법이 없습니다. 이 서미스터 계산기 (주석에 링크 됨)는 세 개의 데이터 포인트 만 사용하여 세 개의 계수를 제공합니다. 이것은 예비 근사 교정의 신이지만 정확성이 필요하다면 그것에 의존하지 않을 것입니다.

실제로 적합을 수행하는 방법에 대해서는 여기에서 설명하지 않습니다. 임의의 데이터를 만들기위한 소프트웨어 패키지가 풍부합니다.


상세하고 설명 된 답변에 감사드립니다. 부수적 인 질문; 온도 판독 소스로 DS18B20 센서를 사용했으며 서미스터 판독 값이 약 2.2도 떨어져 있음을 알았습니다. 그런 다음 서미스터 온도 계산에서 2.2도를 추가했습니다. 이제 ds18b20과 써미스터의 판독 값은 거의 동일합니다. 서미스터가 온도 변화에 더 반응하지만 최종 결과가 거의 동일하더라도 25 ~ 35도 범위 내에서 온도 변화를 테스트했습니다. 내가 사용한이 방법의 단점은 무엇입니까?
ElectronSurf

2
@newbie :“서미스터 판독 값이 약 2.2도 떨어져 있습니다.” 서미스터는 각도를 읽지 않습니다. 당신은 2.2 ° C 측정 값을 낸 교정법 (어디에서 왔습니까?)을 시도 했습니까? 이 경우이 오프셋이 일정하게 유지되는 경우 추가 산술 단계를 사용하여 더 복잡한 변환법을 사용하는 단점이 있습니다. 오프셋이 엄격하게 일정하지 않으면 맞춤을 다시 실행하면 더 나은 결과를 얻을 수 있습니다.
Edgar Bonet

11

서미스터를 읽는 것은 약간 까다 롭습니다. 위의 교정 방법은 오류 감지에 대한 수율을 나타내지 않습니다. 대수 곡선 (서미스터 응답 곡선)의 두 점을 만듭니다.

즉, 0.1 ° C의 온도 변화마다 온도 범위에 따라 해당 저항의 변화가 달라집니다. 여기에 이미지 설명을 입력하십시오

처음에는 실제 온도에서 약 2 ~ 5 ° C의 오차가 표시되지만 오차는없고 판독 값이 잘못 될 수 있습니다.

이 서미스터를 읽는 방법에 대한 자세한 내용을 게시하지 마십시오. Arduino May? 일부 라이브러리는 전혀 작동하지 않으므로 특별한 기능을 만들어야합니다.

서미스터를 특성화하고 읽는 방법에 대한 자세한 설명을 게시하십시오. 게시물은 스페인어로되어 있지만 코드 태그에는 모든 설명이 일반 영어로되어 있습니다.

ABC 계수를 얻은 후에는 6m 길이의 LAN 와이어에서도 다른 측정에서 약 0.1 ° C가됩니다.

4 개의 서미스터 테스트 이 테스트는 동시에 4 개의 서미스터를 읽었으며, 손가락에 잠깐 들고 있던 2 개의 온도와는 약간의 차이가 있습니다.


@newbie 이것이 올바른 접근법입니다. 지침을 따를 수없는 경우 하루 정도면 답장을 보내 주시면 arduino 코드를 찾아서 포함 된 참조를 찾아 여기에 답변을 작성해 드리겠습니다.
piojo

1
링크는 죽고,이 솔루션이 미래에 솔루션을 만들 수있는 능력은 링크가 활성화 된 상태에 크게 의존합니다. 답변에 단계를 추가 할 수 있습니까?
Keeta-복원 Monica Monica

답변의 코드 섹션을 복사하여 붙여 넣습니다. // 이것은 서미스터를 읽는 방법에 대한 예제 코드입니다. "Thermimistor.h"Lib은 베타를 잘 받아들이고 // 제 경우에는 잘못된 결과를 낳습니다. , 홀수 또는 잘못된 측정 값이있는 경우 다음 단계를 따르십시오. // //이 코드에 대한 정확한 결과를 얻으려면 필요합니다. // 멀티 미터, NTC 서미스터, 또 다른 정확한 온도 프로브 프로브. // 단계 1 .- 저항 meassurement 모드에 설정 multimiter
알레한드로 산티아고

// 2 단계. 서미스터의 실제 저항과 실제 온도를 읽고 주석 처리합니다 (안정적인 측정을 위해 1 분 허용). // 일부 뜨거운 물과 컵. // 3 단계. 두 센서를 모두 배치합니다 (서미스터 및 온도 프로브는 주변 온도에서 물이 포함 된 수신자에 //). // 다른 컵에 물을 데 웁니다. // 온도 프로브를 10 ° C 이상 가열 할 때까지 뜨거운 물을 넣고 안정된 측정을 기다렸다가 온도와 저항에 주석을 답니다. // 물을 더 추가하여 첫 번째 측정에서 20 °를 가열합니다. // 온도를 기록하고 저항합니다.
Alejandro Santiago

1
@newbie NTC 서미스터가있는 경우 A, B 및 C 상수를 계산하고이를 Steinhart Hart 방정식에 연결하여 저항의 온도를 해결해야합니다. 이러한 상수를 찾으려면 세 가지 온도 / 저항 측정이 필요합니다. (정수는 서미스터마다 다르며 상수를 찾는 것이 교정입니다.)이 문서에서는이를 수행하는 방법을 보여 주지만 매트릭스 수학을 사용하므로 온라인 계산기를 찾는 것이 좋습니다. thinksrs.com/downloads/pdfs/applicationnotes/…
piojo

9

얼음 조각으로 컵을 채우고 물을 부어 테두리까지 채 웁니다. 가끔 저어주십시오. 얼음이 녹기 시작하면 0 ° C가됩니다. 센서를 물에 집어 넣고 읽습니다.

센서가 견딜 수 있으면 끓는 물 주전자에 떨어 뜨립니다. 해수면에서 100 ° C 기준 판독 값을 제공합니다.

방수를 위해 센서를 열수축해야하는 경우 판독 값이 안정화 될 때까지 약간의 시간이 필요합니다.

개략도

이 회로 시뮬레이션CircuitLab을 사용하여 작성된 회로도

그림 1. 간단한 선형 교정 곡선.

  • y1은 0 ° C에서 저항, 전압 또는 ADC 판독 값입니다.
  • y2는 100 ° C에서 저항, 전압 또는 ADC 판독 값입니다.

=100와이와이1와이2와이1

의견에서 지적했듯이 서미스터를 사용하는 경우 데이터 시트의 선형성을 확인해야합니다. 이 간단한 접근 방식이 충분하지 않으면 마이크로 컨트롤러에서 다항식 계산 또는 조회 테이블을 사용해야합니다.


3
이렇게하면 두 포인트를 얻을 수 있으며이 두 온도의 베타를 계산하는 데 사용할 수 있습니다. 이 범위에있는 응답이 갑자기 선형에 가까운 것, (이들 / 그는 "서미스터"를 호출 영업 수단 가정)
스콧 Seidman

1
@ 초보자 : 업데이트를 참조하십시오.
Transistor

5
@newbie Transistor가 마지막에 쓰듯이이 방법은 충분하지 않을 수 있습니다. 솔직히 충분하다고 생각할 수는 없습니다. 이 접근 방식으로 얻을 수있는 유일한 것은 반복성입니다 (40 ° C는 항상 40 ° C라고 가정하지만 실제로는 20 ° C 또는 60 ° C 일 수 있습니다).
piojo

2
압력이 1.01325 bar 또는 1013.25 millibar 또는 hectopascal 인 경우 순수한 물이 100 ° C에서 끓습니다. 해수면의 압력은 날씨에 따라 다릅니다.
Uwe

1
@ 신비. 유용 해 보입니다. 작동하면 샘플 코드를 질문에 또는 답변으로 게시하십시오. 다른 사람들이 내 대답보다 더 유용하다고 확신합니다.
트랜지스터

2

선형화 된 온도계에는 게인 및 오프셋 오류가 있습니다.

  • 양극성 전원 공급 장치는 0V에서 오프셋이 null 일 수 있습니다.
  • 단일 공급 브리지에는 Vref 또는 Vcc의 Vref 또는 R 비율이 있으며,이 온도에서 오프셋이 무효화됩니다. 일반적으로 이것은 대칭이므로 디자인 범위의 중간 점에 해당합니다.
  • 서미스터는 2 개의 변수가있는 특정 감도 곡선으로 25 ° C에서 교정됩니다.

  • 교정하기 위해서는 2 번의 측정 만 필요합니다

    • 오류 전압 = null = 0, Vt = Vref 인 경우 Null 조정
    • T max에서 게인 조정
      • 일반적인 4R 브리지의 경우 일반적으로 중간 점 온도입니다.
  • 교정을 위해 더 나은 온도계를 사용하거나
    • 0, 100'C에 얼음물과 끓는 물을 사용하십시오
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.