**아두이노(Arduino)**는 초보자, 예술가, 비전공자부터 전문 엔지니어에 이르기까지 센서, 모터, LED 등의 전자 부품을 손쉽게 제어할 수 있도록 만든 오픈소스 피지컬 컴퓨팅(Physical Computing) 플랫폼입니다. 2005년 이탈리아의 마시모 반지(Massimo Banzi) 교수진에 의해 디자인 학교 인터랙션 디자인 프로젝트로 시작되었습니다.
1. 아두이노의 핵심 용어 사전 (Glossary)
- MCU (Microcontroller Unit): CPU, RAM, ROM(Flash), 입출력(I/O) 장치가 단 하나의 칩 안에 통합되어 특정 제어 목적을 수행하는 소형 컴퓨터입니다.
- 오픈소스 하드웨어 (Open-Source Hardware): 제품의 회로도(Schematic), 기판 배치도(PCB Layout), 라이브러리가 모두 공개되어 누구나 복제하고 개조할 수 있는 하드웨어 형태입니다.
- 스케치 (Sketch): 아두이노 전용 IDE에서 작성하는 C/C++ 기반의 소스 코드 프로그램 파일(
.ino)을 뜻합니다. - Bootloader (부트로더): 외부 롬 라이터 장비 없이도 USB 시리얼 연결만으로 마이크로컨트롤러 플래시 메모리에 새 코드를 다운로드할 수 있게 돕는 극소형 시작 프로그램입니다.
2. 대표 보드: 아두이노 우노(Arduino Uno R3) 상세 스펙
| 세부 스펙 항목 | 데이터 / 규격 | 상세 설명 및 역할 |
|---|---|---|
| 메인 마이크로컨트롤러 | ATmega328P (Microchip/Atmel) | 8-bit AVR RISC 구조 16MHz 클록 |
| 작동 전압 (Logic Voltage) | 5V | 아두이노 핀이 처리하는 표준 논리 전압 |
| 권장 권장 입력 전압 (Vin) | 7V ~ 12V | DC 어댑터나 건전지 공급 전압 |
| 디지털 입출력 핀 | 14개 (D0 ~ D13) | 6개 핀은 PWM(펄스 폭 변조) 출력 지원 |
| 아날로그 입력 핀 | 6개 (A0 ~ A5) | 10-bit ADC(0 ~ 1023 단계) 변환 |
| 플래시 메모리 (Flash) | 32 KB | 코드가 저장되는 비휘발성 공간 (0.5KB는 부트로더가 사용) |
| SRAM (Static RAM) | 2 KB | 변수와 실행 데이터가 보관되는 휘발성 공간 |
| EEPROM | 1 KB | 전원이 꺼져도 저장되는 비휘발성 데이터 공간 |
3. 아두이노 스케치(Sketch) 기본 뼈대와 작동 알고리즘
모든 아두이노 프로그램 코드는 **setup()**과 loop() 두 개의 함수 구조를 필수로 포함합니다.
/*
프로젝트: 아두이노 기본 온보드 LED 깜빡이기 (Blink)
설명: 13번 핀에 연결된 내장 LED를 1초 간격으로 켰다 끕니다.
*/
void setup() {
// 전원이 들어오거나 리셋 버튼을 누를 때 '단 1회만' 실행되는 공간
// 주로 입출력 핀의 방향(INPUT/OUTPUT) 설정이나 시리얼 통신 초기화 수행
pinMode(LED_BUILTIN, OUTPUT); // 13번 디지털 핀을 출력 모드로 초기화
}
void loop() {
// setup()이 종료된 후 전원이 꺼질 때까지 '영원히 무한 반복' 실행되는 공간
digitalWrite(LED_BUILTIN, HIGH); // 13번 핀에 5V전압을 인가하여 LED 켜기
delay(1000); // 1000밀리초(1초) 동안 대기
digitalWrite(LED_BUILTIN, LOW); // 13번 핀에 0V(GND)전압을 인가하여 LED 끄기
delay(1000); // 1초 동안 대기
}
4. 아두이노 IDE 설치 및 연결Troubleshooting 가이드
1) IDE 설치 및 포트 연결 단계
- 공식 웹사이트(arduino.cc)에서 Arduino IDE 2.x 버전을 다운로드하여 설치합니다.
- 아두이노 보드를 USB 케이블로 컴퓨터와 연결합니다.
- [툴] $ ightarrow$ [보드] $ ightarrow$ Arduino Uno 선택.
- [툴] $ ightarrow$ [포트] $ ightarrow$ COMx (Windows) 또는 cu.usbmodemxxxx (macOS) 선택.
2) 자주 발생하는 3대 오류와 해결책
- stk500_getsync() attempt 1 of 10: not in sync error:
- 원인: PC와 아두이노 간의 통신 연결 문제 또는 0번/1번 핀에 외부 통신 모듈(블루투스 등)이 꽂혀 있어서 발생합니다.
- 해결: 0번(RX), 1번(TX) 핀에 연결된 배선을 잠시 제거한 후 업로드하거나, 포트를 재설정합니다.
- Access Denied / 권한 오류:
- 원인: 시리얼 모니터 창이나 다른 프로그램이 해당 COM 포트를 점유하고 있는 경우입니다.
- 해결: 시리얼 모니터를 닫고 업로드를 재시도합니다.
5. 자주 묻는 질문 (Q&A)
Q. 아두이노 Uno, Nano, Mega 보드의 차이는 무엇인가요? A. 우노(Uno)는 표준 입문용 보드이며, 나노(Nano)는 우노와 동일한 ATmega328P 칩을 사용하되 브레드보드에 꽂아 쓰기 좋게 소형화한 보드입니다. 메가(Mega 2560)는 핀 수가 54개로 많고 메모리가 256KB로 커 대규모 모터/센서 프로젝트에 적합합니다.