아두이노 실습 2주차 (Blink Example)

2023. 9. 18. 22:55아두이노 (Arduino)

아두이노란?

 

이탈리아 디자인 전문 학교의 목표는 'IT와 디자인을 융합한 학생을 만들자'였다. 그렇지만 공학지식을 전수하는데 있어서 여러 가지 어려움을 가지게 되었는데 그 중 가장 큰 문제점이 전자부품은 값비싸기 때문에 재원확보에 어려움을 가지게 되었다. 마시모 반지(Massimo Banzi) 라는 교수가 기초 기술로 값싸게 기능을 구현할 수 있는 보드는 없을까? 라고 고민을 하다가 직접 개발에 나서게 되었고, 그리하여 탄생한 보드가 아두이노이다.

 

마시모  반지 (Massimo  Banzi )

 

아두이노 우노(UNO) 보드

아두이노 우노(UNO) 보드는 가장 기본적인 보드이자 일반적으로 사용되는 보드이다. 앞으로의 실습은 모두 아두이노 우노를 가지고 진행할 예정이다.

 


 

아두이노 개발 환경 갖추기

 

아두이노는 아두이노 개발사에서 제공하는 통합개발환경(IDE)를 가지고 개발 할 수 있다.

 

아두이노 홈페이지/소프트웨어에 들어가서 본인의 컴퓨터 OS와 사양에 맞는 아두이노 IDE를 다운받으면 된다.

 

 


 

아두이노 IDE사용방법

 

아두이노 IDE를 설치 후 프로그램을 실행시키게 되면 아래와 같은 화면이 나올 것이다.

 

 

아두이노 공식 홈페이지에서 제공하는 아두이노 IDE 2 튜토리얼을 간단히 살펴보자.

 

  • Verify / Upload - 코드를 컴파일하여 아두이노 보드에 업로드합니다.
  • Select Board & Port - 탐지된 아두이노 보드가 포트 번호와 함께 자동으로 여기에 나타납니다.
  • Sketchbook - 여기에서 컴퓨터에 로컬로 저장된 모든 스케치를 찾을 수 있습니다. 또한 아두이노 클라우드와 동기화할 수 있으며 온라인 환경에서 스케치를 얻을 수도 있습니다.
  • Library Manager - 아두이노와 그 커뮤니티가 만든 수천 개의 아두이노 라이브러리를 둘러볼 수 있습니다.
  • Debugger - 실시간으로 프로그램을 테스트하고 디버그합니다.
  • Search - 코드에서 키워드를 검색합니다.
  • Open Serial Monitor - 콘솔의 새 탭으로 시리얼 모니터 도구를 엽니다.

 

 


 

아두이노 실습 - Blink Example

 

1. 실습을 진행하기 위해 아두이노 보드와 컴퓨터를 USB로 연결한다.

 

2. 연결이 완료되면 아두이노 IDE 상단 메뉴바에서 Tools -> Port 로 들어가 본인이 연결한 아두이노 보드를 선택한다.

 

3. Select Board & Port 에서 연결한 아두이노 보드를 선택한다.

 

이러면 아두이노 실습을 위한 준비는 모두 마치게 된다!!

 

 

처음으로 아두이노에서 기본적으로 제공하는 Blink 예제를 가지고 실습을 해보았다.

IDE 상단 메뉴바에서 File -> Examples -> 01.Basics -> Blink 를 클릭한다.

 

그러면 아래와 같은 예제코드가 생성되어 진다.

간단하게 아두이노 보드에 내장되어 있는 LED가 깜빡이는 코드이다.

 

코드를 하나씩 해석해보자.

 

 

setup() 함수는 아두이노 보드가 처음 시작될 때 한번 실행되는 함수이다.

void는 함수의 리턴값(Return)이 없다는 뜻이다.

 

pinMode(LED_BUILTIN, OUTPUT); 은 내장 LED를 출력모드로 설정한다는 뜻이다.

 

 

loop() 함수는 setup() 함수 실행 후에 계속해서 무한히 반복되는 함수이다.

 

digitalWrite(LED_BUILTIN, HIGH); 은 LED를 킨다는 뜻이다. LED_BUILTIN 상수는 내장 LED가 연결된 핀을 나타내며, HIGH는 해당 핀에 전압을 인가하여 LED를 켠다는 뜻이다.

 

delay(300); 은 내장 LED를 켠 상태에서 0.3초(300밀리초) 동안 대기한다는 뜻이다.

 

digitalWrite(LED_BUILTIN, LOW); 은 LED를 끈다는 뜻이다. LOW는 해당 핀에 전압을 인가하지 않아 LED를 끄는 역할을 한다.

 

delay(300); 은 LED를 끈 상태에서 다시 0.3초동안 대기한다는 뜻이다.

 

 

(원래 delay는 기본값으로 1000밀리초(1초)가 설정되어 있지만 편의를 위해서 0.3초로 설정했다.)

 

 

저 코드를 컴파일하여 아두이노 보드에 업로드를 해보자.

그럼, 아래 실습 영상과 같이 내장 LED가 깜빡이는 것을 볼 수 있다.

 

 

 

 

 

이번엔 브레드보드를 이용하여 외부의 LED를 연결하고 깜빡이게 하는 코드를 작성해 보자.

아두이노와 LED는 아래와 같이 연결하면 된다.

 

 

코드는 위에서 사용했던 코드에서 LED_BUILTIN 부분만 13으로 고치면 된다.

 

위에서 작성했던 코드와의 차이점은 내장 LED(LED_BUILTIN)만을 제어하는 것이 아니라 13번 핀에 연결된 LED를 모두 제어함으로써 브레드보드를 이용한 외부 LED를 깜빡이게 할 수 있다는 것이다.

 

 

아래 실습 영상을 살펴보자.

 

 

외부 LED 또한 정상적으로 깜빡이는 모습을 볼 수 있다.

 

 

마지막으로, for문(반복문)을 이용하여 LED를 제어하여 보자.

 

20번 깜빡이고 10초동안 쉬었다가 다시 20번 깜빡이는 코드이다.

 

 

아래 실습 영상을 살펴보자.

 

 

정상적으로 잘 작동하는 모습이다.