아두이노(Arduino) 입문: 개념부터 첫 프로그래밍까지 완벽 가이드
아두이노(Arduino)란? 오픈소스 하드웨어 플랫폼의 모든 것
아두이노는 내장 프로그래머를 갖춘 오픈소스 하드웨어 플랫폼입니다. 별도 헥스 버너 등 하드웨어/소프트웨어 없이 PC에서 작성한 프로그램(헥스 파일)을 바로 업로드할 수 있습니다. 기본 동작에 필요한 주변 회로가 모두 내장되어 있으며, AVR 마이크로컨트롤러 기반입니다.
아두이노를 선택하는 4가지 이유
- 내장 프로그래머: 별도 마이컴·버너 구매 불필요, 초보자 진입 장벽 대폭 낮춤
- 오픈소스 생태계: 전 세계 개발자가 라이브러리·버그 수정 지속 기여, 지원 자료 풍부
- 방대한 라이브러리: 기본 기능 코드 재작성 불필요, 생산성 극대화
- 실드(Shield) 생태계: 헤더 핀으로 간편 장착, 배선 오류 감소, 공간·전력 효율적
단일 마이크로컨트롤러로는 위 장점을 모두 누리기 어렵습니다. 그래서 취미가부터 전문가까지 아두이노를 선호합니다.
주요 아두이노 보드 종류
- Arduino UNO (입문 표준)
- Arduino Mega (I/O 다수 필요 시)
- Arduino Duemilanove
- Arduino Fio
- LilyPad Arduino (웨어러블용)
- Arduino Extreme V2
- 그 외 다수 변형 보드
Arduino UNO 주요 스펙
| 항목 | 사양 |
| 마이크로컨트롤러 | ATmega328 |
| 동작 전압 | 5V DC |
| 입력 전압 (외부) | 6~20V DC (권장 7~12V) |
| 디지털 I/O 핀 | 14개 (PWM 6개: 3,5,6,9,10,11번) |
| 아날로그 입력 핀 | 6개 (A0~A5) |
| 핀당 최대 DC 전류 | 40mA |
| 3.3V 핀 최대 전류 | 50mA |
| 플래시 메모리 | 32KB (부트로더 0.5KB 사용) |
| 클럭 속도 | 16MHz (세라믹 레조네이터) |
| SRAM | 2KB |
| EEPROM | 1KB |
아두이노 프로그래밍 기초: 첫 코드 작성
IDE 설치
www.arduino.cc에서 IDE 다운로드·설치 후 실행. 보드 종류(Tools → Board)에서 'Arduino UNO' 선택.
코드 구조: 두 개의 핵심 블록
void setup() {
// 초기화: 핀 모드 설정, 변수 초기화, 라이브러리 시작
// 한 번만 실행
}
void loop() {
// 메인 로직: 무한 반복 실행
}
최소 코드 예제: LED 점멸 (L-치카)
int LED = 13; // 13번 핀에 'LED' 이름 부여
void setup() {
pinMode(LED, OUTPUT); // LED 핀을 출력으로 설정
}
void loop() {
digitalWrite(LED, HIGH); // 5V 출력 (LED ON)
delay(1000); // 1000ms = 1초 대기
digitalWrite(LED, LOW); // 0V 출력 (LED OFF)
delay(1000);
}
코드 작성 후 업로드 버튼(→ 아이콘) 클릭 → 보드에 기록 완료!
필수 기초 함수 치트키
- pinMode(pin, mode): 핀을 INPUT/OUTPUT/INPUT_PULLUP로 설정
- digitalWrite(pin, value): 디지털 핀에 HIGH(5V)/LOW(0V) 출력
- digitalRead(pin): 디지털 핀 상태 읽기 (HIGH/LOW)
- analogRead(pin): 아날로그 핀 읽기 (0~1023, 0~5V)
- analogWrite(pin, value): PWM 출력 (0~255, 0~100% 듀티)
- delay(ms): 밀리초 단위 지연
- Serial.begin(baud): 시리얼 통신 시작 (보통 9600)
- Serial.print/println(): 시리얼 모니터 출력
다음 단계 학습 추천
- 아두이노 PWM 프로그래밍 심화
- 아두이노 시리얼 통신 (UART) 마스터
- 라즈베리파이(Raspberry Pi) 입문 및 프로젝트
- PIC18 마이크로컨트롤러 C 프로그래밍
- PCB 설계 단계별 튜토리얼