'blinking'에 해당되는 글 1건

  1. 2015.05.21 아두이노를 내장 LED 깜박이기

 아두이노 우노에는 실습용 LED가 실장되어 있는데 이것은 13번 핀과 연결되어 있다. 아래 그림과 같이 아두이노마크 근처에 위치하고 있다.(빨간 원 안)


[그림 1] 아두이노 우노의 내장 LED


이것을 이용하여 깜박이는 예제는 아두이노 IDE에 미리 탑재되어서 제공되는데 다음과 같이 예제파일을 선택하여 읽어들일 수 있다.


[그림 2] Blink 예제 읽어들이기


소스코드는 다음과 같다. (주석문은 삭제하였다.)


int led = 13;
void setup() {
   pinMode(led, OUTPUT);
}
void loop() {
   // turn the LED on (HIGH is the voltage level)
   digitalWrite(led, HIGH);
   delay(1000); // wait for a second

   // turn the LED off by making the voltage LOW

   digitalWrite(led, LOW);
   delay(1000); // wait for a second
}


이 예제의 구조를 살펴보면 먼저 눈에 띄는 것이 있는데 setup() 함수와 loop() 함수이다. 이 두 함수는 아두이노 프로그램의 전체적인 구조를 잡아주는 역할을 한다.


    ⁎ setup() 함수

       • 아두이노 프로그램이 실행될 때 맨 처음에 단 한 번 호출되어 수행된다.

       • 따라서 여기에 각종 장치를 초기화하거나 초기값을 설정하는 코드가 오게 된다.


    ⁎ loop() 함수

        • setup()함수 실행 후 수행되면 계속 반복 수행된다.

        • 아두이노에 연결된 장치들을 구동시키는 코드가 위치한다.


setup()함수 내에서 pinMode()함수를 사용하는데 이 함수는 핀을 입력(INPUT) 혹은 출력(OUTPUT)으로 사용할 지를 설정하는 함수이다. 첫 번째 인자로 핀의 번호가 두 번째 인자로 INPUT, 혹은 OUTPUT이라는 상수를 넘겨주면 된다. pinMode(led, OUTPUT) 은 led(13번)을 출력(OUTPUT)으로 사용하겠다고 설정하는 것이다.


   ⁎ pinMode(pinNumber, INPUT/OUTPUT) 함수

       • pinNumber 핀을 입력(INPUT) 혹은 출력(OUTPUT)으로 사용할 지를 지정한다.

       • pinNumber는 우노의 경우 0,1,2, … 13, A0, A1, ...A6 중 하나이다.


loop()함수에서는 digitalWrite()함수를 사용했는데 이 함수는 핀으로 출력값을 내보내는 작업을 수행한다. 첫 번째 인자로 핀 번호를 받고 두 번째 인자로 HIGH 혹은 LOW 상수를 받는다. digitalWrite(led, HIGH) 명령은 led 핀에 HIGH 신호를 내보내므로 LED가 켜지게 된다. 반대로 digitalWrite(led, LOW) 명령은 led 핀에 LOW 신호를 내보내므로 LED가 꺼지게 된다.


    ⁎ digitalWrite(pinNumber, HIGH/LOW) 함수

         • pinNumber 핀이 출력일 경우에 사용한다.

         • 1값을 내보낼지 (HIGH) 0값을 내보낼지(LOW)를 지정한다.


delay()함수는 입력된 시간만큼 아무 일도 안하고 멈춰있는 동작을 수행한다. delay(1000)은 1000ms 동안 지연시키는 것이다. 입력받는 숫자는 ms 단위이다.


    ⁎ delay(time) 함수

         • time ms 만큼 지연 (아무런 일도 안 하고 멈춰있음)한다.


이 함수의 입력 인자가 밀리세컨드(ms) 단위임을 유의해야 한다.


아두이노 강좌 전체 목록 (TOP) >>>

C++ 언어 전체 강좌 목록 >>>

c{ard},n{ad007}

Posted by 살레시오
,