본문 바로가기
Arduino(아두이노) 키트 강좌

Step.11-Arduino Uno 로 NTC 서미스터로 온도에 따른 저항변화 테스트 하기

by 오마이엔지니어 2015. 5. 26.
반응형

Arduino Uno 로 NTC서미스터 를 사용해 온도에 따른 저항의 변화를 테스트 하는 프로젝트 입니다
서미스터 (thermistor) 는 주위에 온도에 따라 저항 값이 변합니다
NTC 서미스터 (Negative Temperature Coefficient) 는 온도가 증가함에 따라 저항값이 감소 합니다
PTC 서미스터 (Positive Temperature Coefficient) 는 반대로 온도가 증가함에 따라 저항값이 증가 합니다

<NTC 서미스터 이미지>
다양한 모양과 종류의 NTC 서미스터가 유통되고 있습니다

본 테스트에서는 위 이미지의 NTC 서미스터를 사용해서 온도에 따라서 변하는 저항값을 이용해 
Temperatura Atual 값의 변화를 확인해 보도록 하겠습니다
오마이엔지니어 스타터 키트에는 재고 유무에 따라 위 둘중 하나의 서미스터가 포함되어 있습니다

사용된 부품

Arduino Uno R3 (Italy)

브래드 보드

NTC 서미스터

10K (Ohm) 저항 1개

점퍼케이블

 

사용된 키트

Arduino Starter kit (클릭)



구성 배선도

 

 

사용된 예제소스 

NTC.txt

 

사용된 라이브러리

Thermistor.zip


NTC 서미스터는 라이브러리를 추가해 주어야 합니다
라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요


#include <Thermistor.h>
Thermistor temp(0);
void setup() {
  Serial.begin(9600);
}
void loop() {
  int temperature = temp.getTemp();
  Serial.print("Temperatura Atual: ");
  Serial.print(temperature);
  Serial.println("*C");
  delay(1000);
}

Thermistor.h 라이브러리를 사용합니다, 시리얼 통신속도는 9600입니다, int temperature = temp.getTemp();

주의사항
NTC 서미스터의 온도에 따라 변하는 저항값을 이용해 Temperatura Atual 값의 변화를 확인해 보는 간단한 테스트 입니다

외부온도가 다른 조건 또는 서미스터를 동영상 처럼 손으로 잡아서 온도를 올려주면
출력값이 올라가는것을 확인할 수 있습니다


프로젝트 동영상


이어서 NTC 온도센서를 사용해서 온도 변화에 따라서 LED를 점등시키는 프로젝트를 진행해 보겠습니다


테스트에서는 위 이미지의 모델명: NTC MF5A-3 10K (10K 옴 제품입니다) 를 사용하였습니다
NTC 온도센서는 여러 종류의 모델이 있고 이에 따라 용량이 제각각 이기 때문에 잘 확인해서 테스트 해야 합니다

사용된 부품

Arduino Uno R3 (Italy)

브래드 보드

NTC 서미스터 (10K)

10K (Ohm) 저항 1개
220 (Ohm) 저항 1개
5mm LED 블루 1개

점퍼케이블


구성 배선도-Arduino Uno로 NTC 온도센서(10K)를 사용해서 온도 변화시 LED 제어해 보기

사용된 예제소스

NTC_LED.txt


위 배선도를 참조해서 배선하고 예제 코드를 업로드 해 주고 시리얼 모니터로 출력값을 확인해 봅니다

출력값이 571 정도로 나오는 것을 확인할 수 있습니다
물론 이 수치는 실내 온도와 주변환경에 따라서 차이가 날수 있습니다

하지만 수치가 틀리더라도 예제코드에서 적절하게 변경해 주면 되기때문에 상관없습니다
아날로그 출력값 0~1024 안의 범위로 일정하게 수치만 나오면 됩니다

하단 프로젝트 동영상에서도 확인 할 수 있듯이 NTC 온도세서를 손으로 잡아서 체온으로 인해 온도가 변하고
저항값이 변해서 아날로그 출력값이 570대에서 600대를 넘어가는것을 확인할 수 있습니다
600 이 넘으면 LED가 점등 되며 시리얼 모니터로 ntc level up LED on! 문구가 출력 됩니다

예제코드를 살펴보면
  Serial.begin(9600);
  pinMode(A0, INPUT);  
  pinMode (11, OUTPUT);
시리얼 통신속도 9600에, 센서는 아날로그 A0 번 핀 설정, LED는 11번 핀 설정을 확인 할 수 있습니다
   
  if (x > 600)
  {   
   Serial.println(" ntc level up LED on! ");   
   digitalWrite (11, HIGH);
  }  
출력값이 600 보다 크면 LED가 켜지게 세팅 되어 있습니다
이 부분 적정하게 변경해서 테스트 하면 됩니다
이를테면 만약 실내 환경이 틀려서 기본 출력값이 250 정도로 나온다면   if (x > 600) 이 부분을   if (x > 300) 이렇게 변경해 주면 됩니다

 Serial.println(" ntc level up LED on! ");    
사리얼프린트 함수가 있으므로 출력값 600 이상 시 역시 시리얼 모니터로 ntc level up LED on! 을 출력해 줍니다

프로젝트 동영상-Arduino Uno로 NTC 온도센서(10K)를 사용해서 온도 변화시 LED 제어해 보기


NTC_LED.txt
0.0MB
Thermistor.zip
0.0MB
NTC.txt
0.0MB
반응형

댓글