Tham khảo sơ đồ chân ESP32 — Nên dùng GPIO nào?
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ào và nê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)
3. Chân SPI Flash tích hợp — Không dùng!
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).
| 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 |
| 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
| SDA | GPIO 21 |
| SCL | GPIO 22 |
| MOSI | GPIO 23 |
| MISO | GPIO 19 |
| CLK | GPIO 18 |
| CS | GPIO 5 |
| 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
| 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 4, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33
GPIO 6–11 (SPI flash), GPIO 34–39 (input only), GPIO 0/2/5/12/15 (strapping)