[설리번프로젝트] 화성에서 살아남기 1 - led밝히기

46
#1차시 Codebakery in Sullivan supported by

Upload: -

Post on 22-Jan-2018

279 views

Category:

Devices & Hardware


1 download

TRANSCRIPT

Page 1: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#1차시Codebakery in Sullivan

supported by

Page 2: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#학습목표

Codebakery

화성에서 고립됐다! 무전기는 고장났다...힝

실제로 아두이노를 만져보자!

브레드보드가 뭘까? LED가 뭘까?

변수, 분기문, digitalWrite, analogWrite

Page 3: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#목차

Codebakery

#01 | 기초 프로그래밍

브레드보드란?

코딩없이 LED 켜기

아두이노 IDE 설치

기초 코딩

#02 |

#03 |

#04 |

#05 |

LED 제어#06 |

Page 4: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

프로그램 웹도 프로그램입니다

Codebakery

Page 5: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

코딩프로그래밍 과정중 하나로 컴퓨터가 알아들을 수 있는 명령어를 작성하는 행위

Page 6: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

사물인터넷(IoT)모든 사물이 인터넷에 연결되는 유비쿼터스, 사물들끼리 유기적으로 소통

Page 7: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

Operation System모든 사물이 인터넷에 연결되는 유비쿼터스, 사물들끼리 유기적으로 소통

Page 8: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#브레드보드란?

납땜이 필요없어용

회로를 손쉽게 구성할 수 있어용

전기가 가로, 세로로 흘러용

일명 빵판

Page 9: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

이제 본격적으로 해보자

LED에 불을 밝히려면 어떻게 해야 되는가?

Codebakery

Page 10: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

이제 본격적으로 해보자

LED에 불을 밝히려면 어떻게 해야 되는가?

전기를 연결한다...

Page 11: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

이제 본격적으로 해보자

LED에 불을 밝히려면 어떻게 해야 되는가?

전기를 연결한다...

아두이노로 어떻게?일단 따라 해보자

Page 12: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#코딩없이 LED 켜기

Codebakery

Page 13: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#보충 - 저항을 사용하는 이유

20mA

5V

Codebakery

Page 14: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#보충 - 저항을 사용하는 이유

2V

5V

300Ω

2V

과한 전압을 조금 줄여주는 효과

V(전압) = I(전류) X R(저항)

Codebakery

전체 전류는 같다

Page 15: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - 켜기

Page 16: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - 켜기

LED에 불을 밝히려면 어떻게 해야 되는가?

Page 17: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#아두이노 IDE 설치

1. arduino.cc 에 접속합니다.

Codebakery

Page 18: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#아두이노 IDE 설치

2. Download 탭에 들어갑니다.

Codebakery

Page 19: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#아두이노 IDE 설치

3. Windows Installer를 다운로드 합니다.

Codebakery

Page 20: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#아두이노 IDE 설치

4. 다운로드 한 파일을 실행해 설치합니다.

Codebakery

Page 21: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#아두이노 IDE 설치

5. 이런 텍스트 창이 뜬다!

Codebakery

Page 22: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - 켜기

void setup() { pinMode(5, OUTPUT);}

void loop() { digitalWrite(5, HIGH);}

Page 23: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

https://www.youtube.com/watch?v=ihroyXWSTn8

Page 24: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#코드 업로드

Codebakery

이걸 눌러봅시다

Page 25: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - 켜기

void setup() { pinMode(5, OUTPUT); // 5번 핀을 출력 모드로 설정한다.}

void loop() { digitalWrite(5, HIGH); // 5번 핀에서 전류가 흐르게 한다.}

Page 26: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - 끄고 켜기

void setup() { pinMode(5, OUTPUT);}

void loop() { digitalWrite(5, HIGH);

delay(500);digitalWrite(5, LOW);

}

Page 27: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#아두이노 IDE 설치

Codebakery

이걸 눌러봅시다

Page 28: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - 끄고 켜기

void setup() { pinMode(5, OUTPUT);}

void loop() { digitalWrite(5, HIGH);

delay(500); // 0.5초 동안 정지한다.digitalWrite(5, LOW); // 5번 핀에서 전류가 흐르지 않게 한다.

}

Page 29: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - 끄고 켜기

void setup() { pinMode(5, OUTPUT);}

void loop() { digitalWrite(5, HIGH);

delay(500); // 0.5초 동안 정지한다.{ 여러분이 한번 패턴을 만들어보세요! }digitalWrite(5, LOW); // 5번 핀에서 전류가 흐르지 않게 한다.

}

Page 30: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

int brightness = 0;int fadeAmount = 5;

void setup() { pinMode(6, OUTPUT);}

void loop() { analogWrite(6, brightness);

brightness = brightness + fadeAmount;

if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; }

delay(30);}

한번 더 따라 써봅시다

Page 31: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

int brightness = 0; // int는 Integer의 약자로 정수를 뜻한다.int fadeAmount = 5;

void setup() { pinMode(6, OUTPUT);}

void loop() { analogWrite(6, brightness);

brightness = brightness + fadeAmount;

if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; }

delay(30);}

완전히 밝아지거나/ 완전히 어두워지면 반대로 행동되도록

여기까지 잘 되었나요?

그럼 이게 어떻게 작동하는지 봅시다!

Page 32: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

void setup pinMode}

void loop analogWrite

brightness = brightness + fadeAmount;

if (brightness == 0 || brightness == 255) {

int brightness = 0; // int는 Integer의 약자로 정수를 뜻한다.int fadeAmount = 5;

Page 33: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

변수수 또는 문자 등 데이터를 담는 그릇

Page 34: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

int brightness = 0; int fadeAmount = 5;

void setup pinMode}

void loop analogWrite

brightness = brightness + fadeAmount;

delay}

if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; }

Page 35: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

int brightness = 0; int fadeAmount = 5;

void setup pinMode}

void loop analogWrite

brightness = brightness + fadeAmount;

delay}

if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; }

완전히 밝아지거나/ 완전히 어두워지면 반대로 행동되도록

Page 36: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

조건문조건에 맞는지, 맞을때만 뭔갈 하고싶을때

Page 37: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

‘=‘ : 대입 할 때 사용합니다.

‘==‘ : 일치하는지를 알아 볼 때 사용합니다.

‘||’ : OR(또는)을 의미합니다.

if : 조건문으로 괄호 안의 조건이 옳으면 1(True),

틀리면 0(False)를 반환해줍니다.

Page 38: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

LED에 들어가는 전압을 조절해야 합니다.

그런데 아두이노의 디지털 핀에서는 전압 자체를 조절할 수 없고

오직 0(Off), 1(On)으로만 제어가 가능합니다.

이 때 비슷한 효과를 내기 위해 PWM(펄스 폭 변조) 방식을 이용하는데

이 방식은 매우 빠르게 On/Off를 반복하여

On/Off 간격에 따라 평균전압을 낮추는 효과를 냅니다.

LED의 밝기를 조절하려면?

Page 39: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

LED에 들어가는 전압을 조절해야 합니다.

그런데 아두이노의 디지털 핀에서는 전압 자체를 조절할 수 없고

오직 0(Off), 1(On)으로만 제어가 가능합니다.

이 때 비슷한 효과를 내기 위해 PWM(펄스 폭 변조) 방식을 이용하는데

이 방식은 매우 빠르게 On/Off를 반복하여

On/Off 간격에 따라 평균전압을 낮추는 효과를 냅니다.

LED의 밝기를 조절하려면?

어려워

Page 40: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

불을 70% 밝기로 하고싶으면

평균적으로 100초에 불이 70초만 켜져있게 하면 됩니다

Page 41: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#LED 제어 - fade

불을 70% 밝기로 하고싶으면

평균적으로 100초에 불이 70초만 켜져있게 하면 됩니다

더 간단하게

겁나 깜빡이는데 눈에 안보일 속도로 깜빡이는것

Page 42: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#기초 코딩 - pinMode

설명

특정한 핀이 INPUT(입력)이나 OUTPUT(출력) 중

어느 역할을 하는지 지정해줍니다.

사용 예시

pinMode(5,OUTPUT);

Codebakery

Page 43: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#기초 코딩 - digitalWrite

설명

디지털 핀에 HIGH 혹은 LOW 값을 줍니다.

HIGH 값일 경우는 전류가 흐르게 되고

LOW 값일 경우에는 전류가 흐르지 않게 됩니다.

사용 예시

digitalWrite(5,HIGH);

Codebakery

Page 44: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#기초 코딩 - analogWrite

설명

핀에 아날로그 값(PWM Wave)을 부여합니다.

LED의 밝기를 조정하고 모터의 속도를 조정하는 등에 사용됩니다.

사용 예시

analogWrite(6, 128);

여기서 value의 범위는 0(항상 꺼짐) ~ 255(항상 켜짐)

Codebakery

Page 45: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

#기초 코딩 - delay

설명

입력 시간동안 프로그램을 정지시킵니다.

이 때 입력값은 ms(milli second) 단위 입니다.

즉, 1000ms = 1s 입니다.

사용 예시

delay(1000);

Codebakery

Page 46: [설리번프로젝트] 화성에서 살아남기 1 - LED밝히기

Codebakery

#정리하기