코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
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 |
온도센서 연결시 위에 사진을 보고 연결 하셔야 합니다. 잘못 연결시 센서가 고장 날 수 있습니다.
Pin 1번(5V), Pin 2번(아날로그), Pin 3번(GND)
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
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!