아두이노 기본실습 8 - LM35 온도센서 실험

LM35온도센서는 외부온도에 따라 비례하는 전압값을 출력하는 센서로 아두이노 보드로 손쉽게 온도값을 얻을 수 있습니다.  0°C에서는 0V이며 1°C 당 10mV씩 전압이 증가합니다.

이 번 실험에서는 앞서 기본실습7에서 사용한 1602 텍스트 LCD로 LM35온도센서로부터 얻은 온도값을 표시하는 실험을 합니다. 1602 텍스트 LCD에 대한 내용은 기본실습7을 참조하시기 바랍니다.

아래는 LM35온도센서입니다.

 

결선방법

LCD결선방법은 기본실습7을 참조하시기 바랍니다. LM35온도센서의 1번핀은 5V에 3번핀은 GND에 연결합니다. 2번핀(온도 전압값 출력핀)은 아두이노 우노보드의 아날로그입력 A4에 연결합니다.

 

소스코드

아래는 소스코드입니다. 아두이노 IDE에 붙여넣기 하여 컴파일하고 업로드해봅니다.

// 아두이노 LM35 온도센서 실험
#include <LiquidCrystal.h> //LCD라이브러리

LiquidCrystal lcd(7,8,9,10,11,12);//RS,E,DB4,DB5,DB6,DB7

int potPin = 4; //LM35센서로부터 입력을 받을 포트를 아날로그 A4핀으로 설정
float temperature = 0; //온도를 저장할 변수 선언
long val=0; //val 변수 선언

void setup()
{
  lcd.begin(16, 2);  //LCD 초기화
  lcd.print("LM35 Thermometer");  //LM35 Thermometer 를 LCD에 표시
  delay(1000); //1000ms 지연
}

void loop ()                     
{

  val = analogRead(potPin); //LM35센서로부터 불러온 값을 val변수에 저장
  temperature = (val*4.8828125); //val값을 실제온도*10으로 변환
  lcd.clear(); //LCD 화면 클리어
  lcd.print("LM35 Thermometer"); //LCD화면 첫줄에 LM35 Thermometer 표시
  lcd.setCursor(0, 1) ; //LCD에 표시할 위치를 2번째 줄 맨앞으로 이동
  lcd.print((long)temperature / 10); //온도의 정수값표시
  lcd.print(".");    //소수점표시
  lcd.print( (long)temperature % 10); //소수점이하 온도 표시
  lcd.print((char)223); //ㅇ표시
  lcd.print("C"); //C표시

  delay(2000); //2초간 지연함. 새로운 온도값을 2초마다 불러오게 됨

}