[설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

31
#3차시 Codebakery in Sullivan supported by

Upload: -

Post on 12-Apr-2017

741 views

Category:

Devices & Hardware


6 download

TRANSCRIPT

Page 1: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#3차시Codebakery in Sullivan

supported by

Page 2: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#학습목표

Codebakery

화성은 너무 춥고 건조해! / 레이더를 만들어보자

온습도 센서를 사용해보자!

센서가 나타내는 값을 직접 확인해보자

초음파 센서를 사용해보자!

버튼 사용하기

버튼을 사용해 LED 끄고 켜기

Page 3: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#목차

Codebakery

온습도 센서란?

온습도 센서 사용해보기

#01 |

#02 |

#03 | 초음파 센서

버튼 사용하기

버튼을 사용해 LED 끄고 켜기

#04 |

#05 |

Page 4: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

Codebakery

#온습도 센서란?

Page 5: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

Codebakery

#온습도 센서란?

온도와 습도를 측정해주는 센서

Page 6: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#온습도 센서 사용해보기

Page 7: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#라이브러리 설치

https://github.com/adafruit/DHT-sensor-library

https://goo.gl/fbJDx

or

Page 8: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#라이브러리 설치

클릭해 다운로드

Page 9: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#라이브러리 설치

다운로드 후 압축 풀고

../Arduino/libraries 폴더에 붙여넣기

Page 10: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#라이브러리란?

여러 복잡한 기능들을 미리 구현해두고 다른 사람들이 쉽게 사용할 수 있도록 만들어 놓은 것.

Page 11: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#온습도 받아오기

Codebakery

#include <DHT11.h>

int pin = 2;

DHT11 dht11(pin);

void setup() { Serial.begin(9600);}

void loop() { float temp, humi; if(dht11.read(temp, humi)==0) { Serial.println(temp); Serial.println(humi);}

}

Page 12: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#온습도 받아오기

#include <DHT11.h>

int pin = 2;

DHT11 dht11(pin); //dht11 라이브러리 사용 (데이터 핀 정의)

void setup() { Serial.begin(9600);}

void loop() { float temp, humi; //실수 변수 if(dht11.read(temp, humi)==0) //temp에 온도, humi에 습도값을 담는다. {

Serial.println(temp); //온도 출력 Serial.println(humi); //습도 출력

}}

Page 13: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

Codebakery

#초음파 센서란?

사람의 귀에 들리지 않는 초음파가 가지고 있는 특성을 이용한 센서. 약 20 KHz 이상

주로 속도나 거리 측정에 사용된다.

Page 14: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

Codebakery

#초음파 센서란?

박쥐가 물체를 탐지할때도

초음파를 사용함

Page 15: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#초음파 센서 사용해보기

Page 16: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#초음파 센서 소스 (1/2)

int echoPin = 12;

int trigPin = 13;

void setup(){

Serial.begin(9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

}

Page 17: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

Codebakery

#초음파 센서 소스 (2/2)

void loop(){ float duration, distance; digitalWrite(trigPin, HIGH); delay(10); digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH); distance = ((float)(340 * duration) / 10000) / 2;

Serial.print(distance); Serial.println("cm"); delay(500);}

Page 18: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

Codebakery

#거리공식

거리 = 속력 X 시간 음파의 속력은 (약) 340m/s

Page 19: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#초음파 센서 소스 설명

void loop(){ float duration, distance; // duration:시간, distance:거리 digitalWrite(trigPin, HIGH); delay(10); // 10ms 동안 초음파를 내보낸다. digitalWrite(trigPin, LOW);

Page 20: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#초음파 센서 소스 설명

duration = pulseIn(echoPin, HIGH); // echoPin이 HIGH를 유지한 시간을 저장한다. distance = ((float)(340 * duration) / 10000) / 2; // 거리 = 속력X시간이다. // 여기서 음파(소리)의 속력은 340m/s로 일정하고 시간은 duration으로 계산한다. // 10000으로 나누는 것은 단위를 맞춰주기 위함이고 // 2로 나누는 것은 초음파가 왕복하기 때문에 편도의 거리를 구하기 위함이다.

Serial.print(distance); Serial.println("cm"); delay(500);}

Page 21: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

초음파센서로

일정 범위 내에 들어왔을 때 불 켜지게 또는 소리나게

해보고싶은데...

Page 22: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#버튼이란?

Codebakery

Push Switch 라고도 부른다.

버튼을 누르면 두 개의 접촉 부분을 연결시켜 전기가 흐르게 된다.

Page 23: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#버튼 사용해 LED 끄고 켜기

Page 24: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#버튼 사용해보기

Page 25: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#버튼 예제 소스

Codebakery

int pushButton = 2;

void setup() { Serial.begin(9600); pinMode(pushButton,INPUT);}

void loop() { int buttonState = digitalRead(pushButton); Serial.println(buttonState); delay(10);}

Page 26: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#버튼 사용해 LED 끄고 켜기

int pushButton = 2;int ledPin = 13;

void setup() { pinMode(pushButton,INPUT); pinMode(ledPin,OUTPUT);}

void loop() { int buttonState = digitalRead(pushButton); digitalWrite(ledPin,buttonState);

// buttonState is LOW(0) or HIGH(1)}

Page 27: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

;digitalRead (pushButton)=return

#함수의 개념 설명

Page 28: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

;digitalRead (pushButton)=return

#함수의 개념 설명

Page 29: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

;digitalRead (pushButton)함수명 매개변수

=return반환값

#함수의 개념 설명

Page 30: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

;digitalRead (pushButton)함수명 매개변수

=return반환값

함수에 재료를 넣어서나온 결과

#함수의 개념 설명

Page 31: [설리번프로젝트] 화성에서 살아남기 3 - 온습도센서/초음파센서 기초

#digitalRead란?

Codebakery

digitalWrite

전기를 흘려보내거나 (1)

흘려보내지 않음 (0)

digitalRead

전기가 들어왔으면 (1) 전기가 들어오지 않았으면 (0)