Sơ đồ kết nối

Sơ đồ chân ESP32

Pinout ESP32, chân ADC-only, chân boot cần tránh, kênh PWM/LEDC.

Sơ đồ chân ESP32

Thông số board

  • Board phổ biến: ESP32-WROOM-32
  • Điện áp logic: 3.3V — hầu hết GPIO KHÔNG chịu được 5V, cần chia áp/level shifter khi nối cảm biến 5V
  • Cấp nguồn: 5V qua cổng USB (qua bộ ổn áp onboard xuống 3.3V)

Chân chỉ nhận tín hiệu vào (input-only)

  • GPIO34, 35, 36 (VP), 39 (VN): không dùng được digitalWrite/output, chỉ đọc (digital hoặc ADC)

ADC

  • ADC1 (GPIO32–39): dùng bình thường kể cả khi WiFi đang bật
  • ADC2 (GPIO0, 2, 4, 12–15, 25–27): xung đột với WiFi — tránh analogRead trên các chân này khi WiFi đang hoạt động

Chân cần tránh dùng làm I/O thường ở thời điểm khởi động (boot-strapping pins)

  • GPIO0: phải ở mức HIGH để boot bình thường (LOW = vào chế độ nạp flash)
  • GPIO2: phải ở mức LOW hoặc thả nổi lúc boot, nhiều board nối sẵn với LED onboard
  • GPIO12 (MTDI): phải ở mức LOW lúc boot, nếu không có thể gây lỗi điện áp flash
  • GPIO15: cần ở mức gần HIGH lúc boot để log console hoạt động bình thường

PWM (LEDC — không dùng analogWrite như Arduino)

  • API cũ (Arduino-ESP32 core ≤2.x): ledcSetup(channel, freq, resolution) + ledcAttachPin(pin, channel) + ledcWrite(channel, duty)
  • API mới (core 3.x): ledcAttach(pin, freq, resolution) + ledcWrite(pin, duty)
  • Có 16 kênh LEDC độc lập

Giao tiếp mặc định

  • I2C: SDA = GPIO21, SCL = GPIO22 (có thể remap bằng phần mềm)
  • UART0 (USB/Serial): GPIO1 (TX0)/GPIO3 (RX0) — tránh dùng khi đang nạp code/debug qua Serial