이 시리즈의 소개에서, 우리는 다양한 종류의 온도를 모두 테스트하기 위해 프로젝트 템플릿 세트를 구축하기 시작했습니다: 아날로그 센서용 하나와 디지털 센서용 하나. 이 템플릿과 NTC 서미스터에 대한 센서 구현은 GitHub에서 찾을 수 있습니다. 언제나처럼, 이 프로젝트들은 MIT 라이선스 하에 공개 소스로 출시되어 제한이 거의 없이 사용할 수 있습니다.
이 글에서는 첫 번째 유형의 온도 센서인 음온도 계수(NTC) 서미스터로 시작할 것입니다. NTC 서미스터는 저렴하고 사용하기 쉬우며, 매우 정밀하지는 않지만 대부분의 응용 프로그램에 충분히 정확하기 때문에 아마도 가장 일반적으로 사용되는 온도 센서 클래스일 것입니다.
NTC 서미스터를 구매하고자 한다면, Octopart로 이동하여 선호하는 유통업체에서 재고를 확인하세요. 또한, Celestial Altium Library에서 NTC 서미스터 전체 범위와 수만 개의 다른 구성 요소 및 센서를 찾을 수 있습니다. 이는 Altium Designer®용 가장 큰 오픈 소스 라이브러리입니다.
이 시리즈에서는 다양한 온도 센서,에 대해 살펴보고, 그들의 장단점과 일반적인 구현/토폴로지에 대해 이야기할 예정입니다. 이 시리즈에서 다룰 내용은 다음과 같습니다:
제가 방금 서미스터가 특별히 정밀하지 않다고 말했음에도 불구하고, 그들은 널리 사용됩니다. 대부분의 응용 프로그램은 몇 도 섭씨의 온도 정밀도보다 더 나은 것을 필요로 하지 않습니다. 기본적인 열 보호나 열 보상을 구축할 때, PTC 또는 NTC 서미스터가 충분히 좋습니다. 대부분의 3D 프린터는 가열된 베드와 핫 엔드에 서미스터를 사용하는데, 이것이 프린터마다 필라멘트 온도 설정을 보정해야 하는 이유입니다. 저의 경우, 세 개의 다른 핫 엔드로 같은 재료를 인쇄할 때, 거의 10°C의 범위에 걸쳐 세 개의 온도가 있습니다. PTC 또는 NTC 온도 센서는 사용하기에 매우 저렴하므로, 제조 시점에 회로에서 센서를 보정하거나 사용자가 보정할 수 있는 저비용 장치에 특히 훌륭합니다.
온도계의 비용은 특히 넓은 온도 범위에서 정확한 온도 측정을 얻기 위한 추가 엔지니어링 노력으로 상쇄됩니다. 이는 온도에 대한 일반적인 아이디어가 허용되는 보호 응용 프로그램에 매우 적합합니다. 대부분의 리튬 이온 배터리 팩은 셀이 너무 뜨거워지면 충전을 차단하여 재앙적인 실패를 방지하기 위해 10k NTC 서미스터를 구현할 것입니다.
NTC 서미스터는 온도가 상승함에 따라 저항이 감소하는 저항기입니다. 이를 통해 회로에서 저항을 측정하는 일반적인 방법으로 저항기의 온도를 계산할 수 있습니다. 불행히도, 온도 변화는 비선형이므로 저항의 변화로 온도 변화를 직접 측정할 수 없습니다. 많은 제조업체는 저항-온도 곡선과 아마도 저항으로부터 온도를 계산하기 위한 공식을 제공할 것이므로, 마이크로컨트롤러를 사용하여 합리적으로 정확한 측정을 얻을 수 있습니다. 제조업체가 이 정보를 제공하지 않는 경우, 정밀한 온도 센서나 환경 챔버를 사용하여 특정 설정 지점에서 센서를 측정하여 스스로 공식을 결정할 수 있습니다.
이 프로젝트에서는 두 가지 다른 NTC 서미스터와 그것들에 대한 여러 구현 방법을 살펴볼 것입니다. 이들은 정밀한 허용 오차를 가진 서미스터이지만, 다른 낮은 허용 오차의 서미스터에 비해 지나치게 비싸지 않습니다.
이 두 제품 모두 표면 실장 부품입니다; 그러나, 구멍을 통한 부품도 쉽게 구할 수 있습니다. 구멍을 통한 부품의 일반적인 응용은 원격 감지를 위해 한 쌍의 전선 끝에 납땜하는 것입니다. 많은 돈을 들이지 않고도 전선에 서미스터를 테스트하고 싶다면, 3D 프린터 온도 센서를 검색해 보세요. 일반적으로 10K 서미스터가 될 것입니다. 그러나, 일부 프린터는 대신 100K 서미스터를 사용합니다.
부품 |
NCP03WF104F05RL |
NCP15XH103F03RC |
감지 온도 최소 |
-40°C |
-40°C |
감지 온도 최대 |
+125°C |
+125°C |
감지 범위 |
로컬 |
로컬 |
25°C에서의 저항 |
100 kOhm |
10 kOhm |
저항 허용 오차 |
1% |
1% |
B 값 허용 오차 |
1% |
1% |
작동 온도 |
-40 °C to +125 °C |
-40 °C부터 +125 °C까지 |
B0/50 |
- |
- |
B15/75 |
4250K |
3380K |
B25/75 |
- |
- |
B25/85 |
4311K |
3434K |
B25/100 |
4334K |
3455K |
최대 전력 (mW) |
100 mW |
100 mW |
제조사 |
Murata |
Murata |
패키지 |
0201 |
0402 |
서미스터의 감지 온도 범위는 나중에 살펴볼 일부 센서보다 유리한 점입니다. 감지 범위는 센서의 전체 작동 범위를 커버하여 다양한 응용 프로그램에서 사용할 수 있습니다. 서미스터는 매우 단순하기 때문에, 납이 용융 상태로 변하지 않거나 열 수축이 장치를 손상시키지 않는 한 이러한 정격 범위를 훨씬 넘어서 사용할 수 있습니다.
두 센서의 주요 차이점은 패키지 크기 외에도 25 °C에서의 저항값인데, 우리는 100k와 10k NTC 서미스터를 가지고 있으며, 이는 가장 일반적으로 사용되는 값입니다.
이 두 센서의 데이터시트는 저항 축이 로그 스케일임을 깨닫기 전까지는 꽤 선형적으로 보입니다. 아래 그래프와 같은 선형 스케일에서 우리는 저항이 직접 읽을 때 선형에서 멀다는 것을 볼 수 있습니다.
관심 있는 온도 범위의 중심에서 서미스터의 저항과 일치하는 저항을 서미스터와 병렬로 배치하면 곡선의 작은 부분을 더 선형적으로 만들 수 있습니다. 이는 선형 온도 영역 내에서 더 간단한 계산과 보정을 가능하게 할 수 있습니다. 서미스터의 전체 프로필을 측정하여 서미스터 공식의 값을 계산할 수 있는 능력이 있거나 제조업체가 데이터시트에 그 값을 제공하는 경우 저항을 절약하면서도 전체 범위에 걸쳐 정확한 측정을 할 수 있습니다.
온도를 측정하는 가장 간단한 방법은 전압 분배기를 사용하는 것입니다. 서미스터를 전위 분배기의 상단 또는 하단 다리로 사용할 수 있습니다. 서미스터를 전위 분배기의 "상단" 다리로 사용하면 온도가 상승함에 따라 전압이 증가합니다. 서미스터를 전압 분배기의 하단 다리로 사용하면 온도가 상승함에 따라 전압이 감소합니다.
어느 방법이든 유효합니다. 그러나 서미스터의 자체 발열을 방지하기 위해 분배기를 통한 전류를 줄이려고 시도하는 것이 좋습니다. NTC 서미스터 값과 요구 사항에 따라, 토폴로지를 변경하여 구현을 최적화할 수 있을 것입니다.
제 구현에서는, 25°C에서 서미스터의 저항과 일치하는 상단 분배기를 사용하여 특정 온도 범위에 대해 최적화되지 않은 간단한 분배기를 사용하고 있습니다. 25°C에서는 입력 전압의 절반을 기대해야 합니다. 이런 방식으로 온도 센서를 구축한다면, 작업 중인 온도 범위를 이해하고 저항과 토폴로지를 최적화하여 온도를 더 정확하게 측정할 수 있는 가능한 가장 넓은 전압 범위를 제공해야 합니다.
온도가 상승함에 따라 NTC 서미스터의 저항이 감소한다는 점에 유의하세요. 이는 대부분의 전력이 더 큰 전압 강하를 가진 기준 저항을 통해 소모됨을 의미합니다. 이는 또한 자체 발열을 방지하는 데 도움이 되며, 주변 온도 이상을 측정하고자 할 때 좋은 전략입니다.
PCB를 만들기 위해, 이전 기사에서 만든 온도 센서 카드 프로젝트 템플릿을 사용할 것입니다. 이 템플릿은 GitHub에서도 사용할 수 있으니, 자신의 센서에 사용하고 싶다면 이용해 보세요.
하나 주목할 점은 보드 이름이 프로젝트 템플릿에서와 같다는 것입니다. 이는 같은 회로도와 PCB 파일 이름을 가진 수십 개의 보드를 관리하는 것이 쉽지 않을 것임을 의미합니다!
저는 프로젝트에서 파일을 제거한 다음 이름을 바꾸고 다시 프로젝트에 추가하는 것이 제 방식이었기 때문에, Altium 프로젝트에서 파일 이름을 바꾸는 방법이 있는지 친구 Davide Bortolami에게 물어보았습니다. 제 방식은 다소 번거로웠기 때문에 Davide는 즉시 파일 이름을 바꾸기 위해 저장소 관리자를 추천했습니다. 저장소 관리자는 Altium의 오른쪽 하단에 있는 패널 버튼 아래에서 찾을 수 있습니다.
현재 프로젝트가 버전 제어 저장소에 있지 않더라도 저장소 관리자는 잘 작동합니다. 우리가 해야 할 일은 회로도나 PCB를 마우스 오른쪽 버튼으로 클릭하고 이름 바꾸기(또는 F2를 누르기)를 클릭하는 것뿐입니다.
이 방법은 제가 일반적으로 사용했던 방법보다 훨씬 우아한 해결책입니다.
그런 다음 위에서 언급한 구현 중 하나를 회로도 시트에 추가합니다. 회로도의 템플릿 부분에 필요한 변경 사항은 센서의 아날로그 출력을 카드 엣지 커넥터에 연결하는 것뿐입니다.
이 회로도들은 단일 종단이며 차동이 아니므로, 쌍의 음측을 접지에 연결할 수 있으며, 양측은 분압기에 연결된 출력을 받습니다. 그런 다음 해야 할 일은 보드를 업데이트하여 새로운 구성 요소를 추가하는 것입니다.
보드 작업을 진행하는 동안, 특정 센서 카드가 사용하는 채널을 식별하기 위해 템플릿에 배치한 아날로그 채널 테이블도 채우고 있습니다. 이렇게 하면 하나의 스택에 동일한 채널을 사용하는 두 개의 센서를 추가할 확률이 줄어듭니다.
이 보드들은 물론 믿을 수 없을 정도로 간단하며, 보드당 단지 두 개의 구성 요소만 추가됩니다. 두 센서를 같은 보드에 배치할 수도 있었지만, 보드당 하나의 센서를 유지하고 싶습니다. 각 센서 구현을 자체 회로 보드에 격리함으로써, 어떤 센서도 다른 센서와 보드를 공유함으로써 결과에 영향을 미치지 않습니다.
100k NTC 서미스터 보드는 저항기와 서미스터 구성 요소를 제외하고는 다른 것과 본질적으로 동일합니다. 프로젝트 템플릿은 매우 유사한 일련의 회로 보드를 쉽게 만드는 작업을 준비합니다.
위에서 언급했듯이, 우리는 전압 분배기에서 NTC 서미스터에 병렬로 저항을 추가할 수 있습니다. 이는 전압 분배기의 일부 구간을 선형화하는 데 도움이 됩니다. 관심 있는 온도 범위에 대해 선형 출력을 갖는 것은 수집된 데이터에 알고리즘을 실행할 수 없거나 알고리즘에 필요한 값을 결정하기 위해 필요한 데이터를 정확하게 수집할 시설이 없는 경우 유용할 수 있습니다. 온도 범위의 선형 구간은 차이 온도로 직접 해석될 수 있는 전압 읽기가 필요합니다.
이 구현을 위해, 나는 단순히 25°C에서 서미스터를 선형화할 병렬 저항을 추가하고 있습니다. 구현은 측정하려는 온도 범위의 중심점에서 NTC 서미스터의 저항과 일치해야 합니다.
이 구현을 위해 두 개의 10K 0603 저항을 함께 배치했습니다. 병렬 저항의 물리적 위치가 서미스터에 대해 측정할 수 있는 차이를 만들지 않을 것으로 예상하기 때문입니다. 충분히 정밀한 계측기가 있다면, 병렬 저항이 서미스터를 가까이에서 가열하는 것을 어느 정도 감지할 수 있겠지만, 그런 양은 너무나도 미미하여 실제 어플리케이션에는 아무런 차이를 만들지 않을 것입니다.
회로의 안정성을 향상시키기 위해, 우리는 연산 증폭기를 전압 팔로워로 사용할 수도 있습니다. 이는 전압을 측정하는 핀이 어떻게 구현되어 있는지에 따라 약간의 추가 정밀도를 제공할 수도 있습니다. 마이크로컨트롤러나 전용 ADC는 일반적으로 매우 높지만, 여전히 저희의 전압 분배기에 병렬 저항으로 작용할 수 있는 접지에 대한 일부 저항을 가지고 있습니다. 버퍼/전압 팔로워 연산 증폭기를 사용함으로써, 마이크로컨트롤러 핀을 전압 분배기로부터 격리할 수 있습니다.
이 회로에는 비교적 저렴한 버퍼 증폭기를 사용하고 있습니다. 계측용 증폭기도 비슷한 비용이 들 것입니다. 나중에 시리즈에서 살펴볼 일부 아날로그 및 디지털 센서는 버퍼 증폭기 하나보다 비용이 적게 들면서 PTC 또는 NTC 서미스터보다 더 높은 정밀도와 선형성을 가지고 있다는 점을 지적하는 것이 가치가 있습니다. 그러므로 이 회로는 더 정확한 읽기 값을 제공해야 하지만, 외부 장치/기계에서 서미스터를 읽고 감지 요소를 변경할 수 없는 경우가 아니라면 실제 장치 구현에서는 큰 의미가 없을 것입니다.
이 목적으로 일반 목적의 연산 증폭기를 사용할 수도 있으며, 비용이 절감됩니다. 버퍼 증폭기는 이득이 1이므로 피드백 연결이 필요 없으며 - 더 중요한 것은, 특별히 높은 입력 및 출력 임피던스를 가지고 있습니다. 이 높은 임피던스는 일반 연산 증폭기에 비해 이와 같은 전압 분배기를 읽을 때 더 큰 정확도를 제공합니다. 그럼에도 불구하고, 이와 같은 버퍼 증폭기는 GHz 신호를 처리할 수 있을 정도로 NTC 서미스터에 대해 엄청난 과잉 설계입니다.
전압 팔로워 구현을 위한 PCB는 다른 것들과 같은 전반적인 스타일을 따르며, 버퍼 앰프와 분배 저항기가 열 차단의 반대편에 위치합니다. 다시 말하지만, 버퍼 앰프로부터 열전도가 온도 감지기로 전달될 것이라고는 기대하지 않습니다. 이 디자인은 감지 요소만 열 차단 영역 내부에 두어 모든 측정이 일관되고 근처의 다른 구성 요소에 의해 편향되지 않도록 하는 주제를 계속합니다.
휘트스톤 브리지를 사용하여 온도 감지기의 측정을 더욱 정밀하게 할 수도 있습니다. 하지만, 이 시리즈에서 NTC 온도 감지기에 대해 구현할 계획은 없습니다. 저항 온도 감지기(RTD)에 관한 기사에서 휘트스톤 브리지 구현에 대해 더 알아볼 수 있습니다. 올바르게 구현되고 올바른 공식과 함께 사용되는 온도 감지기는 상당히 정밀할 수 있지만, 상대적으로 부정확한 센서에 휘트스톤 브리지를 사용하는 것은 구현 시간과 비용이 들지 않습니다. 위의 간단한 응용 프로그램에서 얻은 결과는 NTC 온도 감지기를 온도 센서로 최대한 활용할 수 있게 해줄 것입니다.
이 센서 테스트 카드는 오픈 소스입니다. GitHub에서 디자인을 다운로드하여 직접 사용해 보세요. NTC 서미스터를 평가하고 싶다면, 이 보드의 프로젝트 파일이 시간을 절약해 줄 것입니다. 이 시리즈 동안 개발하는 모든 센서 카드도 같은 GitHub 저장소에서 찾을 수 있으므로, 저장소를 확인함으로써 시리즈의 다음 내용을 미리 엿볼 수도 있습니다!
다음 PCB 디자인에서 Altium이 어떻게 도움을 줄 수 있는지 더 알고 싶으신가요? NTC 서미스터가 무엇인지 여전히 궁금하신가요? Altium의 전문가와 상담하세요.