[설리번프로젝트] 화성에서 살아남기 1 - led밝히기
TRANSCRIPT
#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 설치
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
#정리하기