온도센서
물체의 온도를 감지하여 전기신호로 바꿔주는 센서 (에어컨,보일러,전기밥솥등에서 사용)
온도센서는 온도에 따른 전압의 변화량을 이용하여 온도를 측정하는 센서로써 약간의 오차가 있지만(±2%),
-40℃~120℃까지의 온도를 측정 할 수 있고, 사용하기 편해서 학습용으로 자주 활용 합니다.
부품 | 수량 |
---|---|
아두이노 우노 R3 | 1 |
온도센서 | 1 |
브레드보드 | 1 |
점퍼케이블 | 3 |
회로도
브레드보드 레이아웃
연결시 주의사항
PIN1 | 5V |
---|---|
PIN2 | analog입력핀 |
PIN3 | GND |
coding
우리 온도센서
float temperature;
int reading;
int lm35Pin = 5;
void setup()
{
analogReference(INTERNAL);
Serial.begin(9600);
}
void loop()
{
reading = analogRead(lm35Pin);
temperature = reading / 9.31;
Serial.println(temperature);
delay(1000);
}
다른온도센서( TMP36)
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);
}
소프트웨어 설명
온도 센서에 따라 읽는 방식이 좀 다르다.
현재온도 (섭씨) V(전압)과 C(온도)와의 관계는, V = 0.01C + 0.5*
화씨계산
- F = (9/5 C) + 32
읽혀진 온도를 시리얼모니터에출력한다.