아두이노 온도센서 계산 - adu-ino ondosenseo gyesan

안녕하세요. 코드덤입니다. 

지난 시간에 온도센서에 대해 알아보았죠~! 

이번 시간에는 온도센서 값을 읽어서, 그 값에 따라 LED를 켜고 끄는 방법에 대해 알아볼 거예요.

저는 LED를 아래와 같이 2개를 가지고 왔어요.

특정 온도 이상이 되면, 빨간 LED가 그리고 어떤 온도 이하가 되면 파란 LED가 켜지도록 만들어 줄게요. 

먼저 온도센서 회로는 지난 시간에 만든 회로를 그대로 사용해 줄게요. 

반달 모양에서 직선 부분을 저희 쪽으로 놓았을 때, 왼쪽 끝이 전원 공급선, 오른쪽 끝이 그라운드,

그리고 가운데 핀이 신호핀이죠! 그래서 A0로 연결해 둘게요. 

온도센서는 회로를 잘못 연결하게 되면, 굉장히 뜨거워지니, 그 경우에는 바로 전원 공급을 차단시켜 주세요!  

아래와 같이 LED의 회로도 만들어 줍니다. 

저항은 220옴을 사용했어요. 

먼저 온도센서를 읽을 수 있는 블록을 가지고 올 거랍니다. 

텍스트 코딩에서 온도센서 값을 계산하는 아래 수식은 

어떠한 온도센서를 사용하는지에 따라 달라지니, 자신이 사용하는 온도센서의 제조사에서 제공하는 계산식을 사용해 주세요. 

팅커캐드에서 제공하는 온도센서는 TMP36입니다. 

그리고 그 온도센서 값을 변수를 만들어 담아줄 거예요.

tmp라는 정수 타입의 변수를 하나 만들어 줄게요. 

그리고 그 변수에 온도를 계산하는 수식 값을 넣어줍니다. 

이제 조건문을 만들어 줄게요. 

먼저 빨간 LED부터 조건문을 만들어 줄 거랍니다. 

저는 40도 이상일 경우 빨간 LED를 켜 줄게요. 

40도 이하면 빨간 LED가 꺼져야겠죠. 그래서 아래와 같이 IF문을 만들어 줍니다. 

이제 파란 LED도 추가해 볼게요. 

동일한 방식으로 조건문을 만들어 주시면 됩니다. 

저는 0도 이하가 되면 파란 LED가 켜지도록 만들어 줄게요.

아래 영상을 통해 보다 자세한 내용을 확인해 보세요~ 

youtu.be/uSgrY5CzovM

youtu.be/DdyzsM3UyeU

//class101.app/e/Codethem_Maker_class

피지컬 컴퓨팅 아두이노로 만드는 5가지 프로젝트!

아두이노? 들어본 것 같기도 한데..? 📍아두이노(Arduino) = 나만의 작은 컴퓨터! '스마트 OO' , 어떤 제품 앞에 스마트라는 단어가 들어가지 않는 제품은 거의 없습니다. 그런 스마트 제품을 만들기

class101.app

안녕하세요. 메카럽입니다.

이번 포스팅에서는 아두이노 온도센서에 대해 알아보겠습니다. 4차 산업혁명의 가장 큰 수혜 업종 중 하나로 농업 분야를 꼽습니다. 각종 환경 센서로 작물 주변의 온도와 습도, 조도 등을 측정, 관리하여 생산력을 높이겠다는 개념입니다. 여기에 액추에이터까지 추가하면 농업 자동화까지 이어지게 마련입니다. 온도센서는 안전 분야에서도 적용되는데요. 급격한 온도 상승을 감지하여 스피커를 통해 알람을 보내는 화재 감지기로 사용할 수 있고, 실내 온도를 측정하여 디스플레이하는 온도계로도 사용할 수 있습니다. 조도 센서는 차량 외부의 밝기를 측정하여 전조등을 제어하거나, 방안의 조도를 측정하여 전등의 밝기를 제어하는데 활용할 수 있으며 둘 다 환경 센서의 범주에 속합니다.

온도 센서
목적 주변 온도 측정
세부내용 센서 주변의 온도를 측정
원리 온도 변화에 따른 저항, 전압의 변화를 측정
애플리케이션 실내 온도계, 토양 온도 측정, 화재 감지기
TMP-36 온도 센서

아두이노와 함께 쓸만한 온도 센서로 "TMP-36"을 살펴보겠습니다. TMP-36은 앞서 살펴본 트랜지스터와 굉장히 유사하게 생겼습니다. -50℃ ~ +125℃까지 측정 가능하며, 2.7V ~ 5.5V의 전원으로 구동됩니다. 온도 센서 연결 시 핀 맵을 유의하도록 합니다. 양쪽의 두 핀은 각각의 전원과 접지와 연결되고 중간의 핀이 온도값을 전압으로 출력합니다. 온도에 따른 전압은 -50℃에서 0V를 출력하고, +125℃에서 1.75V를 출력하게 됩니다. 즉, 온도 1℃의 변화에 대해 10mV씩 변화하며, 이 전압을 아두이노의 analogRead( )함수로 읽어 들이게 됩니다.

이제 온도 센서로 주변 온도를 측정해보겠습니다. 아두이노와의 연결은 다음과 같이 굉장히 간단합니다.

준비물 : 아두이노 우노, TMP-36 온도센서, 점퍼선, 브레드보드, 아두이노 전원선

아두이노와 온도 센서와의 연결

아래 예제는 A0 포트를 통해 TMP-36 센서로부터 출력되는 전압을 측정하고, 이 전압을 analogRead( ) 함수를 이용해 온도값으로 변환하는 과정을 나타내고 있습니다. A0 포트와 TMP-36의 중간다리를 연결하고 아래 예제의 코드를 업로드 해봅니다.

온도센서 제어 스케치

temp_ADC라는 변수는 analogRead( ) 함수를 통해 ADC된 값을 리턴하고 "voltage"는 이 ADC 값을 전압값으로 다시 바꿔주는 변수로, 5V 입력전압을 1024로 나누어 주었습니다. 변환된 voltage는 0.5를 더하고 0.01로 나누어 주었습니다. 앞서 TMP-36 센서가 -50℃에서 0V를 출력한다고 하였습니다. 이 값을 그대로 사용하면 0℃ 기준의 전압값과 차이가 잇으므로 이것을 보기 편하게 맞춰주기 위한 오프셋(offset)으로 0.5를 더하였습니다. 10mV=0.01V이므로 -50℃를 보상하기 위해서는 0.5(50x0.01)를 더해주어야 합니다.

TMP-36 온도센서 실행결과

위 그림은 스케치 실행결과를 나타내었습니다. 안타깝게도 제가 가지고 있는 TMP-36온도 센서는 결과값에서 voltage값이 0, temperature 값이 50으로 고정되어 나오는 것을 보니 불량인듯합니다. 그래도 ADC값은 정상으로 출력이 되는 것을 확인할 수 있습니다.

온도와 TMP-36의 출력

TMP-36 온도 센서 외에 동일한 형상의 LM-35 센서도 자주 사용합니다. LM-35는 측정 범위가 0℃ ~ +100℃이고, 온도에 대한 출력 전압이 0.5V ~ 1.5V입니다. 온도 1℃의 변화에 대해 10mV씩 변하는 것으론 TMP-36과 동일하지만, 0℃에서 0.5V를 출력한다는 차이점이 있으며 이 부분 또한 오프셋 값을 조정하여 온도값으로 변환해줄 수 있습니다.

이번 포스팅에서는 온도 센서에 대해 알아보았는데요. 아쉽게도 제가 가지고 있는 온도센서가 불량이라 정확한 값을 출력하지 못한점 양해부탁드리고 다음 포스팅에서는 조도 센서에 대해 알아보는 시간을 갖도록 하겠습니다. 조도센서는 불량이 아니길 바라는 마음으로 오늘 하루도 화이팅 하시고 행복 가득한 하루 되세요.

Toplist

최신 우편물

태그