부품설명

자주 사용하는 부품들의 사용법에 대하여 알아봅니다.

온도센서 사용하기

2014-08-05 11:16:47

개요

 

온도센서(TMP36)에 대해 알아보고, 아두이노와 연결하여 현재 온도를 측정해 겠습니다.



온도센서(Temperature Sensor)는 물체의 온도를 감지하여 전기신호로 바꿔주는 센서입니다.

에어콘이나 보일러, 전기밥솥 등 많은 곳에서 온도센서를 사용하고 있습니다. 





이 컨텐츠에서 사용할 TMP36 온도센서는 온도에 따른 전압의 변화량을 이용하여 온도를 측정하는 센서로써 약간의 오차가 있지만(±2%),

-40℃~120℃까지의 온도를 측정 할 수 있고, 사용하기 편해서 학습용으로 자주 활용 합니다.


이 컨텐츠 에서는 온도센서(TMP36)을 아두이노와 연결해 보고 현재 온도를 측정해 보겠습니다.

 

 


 

 

 

 

 

 

 

부품목록

 

NO 부품명 수량 상세설명
1 오렌지보드 1 아두이노
2 온도센서(TMP36) 1 온도센서
3 브레드보드 1 브레드보드
4 점퍼케이블 3 점퍼케이블

 

부품명 아두이노 우노 R3 온도센서(TMP36) 브레드보드 점퍼케이블
파트 x1 x1 x1 x3

 

 

 

 

 

 

하드웨어 making

 

브레드보드

 

전자 회로도

 





온도센서 연결시 위에 사진을 보고 연결 하셔야 합니다. 잘못 연결시 센서가 고장 날 수 있습니다.

Pin 1번(5V), Pin 2번(아날로그), Pin 3번(GND)

 

 

 

 

 

소프트웨어 coding

 

int outputpin= A5; // 센서와 연결된 아날로그 핀 설정

void setup()
{
  Serial.begin(9600); // 시리얼 통신을 열고 속도를 9600bps 로 사용한다.
}

void loop()
{
  int reading = analogRead(outputpin);  // 센서로 부터 자료값을 받는다.
  float voltage = reading * 5.0 / 1024.0;
  float celsiustemp = (voltage - 0.5) * 100 ; 
  float fahrenheittemp= celsiustemp * 9.0/5.0 + 32.0;
  // 입력받은 자료값을 수정하여 필요한 자료값으로 바꾼다.

  Serial.print(celsiustemp);
  Serial.println(" Celsius");
  Serial.print(fahrenheittemp);
  Serial.println(" Fahrenheit");
  Serial.println("----------------------");
  // 수정하여 나온 자료값을 출력한다.(섭씨, 화씨 둘다 출력)
  delay(1000);
} 

 

 

소프트웨어 설명

 

 * 이 코드는 스케치를 사용하여 작성 / 업로드 합니다. 스케치에 대한 사용법은 링크를 참고하시기 바랍니다.

  int reading = analogRead(outputpin);  // 센서로 부터 전압값을 받는다.
  float voltage = reading * 5.0 / 1024.0;
  float celsiustemp = (voltage - 0.5) * 100 ; 
  float fahrenheittemp= celsiustemp * 9.0/5.0 + 32.0; 
  // 입력받은 자료값을 수정하여 필요한 자료값으로 바꾼다.

 온도센서로 부터 입력 받은 값을 우리가 알아볼 수 있게 수정 하는 과정입니다.

 지금 저희가 쓰고 있는 TMP36(온도센서)는 온도에 따른 전압값을 보내줍니다.
 
 V(전압)과 C(온도)와의 관계는, V = 0.01*C + 0.5입니다. 이 식을 가지고 온도를 구하면 C = 100*(V – 0.5)가 되므로 이식을 이용하여 현재 온도(섭씨)를 구합니다.

 위에서 구한 섭씨 값에다가 9/5를 곱하고 32를 더하면, 우리가 알고 있는 화씨(Fahrenheit)가 됩니다. (F = (9/5 * C) + 32)
 

  Serial.print(celsiustemp);
  Serial.println(" Celsius");
  Serial.print(fahrenheittemp);
  Serial.println(" Fahrenheit");
  Serial.println("----------------------");

Serial.println()을 써서 시리얼 모니터에서 온도를 확인 할 수 있도록 만들어 줍니다.

 

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

온도센서, 아두이노, 오렌지보드