본문 바로가기
아두이노

[아두이노] 보드에 프로그램 올리는법 및 핀 배치도

by 배전이 2020. 7. 26.

저번 글에서는 아두이노 시작하기 전에 준비해야 할 사항에 대해서 써봤습니다. 이제 준비는 완료되었으니, 아두이노에 간단한 프로그램을 올려보고 원하는 대로 정상 작동하는지를 알아봐야겠죠? 

 

우선 아두이노에 프로그램을 넣을 때 컴퓨터와 아두이노의 통신은 보통 아두이노 보드 구매 시에 동봉되는 케이블을 사용하시면 됩니다. 정품을 구매하신 분은 당연히 구성품에 포함되어 있지만 저렴한 호환 보드를 구매하고자 하시는 분들은 상품에 따라 케이블이 제공되지 않는 상품도 있으니 케이블이 없어서 따로 별도로 구매하시는 일이 없기를 바랍니다. 

아래의 사진과 같이 케이블을 USB로 컴퓨터와 연결하면 보드에 전원이 들어옵니다. 

 

 

보드가 정상적으로 작동하는지는 예제프로그램을 넣어서 확인해볼 예정입니다. 그전에 우선 우노 보드에는 입력과 출력을 담당하는 다양한 핀들이 있는데요 이 각각의 핀들을 통해 센서의 값을 가져오거나 전자장치를 제어할 수 있습니다. 아두이노 홈페이지에서 이 핀들의 배치를 확인할 수 있습니다.

우노보드 핀 배치도 <출처 : https://content.arduino.cc/assets/Pinout-UNOrev3_latest.pdf>

이 핀들의 이름은 기본적으로 보드 자체에도 간단하게 작성되어 있습니다. 각 핀들의 용도는 앞으로 차차 알아가도록 하고 오늘 사용할 것은 우노 보드에 내장되어있는 LED입니다. 핀 배치도에서 보면 LED_BUILTIN 이 내부 LED를 나타내며 이 핀은 또한 디지털 13번 핀과 같이 연결되어있는 것을 알 수 있습니다. 디지털 핀은 1과 0의 출력을 내보내거나 입력을 받을 수 있는 핀으로 1과 0은 5V, 0V로 출력됩니다. 그래서 우리는 디지털 13번 핀을 제어하여 우노 보드의 내장 LED를 제어해보도록 하겠습니다. 

 

간단하게 우노 보드에 올릴 예제 코드를 작성해 봤습니다. 

 

void setup() {
  pinMode(13,OUTPUT);
}

void loop() {
  digitalWrite(13,1);
  delay(1000);
  digitalWrite(13,0);
  delay(1000);
}

 

아두이노는 항상 두 가지 함수를 실행하면서 동작하게 됩니다. setup 함수와 loop 함수인데요, 이름 그대로 setup 함수는 보드의 세팅을 정하는 함수로 처음 보드 구동 시 1회만 실행하게 됩니다. loop 함수도 이름대로 반복한다는 뜻이죠 따라서 보드에 전원이 들어가면 setup 함수를 한번 실행하고 그 이후로는 loop 함수를 계속 반복 실행하게 됩니다. 

 

예제 코드에 사용된 함수를 간단히 알아보겠습니다.

 

1. pinMode 함수 

 

pinMode(pin, mode)

 

보드에는 디지털 핀이 있는데 이것으로 1과 0을 입력받거나 출력할 수 있습니다. 하지만 해당 핀을 입력과 출력으로 동시에 쓸 수는 없습니다. 모드를 설정해 주어야 하죠. 현재 아두이노에서 가능한 모드는 INPUT, OUTPUT, INPUT_PULLUP 의 3가지 모드입니다. INPUT, OUTPUT은 말 그대로 입력과 출력을 의미합니다. 해당 모드로 선언해주면 입력과 출력 핀으로 동작합니다. INPUT_PULLUP 모드는 보드 내에 내장된 풀업 저항을 사용하겠다는 뜻인데 이는 나중에 더 자세히 다루도록 하겠습니다. 

 

2. digitalWrite 함수

 

digitalWrite(pin, value)

 

digitalWrite 함수는 해당 핀을 통해 디지털 값 1과 0을 출력하는 함수입니다. digitalWrite 함수를 사용하기 전에 해당 핀을 OUTPUT 모드로 선언해주어야 정상 작동합니다. 실제 출력되는 전압은 보드 동작전압으로 1이면 5V가, 0이면 0V가 출력되게 됩니다. 

 

3. delay 함수

 

delay(ms)

 

delay 함수는 동작을 지연하는 함수로 입력한 값의 ms (1000분의 1초) 동안 보드가 연산 작업을 멈추게 됩니다. 해당 시간이 끝나면 다음 코드를 실행하게 됩니다. 

 

이 함수들을 통해 만들어진 예제 프로그램을 살펴보면 우선 setup에서 13번 핀을 OUTPUT으로 설정하고 있습니다. 이는 우노 보드 내부 LED가 디지털 13번 핀에 연결되어있기 때문에 이 13번 핀의 출력을 변경하기 위함이죠. 다음으로 loop 함수 내에서 13번 핀의 출력을 1로 했다가 1초 delay 하고 0으로 했다가 1초 delay 하는 것을 계속 반복하게 됩니다. 따라서 1초를 주기로 LED가 켜졌다 꺼졌다를 반복하는 동작이 되는 것이죠. 

 

이제 코딩한 코드를 보드에 올려보도록 하겠습니다. 우선 보드와 컴퓨터를 연결하고 IDE를 실행합니다. 해당 코드를 작성한 후 상단 메뉴의 스케치 - 업로드를 누르면 코드를 컴파일한 후 에러가 없을 경우 보드에 올라가게 됩니다. 올라간 순간부터 보드는 입력한 코드대로 동작을 반복하게 되죠. 확인해보도록 하겠습니다! 

 

LED가 1초마다 깜빡 깜빡 하는게 보이시죠?! 제가 입력한 코드가 정상적으로 동작하고 있다는 걸 알 수 있습니다. 여러분들도 한 번씩 예제 프로그램 올리셔서 정상적으로 작동하는지 꼭 확인해보세요~ 

댓글