"4차 산업혁명의 시대를 준비하는 융합인재를 위한 교육과정"
▣ 수학/과학(교과내신/교과심화/경시/창의사고력과정)
▣ 코딩(알고리즘, KOI, 정보올림피아드, C/C++언어, 이산수학)
▣ 사물인터넷(아두이노, 메이커, 프로젝트, 과학탐구)
▣ 융합실험과학(즐겁게 만들고 실험하기, 자작)
▣하늘교육 팔용학원 ▣창원하늘바다영재교육원
055)297-2626
아두이노(Arduino)와 브레드보드(Bread Board)를 이용한
LED 2개를 동시에 ON(켜기) 하기
// 8, 9번 핀 사용
int led1=8;
int led2=9;
void setup() {
pinMode(led1, OUTPUT);//출력으로 설정
pinMode(led2, OUTPUT);//출력으로 설정
}
void loop() {
digitalWrite(led1, HIGH); //LED ON
digitalWrite(led2, HIGH); //LED ON
delay(500);//0.5초
digitalWrite(led1, LOW); //LED OFF
digitalWrite(led2, LOW); //LED OFF
delay(500);//0.5초
}
이번에는 두개의 LED가 교대로 ON/OFF가 되도록 해보자.
즉 위의 코드는 LED 두개가 0.5초 간격으로 깜박 깜박 한다.
한개가 ON되면 다른 한개는 OFF가 되면서 깜박 깜박하게
해보자.^^
// 8, 9번 핀 사용
int led1=8;
int led2=9;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
delay(500);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(500);
}
이제 LED 를 켜는 것쯤은 식은 죽 먹기 입니다.
하지만 이것은 식은죽 이상의 의미를 가지고 있습니다.
단순히 켜고 꺼진다는 것이 아닌, LED 뿐만이 아니라 어떠한 기기들의 전원을 올리고 내릴 수 있다는 뜻입니다.
즉!! 카메라의 셔터를 누른다든지, 방안의 전등을 켜고 끈다든지 하는 것들을 할 수 있다는 것이죠!!
어쨌든 이번에는 LED 2개를 켜보도록 하겠습니다.
회로는 아래와 같이 꾸미시고~
편의상 회로를 뒤집어 놨습니다.
12번, 13번 이렇게 2개의 핀을 사용하지만, GND핀은 두개가 아닌 하나만사용합니다.
회로를 보시는 것처럼 합쳐서 나갑니다 : )
코드는 아래와 같습니다.
// LED1, LED2 변수 에 각 12와 13을 넣습니다.
int LED1 = 12;
int LED2 = 13;
void setup() {
// 12, 13번으로 출력을 하도록 설정.
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
}
voidloop(){
//LED1 즉 12번 핀에 연결된 LED 켜기
digitalWrite(LED1, HIGH);
//LED2 즉 13번 핀에 연결된 LED 끄기
digitalWrite(LED2, LOW);
// 0.5초 대기
delay(500);
//반대로 끄고, 켭니다.
digitalWrite(LED1,
LOW);
digitalWrite(LED2, HIGH);
delay(500);
}
그리고 아두이노에 업로드를 하면~~
2개의 LED가 번갈아 가면서 점멸합니다.
이번에도 쉽죠?
깜박이는 속도를 변경하려면 delay(숫자); 를 변경하면 됩니다.
전에도 말씀드렸다시피 1000은 1초입니다.
만약에 30개의 LED를 컨트롤하고 싶다면 어떻게 할까요?
아쉽게도 아두이노 단독으로는 그 많은 수의 LED를 켤 수 없습니다.
두가지 이유가 있습니다.
하나는 아두이노가 그 많은 LED를 켤 만한 전압과 전류를 낼 수 없다는 것,
또 하나는 아두이노가 가진 핀의 갯수가 부족하다는 것입니다.
그럼 어떻게 하느냐??
여러개의 LED를 컨트롤 해주는 부품을 구입하거나, 회로를 직접 꾸미는 수 밖에 없습니다. : (
이것은 나중에 공부해보도록 하죠.