아두이노 보드

아두이노 우노 보드 핀맵, 핀 설명

eduino 2026. 6. 5. 13:16

1. 아두이노 우노란?

아두이노 우노(Arduino Uno)는 이탈리아 Arduino 팀이 설계한 오픈소스 마이크로컨트롤러 보드입니다. ATmega328P 칩을 기반으로 하며, 전 세계에서 가장 널리 사용되는 마이크로컨트롤러 보드 중 하나입니다.

"Uno"는 이탈리아어로 "1"을 의미하며, USB 시리얼 통신 방식을 개선한 첫 번째 버전이라는 의미에서 붙여진 이름입니다. 현재 가장 많이 사용되는 버전은 R3(Revision 3)입니다.

💡 추천 대상: 아두이노 우노는 코딩 교육, IoT 프로토타이핑, 로봇 제작 등 다양한 분야에 활용됩니다. C/C++ 기반의 아두이노 IDE로 쉽게 프로그래밍할 수 있어 입문자에게 가장 먼저 추천되는 보드입니다.

2. 주요 스펙

마이크로컨트롤러 ATmega328P
동작 전압 5V
권장 입력 전압 7 ~ 12V
한계 입력 전압 6 ~ 20V
디지털 I/O 핀 14개 (PWM 6개)
아날로그 입력 핀 6개 (A0 ~ A5)
핀당 최대 전류 40mA
3.3V 핀 전류 50mA
플래시 메모리 32KB (부트로더 0.5KB)
SRAM 2KB
EEPROM 1KB
클록 주파수 16 MHz
⚠️ 전압 주의: I/O 핀은 5V 기준 동작입니다. 3.3V 센서·모듈 연결 시 레벨 시프터를 사용하고, 핀당 최대 40mA를 초과하지 않도록 주의하세요.

3. 핀맵 전체 보기

아두이노 우노 R3의 핀 구성을 정리했습니다. 핀 종류별로 색상 배지로 구분했습니다.

종류 주요 기능
IOREF, RESET, 3.3V, 5V, GND, VIN 전원 전원 공급 및 기준 전압
A0 ~ A3 아날로그 10비트 아날로그 입력
A4 아날로그 I²C SDA 아날로그 입력 + I2C 데이터
A5 아날로그 I²C SCL 아날로그 입력 + I2C 클록
D0 (RX) 디지털 UART RX 시리얼 수신
D1 (TX) 디지털 UART TX 시리얼 송신
D2 디지털 외부 인터럽트 INT0
D3 디지털 PWM~ PWM 출력 + 외부 인터럽트 INT1
D4, D7, D8 디지털 범용 디지털 I/O
D5, D6 디지털 PWM~ PWM 출력 (약 980Hz)
D9 디지털 PWM~ PWM 출력 (약 490Hz)
D10 디지털 PWM~ SPI SS PWM + SPI Slave Select
D11 디지털 PWM~ SPI MOSI PWM + SPI MOSI
D12 디지털 SPI MISO SPI MISO
D13 디지털 SPI SCK SPI SCK + 내장 LED (LED_BUILTIN)
📌 핀 번호 옆 ~(물결 표시)가 붙으면 PWM 출력 가능. PWM 핀은 D3, D5, D6, D9, D10, D11 총 6개입니다.

4. 전원 핀 설명

전원 관련 핀은 보드 왼쪽 상단 헤더에 모여 있습니다.

설명
IOREF I/O 핀의 동작 전압 기준(우노: 5V). 쉴드가 보드 전압을 자동 감지하는 데 사용합니다.
RESET LOW 신호를 가하면 마이크로컨트롤러를 리셋합니다.
3.3V 3.3V 출력 핀. 최대 50mA 공급 가능. 3.3V 동작 센서·모듈의 전원으로 사용합니다.
5V 5V 출력 핀. USB 또는 DC 잭에서 조정된 전압이 출력됩니다.
GND 그라운드(0V). 보드에 GND 핀이 3곳 있습니다.
VIN 외부 전원 입력 핀. 7~12V를 인가하면 내부 레귤레이터를 통해 보드 전체에 전원이 공급됩니다.
⚠️ 5V 핀은 출력 전용입니다. 외부 전원을 5V 핀에 직접 연결하면 레귤레이터를 우회해 보드가 손상될 수 있습니다. 외부 전원은 VIN 핀 또는 DC 잭을 사용하세요.

5. 디지털 핀 설명 (D0 ~ D13)

총 14개의 디지털 I/O 핀(D0~D13). pinMode()로 모드 설정, digitalWrite()/digitalRead()로 제어합니다.

부가 기능 설명
D0 (RX) UART RX 시리얼 수신. USB 업로드·시리얼 모니터 사용 중 다른 장치 연결 시 충돌 주의.
D1 (TX) UART TX 시리얼 송신. 위와 동일하게 충돌 주의.
D2 외부 인터럽트 0 외부 인터럽트(INT0) 지원. 버튼, 엔코더 등 즉각 반응이 필요한 입력에 활용.
D3 PWM~ 외부 인터럽트 1 PWM 출력 + 외부 인터럽트(INT1) 동시 지원.
D4 범용 디지털 I/O.
D5 PWM~ PWM 출력 (약 980Hz).
D6 PWM~ PWM 출력 (약 980Hz).
D7 범용 디지털 I/O.
D8 범용 디지털 I/O.
D9 PWM~ PWM 출력 (약 490Hz).
D10 PWM~ SPI SS PWM + SPI Slave Select.
D11 PWM~ SPI MOSI PWM + SPI MOSI.
D12 SPI MISO SPI MISO.
D13 SPI SCK SPI SCK + 내장 LED(LED_BUILTIN).

6. PWM 핀 설명

PWM(Pulse Width Modulation)은 디지털 신호로 아날로그 출력처럼 동작하게 하는 기술입니다. analogWrite(핀, 0~255)로 출력 전압을 0~5V 범위로 조절합니다.

PWM 핀: D3, D5, D6, D9, D10, D11 총 6개. D5·D6은 약 980Hz, 나머지는 약 490Hz로 동작합니다.

// PWM으로 LED 밝기를 서서히 변화시키는 예제 (Fade)
void setup() {
  pinMode(9, OUTPUT);  // D9: PWM 핀
}

void loop() {
  for (int i = 0; i <= 255; i++) {
    analogWrite(9, i);   // 0 → 255: 서서히 밝아짐
    delay(8);
  }
  for (int i = 255; i >= 0; i--) {
    analogWrite(9, i);   // 255 → 0: 서서히 어두워짐
    delay(8);
  }
}
💡 PWM은 LED 밝기 조절, 서보모터 각도 제어, DC 모터 속도 조절에 활용합니다. 서보모터는 Servo 라이브러리와 함께 사용하면 편리합니다.

7. 아날로그 핀 설명 (A0 ~ A5)

총 6개의 아날로그 입력 핀(A0~A5). 내장 10비트 ADC를 통해 0~5V 신호를 0 ~ 1023의 정수값으로 변환합니다.

부가 기능 설명
A0 디지털 D14 겸용 온도 센서, 가변저항 등 연속적인 값 읽기.
A1 디지털 D15 겸용 아날로그 입력.
A2 디지털 D16 겸용 아날로그 입력.
A3 디지털 D17 겸용 아날로그 입력.
A4 I²C SDA 아날로그 입력 + I2C 데이터 라인. OLED, LCD, I2C 센서 연결에 사용.
A5 I²C SCL 아날로그 입력 + I2C 클록 라인. OLED, LCD, I2C 센서 연결에 사용.
// 가변저항 값을 읽어 시리얼 모니터에 출력
void setup() {
  Serial.begin(9600);
}

void loop() {
  int val = analogRead(A0);                  // 0 ~ 1023
  float voltage = val * (5.0 / 1023.0);     // 전압 변환
  Serial.print("값: ");    Serial.print(val);
  Serial.print("  전압: "); Serial.print(voltage);
  Serial.println("V");
  delay(200);
}

8. 통신 핀 — UART · I2C · SPI

아두이노 우노는 세 가지 시리얼 통신 프로토콜을 하드웨어로 지원합니다.

① UART (시리얼 통신)

PC 시리얼 모니터, 블루투스 모듈(HC-05), GPS 모듈 등에 사용됩니다.

기능 설명
D0 RX 데이터 수신. 상대 장치의 TX에 연결.
D1 TX 데이터 송신. 상대 장치의 RX에 연결.

② I2C (TWI)

2선식 통신(SDA + SCL). 하나의 버스에 최대 127개 장치 연결 가능. OLED, LCD, 온습도 센서, 자이로 센서 등에 활용됩니다.

기능 설명
A4 SDA 데이터 라인. Wire 라이브러리 사용.
A5 SCL 클록 라인. Wire 라이브러리 사용.

③ SPI

4선식 고속 통신. SD 카드 모듈, TFT 디스플레이, 무선 모듈(nRF24L01) 등에 사용됩니다.

기능 설명
D10 SS Slave Select. 여러 장치를 각각 다른 핀으로 선택 가능.
D11 MOSI Master → Slave 데이터 전송.
D12 MISO Slave → Master 데이터 전송.
D13 SCK 클록 신호.
💡 I2C 장치 주소 충돌 발생 시 I2C Scanner 스케치로 연결된 장치의 주소를 먼저 확인하세요. 대부분의 I2C 모듈은 점퍼로 주소 변경이 가능합니다.

9. 기초 코드 예제

① LED 깜빡이기 (Blink)

// D13 내장 LED를 1초 간격으로 깜빡이는 기본 예제
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // LED 켜기
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);   // LED 끄기
  delay(1000);
}

② 버튼으로 LED 제어 (내부 풀업 저항)

const int btnPin = 2;   // D2: 버튼 핀
const int ledPin = 13;  // D13: LED 핀

void setup() {
  pinMode(btnPin, INPUT_PULLUP);  // 내부 풀업 저항 활성화
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (digitalRead(btnPin) == LOW) {  // 버튼 누름(LOW)
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

③ 아날로그 입력 → 시리얼 출력

void setup() {
  Serial.begin(9600);
}

void loop() {
  int val = analogRead(A0);
  float voltage = val * (5.0 / 1023.0);
  Serial.print("ADC: ");    Serial.print(val);
  Serial.print("  전압: "); Serial.print(voltage, 2);
  Serial.println("V");
  delay(500);
}

10. 자주 묻는 질문 (FAQ)

Q. 5V 센서와 3.3V 센서를 함께 사용할 수 있나요?

가능하지만 레벨 시프터(Level Shifter)가 필요합니다. 3.3V 기준 센서 출력을 5V 핀에 직접 연결하면 센서가 손상될 수 있습니다.

Q. D0, D1 핀을 일반 I/O로 사용해도 되나요?

기술적으로는 가능하지만 권장하지 않습니다. USB 시리얼 통신과 공유되어 스케치 업로드 중·시리얼 모니터 사용 중에 충돌이 발생할 수 있습니다.

Q. analogRead()의 해상도는 얼마인가요?

10비트 ADC로 0~1023 값을 반환합니다. 기준 전압 5V 기준 분해능은 약 4.9mV(5V ÷ 1024)입니다.

Q. 한 번에 몇 개의 LED를 켤 수 있나요?

핀 하나당 최대 40mA, 보드 전체 최대 약 200mA입니다. 220Ω 저항 기준 LED 1개당 약 14mA이므로 직접 구동 시 최대 약 14개 수준입니다. 더 많이 필요하면 시프트 레지스터(74HC595)나 트랜지스터를 활용하세요.

Q. PWM이 진짜 아날로그 출력인가요?

아닙니다. 디지털 펄스의 폭(듀티 사이클)을 조절해 아날로그처럼 동작시키는 방식입니다. 진짜 아날로그 전압이 필요하다면 DAC 모듈(MCP4725)을 I2C로 연결해 사용하세요.


사업자 정보 표시
로보다인시스템 | 박정길 | 전북 전주시 덕진구 과학로 20, 502호 | 사업자 등록번호 : 859-88-00910 | TEL : 010-2794-9626 | 통신판매신고번호 : 제 2018-전주덕진-0229호 | 사이버몰의 이용약관 바로가기
eduino