2016년 9월 30일 금요일

아두이노 초보자를 위한 강의 - LED 제어하기(2016.2.23)

안녕하세요~

오늘은 센서와 엑추에이터를 다룰려 했으나, 숙제가 많아서, 준비를 많이 못했어요. 대신, 가장 기초적인 엑추에이터인 LED 제어에 대한 프로그램을 알려드리겠습니다.



"와하핳하핳핳... 이름만 들어도 어려울 것 같고, 엑추에이터라니. 너무 단계를 뛰어 넘는건 아닌지?" 라고 생각하실 필요는 없어요. 어려운거 절대 아님니다.

엑추에이터는 신호를 받아, 동작하는 모든 것들을 말해요. 모터, 전등, 스위치 등이죠.

자! 엑추에이터 중 가장 쉬운 LED가 있는데요, 아마 사람들이 제일 많이 알고 있는 것일겁니다. 그 LED에 대한 제어를 위해, 아두이노 프로그램을 배워요. 그럼 예제를 볼까요?


#define LED 13                                         // LED connected to
                                                             // digital pin
void setup( )
{
    pinMode(LED, OUTPUT);                  // sets the digittal
                                                     // pin as output
}

void loop( )
{
   digitalwrite(LED, HlGH);                    // turns the LED on
   delay(1000);                                  // waits for a second
   digitalwrite(LED, LOW);                    // turns the LED off
   delay(1000);                                  //waits for a second
}

이 글을 보고있는 사람들이 제일 궁금해 하는 것은 아마 맨 위 문장일 것입니다.
'도대체 왜 LED옆에 왜 13을 붙였냐'가 문제일겁니다. LED앞에 define가 있는데, 이 뜻은 '정의를 내리다'라는 뜻입니다. 그래서 다른 LED들도 13입니다.

그러므로 LED는 13번 핀에(아두이노에 찾아보면 있어요^^) 꽃아야 합니다.

전부터 궁금한게 있었죠? 바로... pinMode!
이건, 입력핀과 출력핀을 구별해주는 역할을 하는 함수입니다.

이 함수는 많이 사용되니 알고 있어야하는 아주~아주~아주~아~주~중요한 것입니다.
자. 여러분은 이 생각도 했을 것입니다.

'괄호는 왜 비워났지? 쓰지도 않는데...'라는 생각. 이유는 함수안에 입력값이 있으면 이 값을 괄호안에 쓰기 때문입니다. setup, loop는 입력값이 없어서 비워놓은 거예요.

아두이노는 괄호를 아에 안 쓰고 그다음 반드시 써야하는 중괄호를 쓰면 중괄호 안에 있는게 '이 중괄호는 앞에있는 거랑 관련되구나.' 라고 생각해 버리기 때문에 에러가 납니다. 괄호는 짝을 맞춰 써야 해합니다.

digitalwrite는 뭐냐고요?
이름처럼 아두이노 디지털 핀에 on(=5v, HIGH), off(=Ov, LOW)값을 쓰는 함수입니다. 


오늘은 여기까지였습니다.



댓글 1개: