키위백과의 잡동사니

아두이노 LED 깜박이기 본문

아두이노/아두이노

아두이노 LED 깜박이기

KiwiPedia 2018. 5. 1. 14:34

이번에는 아두이노 내부의 LED를 깜박이는 프로그래밍 예제를 한번 해보겠습니다. 필요한 물품은 아두이노UNOUSB A-B 케이블입니다.

깜박일 아두이노 내부 LED는 위에 붉은색 네모로 표시해둔 LED입니다. 아두이노 UNO 보드에는 L이라고 표시되어 있습니다.


이제 본론으로 돌아와 예제를 실행시켜 보겠습니다. 우선 아두이노 IDE를 실행시킨 뒤 메뉴에 있는 파일 탭에서 예제 > 01.Basics > Blink를 클릭합니다.


그럼 Blink 예제가 불러온 다음, 메뉴에 있는 파일 탭에서 다른 이름으로 저장을 클릭합니다. 단축키로 Ctrl+Shift+S를 눌러도 다른 이름으로 저장됩니다.


저장 경로는 아무 곳이나 상관없습니다만, 본인이 찾기 편한 곳에 저장하는 것을 추천합니다. 저는 문서 폴더에 Arduino 폴더를 만들어 Blink라는 이름으로 저장했습니다.


저장 후 확인버튼을 누르면 메시지에 컴파일 완료라고 뜹니다. 



컴파일 후 메뉴 탭에서 보드 > Arduino/Genuino Uno를 클릭합니다. 이때 본인이 사용하는 보드가 아두이노 UNO가 아닌 경우 본인에게 맞는 보드를 선택하면 됩니다.


그리고 아두이노와 컴퓨터를 연결하고, 메뉴에서  탭에 포트 > COM5를 선택합니다. 컴포트 선택 시 COM 뒤에 붙는 숫자의 경우 컴퓨터마다 다르며 저의 경우 COM5가 잡혔습니다. COM 뒤에 (Arduino/Genuino Uno)라고 적혀있는 것 선택하시면 됩니다. 다른 보드 사용 시 COM 뒤에 다른 보드 명이 적혀있습니다.


컴포트까지 잡아주고 나면 드디어 업로드 버튼을 눌러 업로드합니다. 업로드가 완료되면 메시지에 업로드 완료라는 문구가 출력됩니다. 이제 보드에 Blink 예제 프로그래밍이 업로드되었습니다.


보드를 관찰하면 아두이노 내부 LED부분이 1초 간격으로 깜박이는 것을 확인할 수 있습니다.


그럼 이제부터 코드에 관해 설명하겠습니다.

윗부분에 블록 주석처리 되어있는 부분은 예제에 대한 설명과 수정한 사람 등이 예제에 대한 정보가 나와 있습니다. 이전의 Blink 예제와 약간 다른 점은 전에는 pin13번으로 LED로 설정해주었지만, 최신 예제의 경우 LED_BUILTIN라는 변수를 정의하여 사용하고 있습니다. LED_BUILTIN 변수의 경우 아두이노 보드에 따라 LED pin이 다르기 때문에 각 보드에 맞는 LED pin을 설정해주기 위해 변경된 사항입니다.


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

위에 블록 주석 부분을 제외하고 LED를 작동시키는 부분의 코드만 가져와 보겠습니다. 코드는 크게 setup()과  loop()로 나누어집니다. setup()의 경우 전원을 인가하거나, 스케치를 업로드 했을 때 처음 한 번만 실행되는 함수입니다. loop()setup()이 실행된 다음 계속 반복하여 실행되는 함수입니다.


void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

우선 setup() 함수를 살펴봅시다. pinMode(LED_BUILTIN, OUTPUT) 함수는 정의되어있는 LED pin(변수 LED_BUILTIN)을 OUTPUT(출력)으로 설정합니다.


void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

이번에는 loop() 함수를 살펴봅시다. digitalWrite(LED_BUILTIN, HIGH) 함수는 LED_BUILTIN에 HIGH 출력을 내보내겠다는 것입니다. 쉽게 얘기하자면 LED pin에 HIGH 전압을 인가하는 것입니다. 그리고 delay(1000) 함수는 1,000ms(1s)만큼 시간 지연을 줍니다. 이는 환산하면 1초입니다. 이렇게 두 함수를 거치면 1초 동안 LED가 켜집니다. 그다음 digitalWrite(LED_BUILTIN, LOW) 함수도 LED_BUILTIN에 LOW 출력을 내보냅니다. 마찬가지로 LED pin에 LOW 전압을 인가하는 것이지요. 마지막으로 1초 시간 지연을 시킵니다. 그럼 1초 동안 LED가 꺼지는 작동을 합니다. 이 함수들이 loop() 함수 안에 있어 LED가 1초 켜진 후 1초 꺼지는 것이 무한 반복하게 되는 프로그래밍이 완성되었습니다.


Tip. 깜박이는 속도를 변경하고 싶다면 delay 함수 안에 숫자를 바꿔주면 됩니다. 만약 delay를 500으로 바꾸면 0.5초 간격으로 LED가 깜박이는 것을 관찰할 수 있습니다.


여기까지 아두이노 내부 LED를 깜박이는 것을 알아보았습니다. 글과 관련하여 궁금한 부분이나 수정이 필요한 부분이 있으면 댓글을 남겨주시면 감사하겠습니다.

'아두이노 > 아두이노' 카테고리의 다른 글

프리징(Fritzing) 다운로드 및 설치  (0) 2018.04.26
아두이노 IDE 명칭  (0) 2018.04.20
아두이노UNO 보드 설명  (0) 2018.04.20
아두이노(Arduino)  (0) 2018.04.06
아두이노 Online Tools  (0) 2018.04.05
Comments