ArduinoMshop

Tham khảo sơ đồ chân ESP32 — Nên dùng GPIO nào?

Thứ Năm, 12/03/2026
Admin
ESP32 Pinout ESP-WROOM-32

Sơ đồ chân ESP-WROOM-32

Chip ESP32 có tới 48 chân với nhiều chức năng khác nhau. Không phải tất cả chân đều được đưa ra trên mọi board phát triển, và một số chân không thể dùng tùy ý. Bài viết này là tài liệu tham khảo nhanh giúp bạn biết nên dùng GPIO nàonên tránh GPIO nào trong dự án.

1. Các ngoại vi tích hợp

  • 18 kênh ADC (Analog-to-Digital Converter) 12-bit
  • 3 giao tiếp SPI
  • 3 giao tiếp UART
  • 2 giao tiếp I2C
  • 16 kênh PWM output
  • 2 kênh DAC (Digital-to-Analog Converter)
  • 2 giao tiếp I2S
  • 10 GPIO cảm ứng điện dung (Capacitive Touch)

2. Chân chỉ đọc (Input Only)

⚠️ GPIO 34, 35, 36, 39 — Chỉ dùng được làm INPUT. Không có điện trở pull-up/pull-down nội bộ. Không dùng làm output được.

3. Chân SPI Flash tích hợp — Không dùng!

❌ GPIO 6, 7, 8, 9, 10, 11 — Kết nối với SPI flash tích hợp trên ESP-WROOM-32. Tuyệt đối không dùng cho mục đích khác.

4. GPIO Cảm ứng điện dung (Capacitive Touch)

ESP32 có 10 cảm biến cảm ứng điện dung tích hợp, có thể phát hiện thay đổi điện tích khi chạm tay vào. Có thể dùng để thay thế nút nhấn cơ học hoặc đánh thức ESP32 từ deep sleep.

Tên GPIO
T0 GPIO 4
T1 GPIO 0
T2 GPIO 2
T3 GPIO 15
T4 GPIO 13
T5 GPIO 12
T6 GPIO 14
T7 GPIO 27
T8 GPIO 33
T9 GPIO 32

5. ADC — Chuyển đổi Analog sang Digital

ESP32 có 18 kênh ADC 12-bit (so với ESP8266 chỉ có 1 kênh 10-bit). Lưu ý quan trọng: ADC2 không dùng được khi WiFi đang hoạt động — hãy ưu tiên dùng ADC1 (GPIO 32–39).

ADC1 (dùng được khi WiFi on)
Kênh GPIO
ADC1_CH0 GPIO 36
ADC1_CH3 GPIO 39
ADC1_CH4 GPIO 32
ADC1_CH5 GPIO 33
ADC1_CH6 GPIO 34
ADC1_CH7 GPIO 35
ADC2 (không dùng được khi WiFi on)
Kênh GPIO
ADC2_CH0 GPIO 4
ADC2_CH3 GPIO 15
ADC2_CH4 GPIO 13
ADC2_CH5 GPIO 12
ADC2_CH8 GPIO 25
ADC2_CH9 GPIO 26

6. DAC — Chuyển đổi Digital sang Analog

ESP32 có 2 kênh DAC 8-bit để xuất tín hiệu điện áp analog:

Kênh GPIO
DAC1 GPIO 25
DAC2 GPIO 26

7. Giao tiếp I2C, SPI, UART

I2C (mặc định)
SDA GPIO 21
SCL GPIO 22
SPI (mặc định)
MOSI GPIO 23
MISO GPIO 19
CLK GPIO 18
CS GPIO 5
UART0 (Serial Monitor)
TX GPIO 1
RX GPIO 3

8. PWM

ESP32 có 16 kênh PWM độc lập. Tất cả GPIO có thể làm output đều dùng được làm PWM (trừ GPIO 34–39 là input only). Cần cấu hình: tần số, duty cycle, kênh PWM, và GPIO xuất tín hiệu.

9. Chân Strapping — Cẩn thận khi boot

Các chân này ảnh hưởng đến quá trình boot của ESP32. Cẩn thận khi kết nối thiết bị ngoại vi vào các chân này.
GPIO Yêu cầu khi boot
GPIO 0 LOW → vào chế độ bootloader
GPIO 2 Floating hoặc LOW
GPIO 5 HIGH khi boot
GPIO 12 LOW khi boot
GPIO 15 HIGH khi boot

10. Chân lên HIGH khi khởi động

Một số GPIO xuất HIGH hoặc tín hiệu PWM khi ESP32 reset/boot. Nếu nối thiết bị vào các chân này, bạn có thể nhận kết quả bất ngờ: GPIO 1, 3, 5, 6–11, 14, 15.

11. Dòng điện tối đa mỗi GPIO

Theo datasheet ESP32, dòng điện tối đa tuyệt đối trên mỗi GPIO là 40mA. Luôn dùng điện trở hạn dòng khi kết nối LED hoặc thiết bị khác.

12. Tóm tắt — GPIO nên dùng và nên tránh

✅ GPIO an toàn để dùng

GPIO 4, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33

❌ GPIO cần tránh / thận trọng

GPIO 6–11 (SPI flash), GPIO 34–39 (input only), GPIO 0/2/5/12/15 (strapping)

Viết bình luận của bạn

Tin liên quan

Hướng dẫn điều khiển Servo Motor với ESP32 qua Web Server (Arduino IDE)

Bài hướng dẫn này giúp bạn xây dựng một web server bằng ESP32 để điều khiển góc quay của động cơ servo thông qua thanh trượt...

Hướng dẫn dùng cảm biến PIR với ESP32 (Interrupt & Timer millis())

Bài này hướng dẫn cách dùng cảm biến PIR với ESP32 để phát hiện chuyển động bằng Interrupt (ngắt) và Timer (bộ đếm thời gian millis())....

Hướng dẫn cài đặt VS Code và PlatformIO IDE để lập trình ESP32/ESP8266

Bài viết này hướng dẫn cài đặt và sử dụng VS Code + PlatformIO IDE để lập trình ESP32 và ESP8266 — một môi trường lập...

Hướng dẫn cài đặt ESP32 vào Arduino IDE (Windows, Linux, macOS)

Bài viết này hướng dẫn chi tiết cách cài đặt board ESP32 vào Arduino IDE để bắt đầu lập trình ESP32. Đây là bước đầu tiên bắt buộc trước khi...

Hướng dẫn dùng cảm biến DHT11/DHT22 với ESP32 (Nhiệt độ & Độ ẩm)

Trong bài này, bạn sẽ học cách kết nối cảm biến DHT11 hoặc DHT22 với ESP32 để đọc nhiệt độ và độ ẩm bằng Arduino IDE....

Danh sách so sánh
Messenger