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

Preview:

Citation preview

#1차시Codebakery in Sullivan

supported by

#학습목표

Codebakery

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

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

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

변수, 분기문, digitalWrite, analogWrite

#목차

Codebakery

#01 | 기초 프로그래밍

브레드보드란?

코딩없이 LED 켜기

아두이노 IDE 설치

기초 코딩

#02 |

#03 |

#04 |

#05 |

LED 제어#06 |

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

Codebakery

Codebakery

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

Codebakery

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

Codebakery

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

Codebakery

#브레드보드란?

납땜이 필요없어용

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

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

일명 빵판

이제 본격적으로 해보자

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

Codebakery

Codebakery

이제 본격적으로 해보자

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

전기를 연결한다...

Codebakery

이제 본격적으로 해보자

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

전기를 연결한다...

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

#코딩없이 LED 켜기

Codebakery

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

20mA

5V

Codebakery

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

2V

5V

300Ω

2V

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

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

Codebakery

전체 전류는 같다

Codebakery

#LED 제어 - 켜기

Codebakery

#LED 제어 - 켜기

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

#아두이노 IDE 설치

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

Codebakery

#아두이노 IDE 설치

2. Download 탭에 들어갑니다.

Codebakery

#아두이노 IDE 설치

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

Codebakery

#아두이노 IDE 설치

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

Codebakery

#아두이노 IDE 설치

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

Codebakery

Codebakery

#LED 제어 - 켜기

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

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

Codebakery

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

#코드 업로드

Codebakery

이걸 눌러봅시다

Codebakery

#LED 제어 - 켜기

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

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

Codebakery

#LED 제어 - 끄고 켜기

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

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

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

}

#아두이노 IDE 설치

Codebakery

이걸 눌러봅시다

Codebakery

#LED 제어 - 끄고 켜기

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

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

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

}

Codebakery

#LED 제어 - 끄고 켜기

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

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

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

}

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);}

한번 더 따라 써봅시다

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);}

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

여기까지 잘 되었나요?

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

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;

Codebakery

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

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 ; }

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 ; }

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

Codebakery

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

Codebakery

#LED 제어 - fade

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

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

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

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

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

Codebakery

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

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

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

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

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

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

LED의 밝기를 조절하려면?

Codebakery

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

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

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

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

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

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

LED의 밝기를 조절하려면?

어려워

Codebakery

#LED 제어 - fade

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

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

Codebakery

#LED 제어 - fade

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

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

더 간단하게

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

#기초 코딩 - pinMode

설명

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

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

사용 예시

pinMode(5,OUTPUT);

Codebakery

#기초 코딩 - digitalWrite

설명

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

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

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

사용 예시

digitalWrite(5,HIGH);

Codebakery

#기초 코딩 - analogWrite

설명

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

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

사용 예시

analogWrite(6, 128);

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

Codebakery

#기초 코딩 - delay

설명

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

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

즉, 1000ms = 1s 입니다.

사용 예시

delay(1000);

Codebakery

Codebakery

#정리하기

Recommended