전략과 전술

아두이노와 LM35DZ로 온도 측정하기(analogRead 함수)

CreatoMaestro 2024. 1. 24. 22:12
반응형

아두이노와 LM35DZ로 온도 측정하기 커버

 

아두이노가 받는 신호의 종류는 두 가지로 나눌 수 있다.

바로 디지털과 아날로그이다.

디지털은 모든 신호를 0 혹은 1로 나누고

아날로그는 연속된 신호를 받는다.

이번 글에서는 아날로그 신호를 받을 수 있는

'analogRead' 함수에 대해 알아본다.

 

AnalogRead 함수를 쓰는 법

AnalogRead 함수를 쓰는 방법은 간단하다.

아날로그 값을 받을 핀 이름만 함수 안에 매개변수로 지정해 주면 된다.

그리고 값을 저장할 변수를 지정해주면 끝이다.

이를 코드로 나타내면 다음과 같다.

 

변수 = analogRead(핀이름)

 

하나 주의해야 하는 점은 아두이노 우노에서

아날로그 입력을 받을 수 있는 핀이 제한되어 있다는 점이다.

아두이노 우노의 왼쪽 아래를 보면 A0 부터 A5까지 적혀있는 곳을 볼 수 있다.

아두이노 우노 아날로그 핀
아두이노 우노의 아날로그 핀

이 6개의 핀에서만 아날로그 입력을 받을 수 있다.

 

AnalogRead를 이용해 온도 측정하기(LM35DZ 센서이용)

이제 AnalogRead를 실제로 사용해보자.

LM35DZ라는 온도센서를 이용해 온도를 측정해 볼 것이다.

이 온도센서는 온도에 따라 내보내는 전압이 달라진다.

이 전압을 다음 식에 대입하면 온도를 구할 수 있다.

 

Temp = 2 + (val*5*0.1)

 

Temp는 실제 온도 값이고,

val은 analogRead함수를 이용해 받아온 값이다.

자세한 사항은 LM35DZ의 데이터시트를 확인하길 바란다.

 

다음은 온도 측정회로와 코드이다.

온도 측정 회로
온도 측정 회로

int val;
int temp;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  val = analogRead(A0);
  temp = 2 + (val * 5 * 0.1);
  Serial.println(temp);
  delay(200);
}

 

val에는 analogRead로 읽어온 값을 저장하고,

temp에는 온도 값을 저장한다.

 

setup 함수 안에 있는 'Serial.begin(9600)'은

UART 통신을 이용해 온도 값을 컴퓨터로 보내기 위해 썼다.

 

loop안을 보면 오늘 배우는 analogRead 함수가 보인다.

여기서는 A0의 값을 읽어온다.

값은 val 변수에 저장한다.

 

이후 temp 변수에 val 값을 이용해 계산한 온도 값을 저장한다.

이 값은 UART 통신을 통해 컴퓨터로 보내진다.

 

측정은 0.2초마다 한 번씩 이루어진다.

 

여기까지 analogRead 함수와

LM35DZ를 이용한 온도 측정방법을 알아보았다.

 

반응형