아두이노. NTC 온도 센서로 만든 온도계
글. 오상문 sualchi@daum.net
이번 예제는 NTC 온도센서를 이용하여 온도를 측정하고 그 값을 출력하는 예제입니다.
준비물: 아두이노 우노, 미니 브레드보드, ntc 온도센서, 10K 저항 1개
회로 배치도는 다음과 같습니다.
소스 코드는 다음과 같습니다.
참고로 측정된 온도 값을 섭씨 온도로 바꾸려면 좀 복잡한 계산이 필요합니다.
GetTemperature () 함수가 그 계산을 하는 부분입니다.
/*
* NTC 온도센서 예제
*/
#include <math.h>
double temperature = 0.0;
double GetTemperature(int t)
{
double temp;
temp = log(10000.0 / (1024.0 / t - 1));
temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741*temp*temp))*temp);
return (temp - 273.15); // 섭씨 온도로 변환
}
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.write("온도: ");
temperature = GetTemperature(analogRead(A0));
Serial.println(temperature);
delay(1000);
}
아두이노 보드에 업로드한 다음에 우측상단의 시리얼 모니터 아이콘을 클릭하면
측정한 온도 값을 볼 수 있습니다.
에어컨을 꺼놨더니 실내 온도가 어느 새 28도였습니다. (다른 전자 온도계도 28도였음)
중간에 29도 넘어가는데, 제가 손가락을 센서에 대서 일부러 온도가 변하나 확인한 겁니다. ^^
<이상>
'아두이노, 라즈베리파이' 카테고리의 다른 글
아두이노, 부저 소리 크기 제어하기 (저항 사용하기) (0) | 2018.06.29 |
---|---|
아두이노, 능동 부저 vs, 수동 부저 (도레미파솔라시도) (0) | 2018.06.29 |
아두이노, 브레드 쉴드와 미니 브레드보드 이용하기 (0) | 2018.06.28 |
아두이노 회로 배치 디자인 프로그램 Fritzing(프리칭) 다운로드 (0) | 2018.06.28 |
아두이노, 피에조 부저(스피커) 다루기 (0) | 2018.06.27 |