A PHP Error was encountered

Severity: Notice

Message: Undefined index: HTTP_ACCEPT_LANGUAGE

Filename: core/KF_Controller.php

Line Number: 155

온도 측정계 만들기

지니어스키트 학습가이드

아두이노 시작의 첫단계, 기본은 충실하게, 그러나 가볍게!!

온도 측정계 만들기

2015-01-23 10:36:28

개요

개요

집 안의 온도를 알고 싶은데 집에 온도계가 없으신가요?
아두이노와 아날로그 온도센서만 있다면 온도계가 없어도 집 안의 온도를 잴 수 있습니다.




물론 단순하게 컴퓨터에 온도값을 출력해 주는 모습이 아닌 서보모터를 사용하여 자동차 계기판처럼 온도 측정계를 만들 수 있습니다.
아날로그 온도센서가 측정한 값을 서보모터의 각도값으로 변환시켜 서보모터의 움직임을 통해 우리는 현재의 온도를 눈으로 볼 수 있습니다.


출처 : http://www.samsamstory.com/1268

아두이노를 사용하여 컴퓨터 모니터 위에 온도 측정계를 달아보는건 어떨까요?



필요한 사전지식

온도센서
서보모터

부품 목록

NO 부품명 수량 상세설명
1 오렌지보드 1  
2 서보모터 1 서보모터 mini
6 아날로그 온도 센서 1 TMP36
9 브레드 보드 1  
10 점퍼 케이블 8  

부품명 오렌지보드 서보모터 아날로그 온도 센서 브레드보드 점퍼 케이블
부품 사진  

하드웨어 making

브레드 보드


전자 회로도




계기판은 반원으로 0부터 30도까지의 온도를 표현할 수 있습니다.




계기판의 바늘은 뒤쪽에 달린 서보모터를 통해 제어하게 됩니다.

소프트웨어 coding

// 서보모터를 쉽게 제어하기 위하여 라이브러리를 추가합니다.
#include <Servo.h>
//변수 선언
float voltage = 0; float sensor = 0; float celsius = 0; int angle = 0; Servo myservo; //서보모터 객체 선언 void setup() { myservo.attach(4); //서보모터를 디지털 핀4번으로 설정합니다. Serial.begin(9600); //시리얼 통신을 초기화하고 통신속도를 9600bps로 설정합니다. } void loop() { sensor = analogRead(0); //아날로그 0번핀에 연결된 아날로그 온도센서로 부터 값을 읽어들입니다.
//정해진 과정을 통해 센서에서 읽어들인 값을 섭씨온도로 변환합니다. voltage = (sensor*5000)/1024; voltage = voltage-500; celsius = voltage/10;

//시리얼모니터에 온도값을 출력합니다. Serial.print(celsius); Serial.println((char)176);

//map함수를 통해 측정된 온도값을 서보모터가 움직일 각도로 변환시킵니다.
//celsius값은 0부터 30까지의 값만을 유효값으로 읽습니다.
//유효값으로 읽은 0부터 30사의 값을 180부터 0사이의 값으로 변환시킵니다. int angle = map(celsius,0,30,180,0);
//서보모터의 각도를 시리얼모니터에 출력합니다. Serial.print(angle); Serial.println(" degree");
//서보모터에 주어진 각도값이 0부터 180사이의 유효한 값일 경우 서보모터를 제어합니다. if(angle >=0 && angle <=180) { myservo.write(angle); delay(1000); //1초마다 반복하게 됩니다. } }

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

아두이노, 온도센서, 서보모터