아두이노 개발 환경에 관련된 내용을 다룹니다.
아두이노의 개발 철학
아두이노는 처음 개발 당시, 비전공자도 누구나 쉽게 개발할 수 있는 개발보드를 목표로 설계되었습니다. 프로그래밍에 대한 전문 지식이 없어도, 기초적인 원리만 알고 있다면 아두이노를 사용하여 문제없이 프로그래밍을 시작할 수 있습니다.
아두이노 IDE 기본 구조
아두이노를 실행하면 아래와 같은 창이 뜨며, 기본적으로 setup()
과 loop()
라는 두 개의 함수가 포함된 구조를 확인할 수 있습니다.
그리고 왼쪽 상단의 체크버튼이 컴파일(코드 검사), 화살표 버튼이 업로드 버튼입니다.

setup() 함수
- 기능: 프로그램 시작 전에 미리 설정해야 할 부분을 정의합니다.
- 예를 들어, 아두이노 보드에서 모터를 제어할 핀을 설정하려면 다음과 같이 작성할 수 있습니다:
void setup() { pinMode(9, OUTPUT); // 디지털 9번 핀을 출력으로 설정 }
loop() 함수
- 기능: 프로그램 실행 중 반복적으로 수행될 작업을 정의합니다.
- 예를 들어, 모터를 30도 움직였다가 -30도로 움직이는 작업을 반복하려면 다음과 같이 작성합니다:
void loop() { // 모터 동작 코드 }
주석 작성 방법
주석은 프로그램의 코드에 대한 설명을 추가할 때 사용됩니다. 컴파일 시 주석은 무시되므로 코드 실행에 영향을 주지 않습니다.
한 줄 주석: //
뒤에 설명을 작성합니다.
// 이 코드는 LED를 켜는 코드입니다.
여러 줄 주석: /*
로 시작하여 */
로 끝냅니다.
/* 이 코드는 LED를 켜고 끄는 예제 코드입니다. */
전처리와 세미콜론
전처리
전처리는 컴파일 전에 실행되며, 프로그램의 구조를 변경하거나 라이브러리를 추가할 때 사용됩니다.
#include <Servo.h> // 서보모터 라이브러리 추가
세미콜론 (;)
세미콜론은 각 문장의 끝을 나타냅니다. 단, 함수 정의나 전처리에는 세미콜론을 사용하지 않습니다.
int x = 10; // 세미콜론 필수
아두이노의 주요 함수
pinMode(pin number, INPUT or OUTPUT)
특정 핀을 입력용 또는 출력용으로 설정하는 함수입니다.
pinMode(9, OUTPUT); // 디지털 9번 핀을 출력으로 설정
digitalWrite(pin, LOW or HIGH)
출력 핀에 상태값(HIGH/LOW)을 설정하는 함수입니다.
digitalWrite(9, HIGH); // 디지털 9번 핀에 HIGH(5V) 신호 출력
delay(time)
일정 시간 동안 동작을 멈추는 함수로, 단위는 밀리초(ms)입니다.
delay(1000); // 1초 대기
아두이노 라이브러리
라이브러리는 특정 목적의 기능을 수행하기 위해 미리 작성된 파일들의 집합입니다.
- 서보모터를 제어하려면 서보모터 전용 라이브러리를 추가해야 합니다.
- 아두이노 IDE는 기본적으로 여러 라이브러리를 내장하고 있지만, 고급 모듈이나 센서를 사용하려면 외부 라이브러리를 추가로 설치해야 합니다.
#include <Servo.h> // 서보모터 라이브러리 추가
아두이노 Blink 예제 따라하기
아두이노에서 가장 기본적인 Blink 예제를 실습해 보세요. 이 예제는 보드의 디지털 13번 핀에 연결된 LED를 깜빡이게 만드는 간단한 프로그램입니다.
Blink 예제 열기
파일 > 예제 > 01.Basics > Blink를 선택합니다.

보드 선택
Tools > Board > Arduino AVR Boards > Arduino Uno

포트 연결
USB에 연결된 아두이노를 인식시키기 위해 Tools > Port > 포트를 선택합니다.
여기서 아두이노가 인식되지 않는 경우 아두이노 IDE 관련 글을 참고해서 FTDI Driver를 설치하고 업데이트 해주세요.

컴파일 및 업로드
왼쪽 상단의 체크 버튼을 클릭하여 컴파일합니다.
화살표 버튼을 클릭하여 소스 코드를 아두이노 보드에 업로드합니다.

결과 확인
그러면 13번 핀 옆에 LED가 깜빡이는 것을 확인할 수 있습니다.

추가
delay함수 안에 숫자를 변경해서 0.5초, 0.1초에 한번씩 깜빡이도록 수정해보세요
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 }