ESP32의 핀 배치는 가장 큰 장점 중 하나이자, 가장 흔한 혼란의 원인 중 하나입니다. 강력한 다중화, 엄격한 부트 모드 의존성, 민감한 아날로그 동작 때문에 올바른 핀 선택이 안정적인 작동을 위해 중요합니다. 이 글에서는 주요 핀 그룹을 명확히 정리하여 충돌을 피하고 부팅 실패를 방지하며 신뢰할 수 있는 ESP32 기반 하드웨어를 설계할 수 있도록 합니다.

ESP32 핀배열 이해하기
ESP32는 IoT, 자동화 및 스마트 기기에서 널리 사용되는 강력하고 유연한 마이크로컨트롤러입니다. 고급 기능은 많은 기능이 동일한 물리적 핀을 공유하는 고도로 다중화된 핀 배열 시스템에서 나옵니다. 여기에는 디지털 I/O, ADC 채널, 정전용량 터치 센서, 통신 버스, RTC 도메인 핀, SPI 플래시 및 부팅 구성을 위한 내부 연결 등이 포함됩니다. 많은 기능이 핀을 공유하기 때문에 잘못된 배선은 부팅 실패, ADC 읽기 소음, 또는 주변기기 비활성화를 초래할 수 있습니다.
ESP32 DevKit 핀 배치

ESP32 개발 보드는 일반적으로 30핀과 38핀 버전으로 출시되며, 두 버전 모두 동일한 핵심 기능을 노출하지만 사용 가능한 GPIO에는 약간의 차이가 있습니다.
ESP32 개발 보드의 2.1 핀 그룹
| 그룹 | 설명 |
|---|---|
| 파워 핀 | VIN (5 V), 3.3 V 출력, GND |
| 제어 핀 | EN (리셋), IO0 (부팅 모드) |
| GPIO 핀 | 다중화가 포함된 디지털 입출력 |
| 아날로그 핀 | ADC1 및 ADC2 채널 |
| 통신 핀 | SPI, I2C, UART, I2S |
| 입력 전용 핀 | GPIO34–GPIO39 |
| 플래시 예약 핀 | GPIO6–GPIO11 |
공통 헤더 배열
왼쪽 헤더
• EN, GPIO36–39, GPIO34–35
• GPIO32–33, 25–27
• VIN, GND, 3.3V
오른쪽 헤더
• GPIO0–23
• 부트스트랩 핀 (0, 2, 5, 12, 15)
물리적 배치를 이해하면 실수를 피하고 배선을 효율적으로 계획할 수 있습니다.
ESP32 GPIO 개요

ESP32 GPIO는 내부 I/O 매트릭스 덕분에 UART, SPI, I2C, PWM 같은 주변기기를 거의 어디서든 매핑할 수 있어 유연합니다. GPIO는 내장된 풀업/다운 저항기, 엣지 트리거 인터럽트, 고속 스위칭을 포함한 디지털 입출력을 지원합니다. 일반적인 연속 구동 전류는 12–16 mA(최대 ~20–40 mA)이므로 모터나 릴레이에는 외부 드라이버가 필요합니다.
입력 전용 핀
이 핀들은 출력을 구동할 수 없으며 센서와 아날로그 입력에 이상적입니다:
| 핀 | 유형 | 추천 사용 |
|---|---|---|
| GPIO34 | 입력만 | ADC1 / 센서 |
| GPIO35 | 입력만 | ADC1 |
| GPIO36 (VP) | 입력만 | ADC1 / 홀 센서 |
| GPIO39 (베트남) | 입력만 | ADC1 |
안전한 ESP32 핀과 피해야 할 핀

모든 ESP32 핀이 똑같이 작동하는 것은 아닙니다. 일부는 안전하지만, 다른 일부는 부팅 모드에 영향을 주거나 내부 플래시 메모리와 연결되어 있습니다.
안전 핀 (모든 사용자에게 권장)
| GPIO | 주석 |
|---|---|
| 4, 13–19, 21–27, 32, 33 | 부츠 충격 없음, 대부분의 주변기기에 이상적입니다 |
주의 핀 (부팅 모드 영향)
| GPIO | 부팅 기능 | 부팅 중에는 피하세요 |
|---|---|---|
| GPIO0 | 플래시/부팅 모드 | 정상 부팅 시 입력 HIGH를 유지하세요 |
| GPIO2 | 부트 전압 | 아마 높음에 틀림없어 |
| GPIO5 | 선택 부팅 모드 | 낮게 당기지 마세요 |
| GPIO12 | 플래시 전압 모드 | 낮게 유지해야 합니다 |
| GPIO15 | SPI 모드 | 낮게 유지해야 합니다 |
이 핀들은 정상 작동 시 안전하지만, 외부 부품이 리셋 시 잘못된 논리 수준으로 당겨서는 안 됩니다. 그들의 상세한 부트 역할은 9절에서 설명되어 있습니다.
제한 핀 (사용 금지)
| GPIO | 이유 |
|---|---|
| GPIO6–11 | SPI 플래시 메모리 |
이 장치를 사용하면 ESP32가 멈추거나 다운될 수 있습니다.
ESP32 ADC 핀

ESP32는 서로 다른 작동 동작을 가진 두 개의 SAR ADC 유닛을 통합합니다:
• ADC1 — 항상 사용 가능하며 모든 센서 입력에 권장됨
• ADC2 — Wi-Fi 서브시스템과 공유되며 Wi-Fi가 활성화되면 사용할 수 없습니다
이것이 ESP32의 주요 한계 중 하나로, 무선 응용 분야에서 ADC1이 신뢰할 수 있는 측정 선택이 되도록 만듭니다.
| ADC 유닛 | 채널 | GPIO | 주석 |
|---|---|---|---|
| ADC1 | CH0–CH7 | GPIO32–39 | 센서 선택에 가장 좋은 선택입니다 |
| ADC2 | CH0–CH9 | 0, 2, 4, 12–15, 25–27 | Wi-Fi 사용 불가 |
전압 범위 및 정확도
ADC는 기본 0–1.1 V 입력 범위를 지원하며, 감쇠 기능을 통해 약 3.3 V까지 확장할 수 있습니다. 두 ADC 유닛 모두 비선형이며 보정 기능을 활용합니다. 아날로그 성능은 내부 RF 활동에 영향을 받을 수 있으므로, 센서 라인을 안테나에서 멀리 우회시키고 간단한 RC 필터를 추가하면 안정성이 크게 향상됩니다. Wi-Fi 지원 프로젝트의 경우, 항상 ADC1에 아날로그 센서를 설치하여 연속적이고 잡음 없는 작동을 보장합니다.
ESP32 DAC, PWM, 터치 핀
ESP32는 온보드 아날로그 스타일 출력과 터치 센서를 포함해 파형 생성, 디밍, 모터 제어, 사용자 인터페이스를 단순화합니다.
DAC 개요

두 개의 8비트 DAC 채널은 진정한 아날로그 전압을 출력합니다:
| DAC | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
일반적인 용도로는 단순 오디오, 아날로그 파형, LED 페이딩, 바이어스 전압 등이 있습니다. 출력 범위는 일반적으로 0–3.3 V입니다.
PWM (LEDC)

LEDC 모듈은 고해상도, 유연한 PWM을 제공합니다:
• 16개 채널
• 최대 40 MHz 타이머 베이스
• 최대 20비트 해상도
• 완전히 재매핑 가능한 GPIO
LED 디밍, 모터 제어, 서보 신호, 오디오 톤, 일반 변조에 사용됩니다. 어떤 GPIO든 GPIO 매트릭스를 통해 PWM 출력을 호스팅할 수 있습니다.
터치 센서 핀

ESP32의 10개의 정전식 터치 패드는 손가락 근접성을 감지하며, 터치 버튼, 슬라이더, 웨이크 업 트리거에 유용합니다.
| 터치 패드 | GPIO |
|---|---|
| T0–T9 | GPIO4, 0, 2, 15, 13, 12, 14, 27, 33, 32 |
이 센서들은 노이즈 필터링을 포함하고 있어 저전력 웨이크 이벤트에 잘 작동합니다.
ESP32 통신 핀
ESP32는 유연한 GPIO 매트릭스를 통해 여러 핀으로 라우팅할 수 있는 풍부한 통신 주변기기 세트를 포함하고 있습니다. 이로 인해 I2C, SPI, UART와 같은 인터페이스를 거의 어디서나 할당할 수 있어, 매우 맞춤화 가능한 보드 레이아웃과 주변기기 조합이 가능합니다.
I2C (기본 및 맞춤 핀)

ESP32는 두 개의 I2C 컨트롤러를 포함하고 있으며, 핀 선택에 대한 완전한 유연성을 제공합니다. 대부분의 개발 보드는 기본 핀을 사용하지만, SDA와 SCL 모두 거의 모든 GPIO에 재할당할 수 있습니다.
| 신호 | 기본 GPIO | 주석 |
|---|---|---|
| SDA | GPIO21 | 완전 재배치 가능 |
| SCL | GPIO22 | 완전 재배치 가능 |
두 개의 디지털 GPIO는 SDA와 SCL로 동작할 수 있습니다. 표준 모드(100 kHz), 빠른 모드(400 kHz), 빠른 모드 플러스(보드에 따라 1 MHz) 모두를 지원합니다. 일부 보드에서는 내부 풀업을 지원하지만, 안정적인 통신을 위해서는 외부 4.7 kΩ 저항기가 권장됩니다. 이러한 유연성은 여러 센서가 필요하거나 비전통적인 핀 라우팅이 필요한 시스템에 ESP32를 이상적으로 제공합니다.
ESP32는 여러 SPI 버스를 포함하고 있으며, 사용자 기기를 위해 HSPI와 VSPI를 지원합니다. 두 보드 모두 GPIO 매트릭스를 통한 리매핑을 지원하지만, 대부분의 보드와 라이브러리는 내부 플래시 연결과의 충돌을 피하기 위해 다음과 같은 기본 VSPI 구성을 사용합니다:
기본 VSPI 매핑
• SCK → GPIO18
• MISO → GPIO19
• MOSI → GPIO23
• CS → GPIO5
VSPI는 일반적으로 디스플레이, SD 카드, 고속 주변기기에 선호됩니다. 핀은 재매핑이 가능하지만, 기본값을 사용하면 최대 호환성을 보장하고 이전 섹션에서 다룬 제한을 반복하지 않고 타이밍 문제를 줄여줍니다.
UART (시리얼)

ESP32는 세 개의 UART 컨트롤러를 포함하고 있으며, 유연한 라우팅을 통해 거의 모든 UART 핀이 거의 모든 GPIO로 이동할 수 있습니다.
| UART | TX 핀 | RX 핀 | 주요 목적 |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | 플래싱, 부팅 메시지, 직렬 로깅 |
| UART1 | GPIO10 | GPIO9 | 사용자 애플리케이션용 |
| UART2 | GPIO17 | GPIO16 | 사용자 애플리케이션용 |
ESP32 딥슬립 및 RTC 핀
ESP32는 초저전력 (Ultra-Low-Power, ULP) 서브시스템과 전용 실시간 클럭(RTC) 도메인을 포함하며, 메인 CPU와 주변기기가 꺼져도 전원이 계속 공급됩니다. 이 아키텍처는 종종 마이크로암페어 범위에 가까운 매우 낮은 전력 소비를 가능하게 하여 ESP32를 장기 배터리 작동 용도에 적합합니다.
딥슬립은 칩이 메인 코어, 대부분의 내부 시계, Wi-Fi/블루투스 라디오를 종료하면서도 RTC 주변기기를 통해 선택된 핀과 센서를 모니터링할 수 있게 해줍니다.

ESP32는 여러 독립적인 트리거를 통해 깊은 절면에서 깨어날 수 있습니다. 각 웨이크 소스는 최소한의 전력 소비로 활성 상태를 유지하도록 설계된 RTC 도메인 내에서 작동합니다.
| 웨이크 타입 | GPIO / 노트 | ||
|---|---|---|---|
| 외부 RTC GPIO | GPIO32, GPIO33, GPIO25, GPIO26, GPIO27 — 엣지 또는 레벨 웨이크업 지원 | ||
| 정전식 터치 패드 | T0–T9 — 깊은 수면 중 손가락 근접 또는 접촉 감지 | ||
| 타이머 기상 | RTC 타이머는 프로그래밍된 간격 | ||
| ULP 코프로세서 | (선택 사항) 커스텀 저전력 코드가 메인 CPU를 깨우기 전에 센서를 점검할 수 있습니다. | ||
| 이 핀들은 RTC 도메인에 속하며 CPU와 일반 GPIO가 꺼져도 계속 활성화됩니다. 상승/하강 가장자리나 간단한 레벨 감지를 통한 기상 감지를 지원합니다. 웨이크 온 모션, 자기 스위치, 저전력 트리거에 일반적으로 사용됩니다. | |||
![]() | |||
| ESP32는 리셋 또는 전원 켤 때 주요 시스템 구성을 결정하는 여러 스트래핑 핀을 사용합니다. 이 핀들은 부팅 시에만 샘플링된 후 정상 GPIO 기능으로 돌아갑니다. 리셋 중에 이들이 무효 수준으로 구동되지 않도록 하는 것은 일관된 시작 동작에 유용합니다. | |||
| 스트래핑 핀 테이블 | |||
| 핀 | 부트 역할 | 부츠 시 필수 주 | |
| GPIO0 | 부트로더 / 플래시 모드 선택 | LOW = 플래시 모드 진입; HIGH = 정상 시작 | |
| GPIO2 | 내부 부팅 전압 레벨 | 반드시 HIGH를 유지해야 합니다 | |
| GPIO5 | SPI 부트 구성 | 반드시 HIGH를 유지해야 합니다 | |
| GPIO12 | 플래시 전압 선택 (3.3 V / 1.8 V) | 3.3 V 플래시 동안 저전압 상태로 유지해야 합니다 | |
| GPIO15 | 부팅 | 부트 중 SPI 통신 모드를 설정합니다 | 낮게 유지해야 함 |
이 섹션은 스트래핑 행동에 대한 권위 있는 참고 자료를 제공합니다. 앞부분은 실질적인 효과만 요약한다; 커스텀 PCB에 핀을 할당하거나 버튼과 센서를 통합할 때 이 표를 사용하세요.
EN 핀 (활성화 / 재설정)
EN(Enable) 핀은 ESP32의 마스터 리셋 입력 역할을 합니다.
EN 핀 동작:
• EN LOW를 뽑으면 칩이 즉시 초기화됩니다.
• 다시 HIGH로 해제하면 내부 회로가 전원을 공급받고 부팅 시퀀스가 재시작됩니다.
• 개발 보드(예: ESP32-DevKitC, NodeMCU-ESP32)에서는 EN이 USB-직렬 인터페이스에 연결되어 플래싱 시 자동 리셋이 가능합니다.
ESP32 전원 핀

ESP32는 Wi-Fi와 블루투스 라디오가 짧고 고진폭의 전류 펄스를 끌어들이기 때문에 전력 품질에 민감합니다. 안정적인 전원 공급은 안정적인 부팅, 감전 리셋 감소, 일관된 무선 성능을 보장합니다.
파워 핀 요약
| 핀 | 전압 | 사용 |
|---|---|---|
| VIN | 5 V 입력 | 온보드 조절기(일반적으로 AMS1117 또는 ME6211)에 전력을 공급하여 3.3V |
| 3대3 | 3.3 V 출력 | 온보드 LDO에서 조절된 출력; 외부 저전류 로직 및 센서에 전력을 공급하는 데 사용됩니다. |
| GND | — | 모든 서브시스템의 전기 참조 및 반환 경로 |
추천 ESP32 핀 및 배선 예시
ESP32의 올바른 핀 선택은 안정적인 작동, 깨끗한 신호 배선 유지, 부트스트래핑 또는 내부 플래시 연결과의 충돌 방지를 위해 필요합니다. 다음 추천 사항들은 일반적인 기능에 가장 신뢰할 수 있고 충돌이 없는 핀을 강조합니다.
핀 선택
| 기능 | 최고의 핀 | 주석 |
|---|---|---|
| I2C | 21 (SDA), 22 (SCL) | 기본 하드웨어 테스트 쌍; 대부분의 보드에서 작동합니다. |
| SPI | 18 (SCK), 19 (MISO), 23 (MOSI), 5 (CS) | 이 핀들은 VSPI에 깔끔하게 매핑되어 플래시 연결 핀을 피합니다. |
| UART | 16 (처방), 17 (TX) | 전용 UART2 핀, 부팅과 디버깅 모두 안전합니다. |
| PWM (LEDC) | 4, 16–19, 21–27, 32–33 | 높은 유연성 범위; PWM은 거의 모든 GPIO로 라우팅할 수 있습니다. |
| 원딜 | 32–39 (ADC1) | ADC1 채널은 Wi-Fi가 활성화되어 있어도 계속 사용할 수 있습니다. |
결론
ESP32 핀 배열을 마스터하면 추측이 없어지고, 잡음이 많은 ADC 신호부터 끝없는 부팅 루프까지 실제 빌드에서 발생하는 많은 문제들을 예방할 수 있습니다. 안전 핀, 스트랩 동작, 전원 무결성, 딥슬립 라우팅을 이해함으로써 안정적이고 예측 가능하며 무선 준비가 된 회로를 설계할 수 있습니다. 위의 핀 맵과 가이드라인을 문제 없는 ESP32 프로젝트의 기초로 활용하세요.
자주 묻는 질문 [자주 묻는 질문]
Freenove ESP32-S3 브레이크아웃 보드용 PlatformIO 설정은 어떻게 하나요?
표준 ESP32-S3 개발 모듈 설정을 사용하세요. platformio.ini에 다음을 추가하세요:
[환경:ESP32S3]
Platform = espressif32
보드 = ESP32-S3-DevKitc-1
Framework = Arduino
이 핀 배치는 Freenove와 일치하여 USB를 통한 정상적인 컴파일 및 업로드를 가능하게 합니다.
ESP32가 동시에 몇 개의 주변기기를 실행할 수 있나요?
GPIO 매트릭스 덕분에 ESP32는 제한된 핀을 피하고 CPU 및 타이밍 제한 내에서 여러 I²C, SPI, UART, PWM, ADC 기능을 동시에 실행할 수 있습니다. 주요 병목 현상은 Wi-Fi 및 전원 공급 품질 중 ADC2이지, 핀 수(pin count)가 아닙니다.
왜 내 ESP32가 센서나 모듈을 연결할 때 재부팅되나요?
예상치 못한 리셋은 보통 Wi-Fi 버스트, 모터, 또는 조절이 부실한 전원 공급 장치로 인한 전압 하락에서 발생합니다. 1A 이상의 5V 소스를 사용하고, 10–100 μF의 벌크 커패시터를 추가하고, 잡음이 많은 부하를 격리하면 브라운아웃을 방지합니다.
ESP32의 3.3V 핀을 외부 모듈에 전원을 공급할 수 있나요?
네, 하지만 저전류 장치(보통 300–500 mA 이하, 내장 LDO에 따라 다름)에 한해서만 해당됩니다. 모터, 서보, 대형 LED 스트립과 같은 고전력 주변기기는 리셋과 과열을 방지하기 위해 별도의 전원 공급 장치를 사용해야 합니다.
여러 주변기기를 사용할 때 가장 좋은 ESP32 핀을 어떻게 선택하나요?
스트래핑이 아닌 핀을 우선시하고, GPIO6–11은 피하며, 아날로그 센서를 ADC1에 배치하고, 가능하면 기본 VSPI/I²C/UART 핀을 사용하세요. 이로 인해 충돌이 줄어들고 모든 주변기기가 재매핑 문제 없이 함께 작동할 수 있습니다.
