서미스터를 사용하는 것은 온도를 감지하는 쉽고 저렴한 방법입니다. 그리고 서미스터로 정확한 온도를 측정하려면 마이크로 컨트롤러가 필요합니다. 그래서 여기서 우리는 온도를 읽기 위해 써미스터와 함께 Arduino를 사용 하고 온도 를 표시하기 위해 LCD를 사용하고 있습니다. 원격 기상 관측소, 홈 오토메이션, 산업 및 전자 장비의 보호 및 제어와 같은 다양한 프로젝트에 유용합니다.
이 튜토리얼에서는 Thermistor를 Arduino와 인터페이스하고 LCD에 온도를 표시 할 것 입니다. 서미스터를 사용하여 다양한 전자 회로 기반 프로젝트를 만들 수 있습니다. 그 중 일부는 다음과 같습니다.
- 서미스터를 사용하는 온도 제어 DC 팬
- 서미스터를 이용한 화재 경보
필요한 구성 요소:
- NTC 서미스터 10k
- Arduino (모든 버전)
- 10k 옴 저항기
- 전선 연결
회로도
서미스터는 전기 저항의 변화에 따라 온도 값을 제공합니다. 이 회로에서 Arduino의 아날로그 핀은 서미스터와 연결되어 있으며 ADC 값만 제공 할 수 있으므로 서미스터의 전기 저항은 직접 계산되지 않습니다. 따라서 회로는 NTC와 직렬로 알려진 10k ohm의 저항을 연결하여 위 그림과 같이 전압 분배기 회로처럼 만들어졌습니다. 이 전압 분배기를 사용하여 서미스터 양단의 전압을 얻을 수 있으며 그 전압으로 그 순간에 서미스터의 저항을 유도 할 수 있습니다. 그리고 마지막으로 아래 섹션에서 설명하는 것처럼 서미스터의 저항을 Stein-Hart 방정식에 넣어 온도 값을 얻을 수 있습니다.
서미스터
이 회로의 핵심 구성 요소는 온도 상승을 감지하는 데 사용되는 서미스터입니다. 서미스터는 온도 에 따라 저항이 변하는 온도에 민감한 저항기 입니다. 서미스터 NTC (Negative Temperature Co-efficient)와 PTC (Positive Temperature Co-efficient)의 두 가지 유형이 있으며 NTC 유형의 서미스터를 사용하고 있습니다. NTC 서미스터는 온도 상승에 따라 저항이 감소하는 저항이며 PTC에서는 온도 상승에 따라 저항이 증가합니다.
서미스터를 사용하여 온도 계산:
전압 분배기 회로에서 다음을 알고 있습니다.
V 아웃 = (V 에서 * RT) / (R + RT)
따라서 Rt의 값은 다음과 같습니다.
Rt = R (Vin / Vout) – 1
여기서 Rt는 서미스터의 저항이고 R은 10k ohm 저항입니다. 이 전압 분배기 계산기에서 값을 계산할 수도 있습니다.
이 방정식은 출력 전압 Vo의 측정 된 값에서 서미스터 저항을 계산하는 데 사용됩니다. 아래의 Arduino 코드에서 볼 수 있듯이 Arduino의 핀 A0에있는 ADC 값에서 Voltage Vout 값을 얻을 수 있습니다.
서미스터 저항에서 온도 계산:
수학적으로 서미스터 저항은 Stein-Hart 방정식을 통해서만 계산할 수 있습니다.
T = 1 / (A + Bln (Rt) + Cln (Rt) 3)
여기서 A, B 및 C는 상수이고 Rt는 서미스터 저항이고 ln은 로그를 나타냅니다.
프로젝트에 사용 된 서미스터의 상수 값은 A = 1.009249522 × 10 −3, B = 2.378405444 × 10 −4, C = 2.019202697 × 10 −7 입니다. 이러한 상수 값은 세 가지 다른 온도에서 서미스터의 세 가지 저항 값을 입력하여 여기 계산기에서 얻을 수 있습니다. 서미스터의 데이터 시트에서 직접 이러한 상수 값을 얻거나 다른 온도에서 세 개의 저항 값을 얻고 주어진 계산기를 사용하여 상수 값을 얻을 수 있습니다.
따라서 온도를 계산하려면 서미스터 저항 값만 필요합니다. 위에 주어진 계산에서 Rt 값을 얻은 후 값을 Stein-hart 방정식에 넣으면 온도 값을 켈빈 단위로 얻을 수 있습니다. 출력 전압에 약간의 변화가 있기 때문에 온도가 변화합니다.
Arduino 서미스터 코드
서미스터와 Arduino의 인터페이스를위한 완전한 Arduino 코드는이 기사의 끝에 제공됩니다. 여기서 우리는 그것의 몇 가지 부분을 설명했습니다.
수학적 연산을 수행하기 위해 헤더 파일 “#include
LiquidCrystal lcd (44,46,40,52,50,48);
시작시 LCD를 설정하려면 void 설정 부분에 코드를 작성해야합니다.
Void setup () {lcd.begin (16,2); lcd.clear (); }
서미스터의 전기 저항을 사용하여 Stein-Hart 방정식으로 온도를 계산하기 위해 위의 계산에서 설명한대로 코드에서 몇 가지 간단한 수학 방정식을 수행합니다.
플로트 a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07; float T, logRt, Tf, Tc; float Thermistor (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1.0 / (A + B * logRt + C * logRt * logRt * logRt)); // 우리는이 Stein-Hart 방정식에서 Kelvin 단위의 온도 값을 얻습니다. Tc = T-273.15; // 켈빈을 섭씨로 변환 Tf = (Tc * 1.8) + 32.0; // 켈빈을 화씨로 변환 return T; }
아래 코드에서 기능 서미스터는 Arduino의 아날로그 핀에서 값을 읽고 있습니다.
lcd.print ((서미스터 (analogRead (0))));
그 값은 아래 코드에서 가져온 다음 계산이 인쇄를 시작합니다.
플로트 서미스터 (int Vo)
서미스터 및 Arduino로 온도 측정:
Arduino에 전원을 공급하려면 USB를 통해 노트북에 전원을 공급하거나 12v 어댑터를 연결할 수 있습니다. LCD는 Arduino와 인터페이스되어 온도 값을 표시하고 Thermistor는 회로도에 따라 연결됩니다. 아날로그 핀 (A0)은 매 순간 서미스터 핀의 전압을 확인하는 데 사용되며, Arduino 코드를 통해 Stein-Hart 방정식을 사용하여 계산 한 후 온도를 가져와 LCD에 섭씨와 화씨로 표시 할 수 있습니다.