"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번으로 출력을 하도록 설정. voidloop(){ //LED1 즉 12번 핀에 연결된 LED 켜기 //LED2 즉 13번 핀에 연결된 LED 끄기 delay(500); //반대로 끄고, 켭니다. 그리고 아두이노에 업로드를 하면~~ 2개의 LED가 번갈아 가면서 점멸합니다. 이번에도 쉽죠? 깜박이는 속도를 변경하려면 delay(숫자); 를 변경하면 됩니다. 전에도 말씀드렸다시피 1000은 1초입니다. 만약에 30개의 LED를 컨트롤하고 싶다면 어떻게 할까요? 아쉽게도 아두이노 단독으로는 그 많은 수의 LED를 켤 수 없습니다. 두가지 이유가 있습니다. 하나는 아두이노가 그 많은 LED를 켤 만한 전압과 전류를 낼 수 없다는 것, 또 하나는 아두이노가 가진 핀의 갯수가 부족하다는 것입니다. 그럼 어떻게 하느냐?? 여러개의 LED를 컨트롤 해주는 부품을 구입하거나, 회로를 직접 꾸미는 수 밖에 없습니다. : ( 이것은 나중에 공부해보도록 하죠. |