ESP32

Pin ESP32 yang Aman Dipakai: Strapping Pin, Input-Only, dan ADC2

Board ESP32 Smart Relay di dalam box

Tidak semua pin ESP32 bebas dipakai. Pin GPIO6–11 tersambung ke flash dan tidak boleh dipakai, GPIO34–39 hanya bisa input, beberapa pin (GPIO0, 2, 5, 12, 15) memengaruhi proses boot, dan ADC2 tidak bisa dipakai saat WiFi aktif. Untuk output seperti relay, pin yang paling aman antara lain GPIO4, 13, 16–19, 21–23, 25–27, 32, dan 33.

Pin yang tidak boleh dipakai: GPIO6–11

Pada modul ESP32-WROOM, GPIO6 sampai GPIO11 terhubung ke chip flash di dalam modul. Memakainya akan membuat ESP32 crash atau tidak bisa boot. Anggap pin ini tidak ada.

Strapping pin: hati-hati saat boot

Saat dinyalakan atau di-reset, ESP32 membaca kondisi beberapa pin untuk menentukan cara boot:

PinPengaruh saat bootCatatan
GPIO0LOW = masuk mode uploadBiasanya untuk tombol BOOT
GPIO2Harus LOW/mengambang saat masuk mode uploadSering tersambung LED di DevKit
GPIO12 (MTDI)HIGH = tegangan flash 1,8 VDitarik HIGH saat boot bisa membuat modul 3,3V gagal boot
GPIO15 (MTDO)Mengatur pesan log saat bootRelatif aman, tapi hindari beban berat
GPIO5Timing interface SDIOUmumnya aman untuk output

Masalah yang sering terjadi: relay, sensor, atau pull-up eksternal di GPIO12 membuat ESP32 tidak mau boot, atau relay di GPIO0/GPIO2 ikut berkedip saat boot.

Pin input saja: GPIO34–39

GPIO34, 35, 36 (VP), dan 39 (VN) hanya bisa dipakai sebagai input dan tidak punya pull-up atau pull-down internal. Cocok untuk membaca sensor analog atau tombol dengan resistor eksternal.

ADC2 dan WiFi

ESP32 punya dua ADC. ADC2 (GPIO0, 2, 4, 12–15, 25–27) tidak bisa dipakai membaca analog saat WiFi aktif. Untuk proyek IoT, gunakan pin ADC1 (GPIO32–39) untuk sensor analog.

Pin yang juga punya fungsi khusus

  • GPIO1 (TX0) dan GPIO3 (RX0) dipakai untuk upload dan Serial Monitor. Hindari kecuali benar-benar perlu.
  • GPIO21 (SDA) dan GPIO22 (SCL) adalah pin I2C default di Arduino-ESP32, walaupun I2C bisa dipindah ke pin lain.
  • Beberapa pin mengeluarkan sinyal PWM atau berubah kondisi sesaat saat boot. Untuk beban seperti relay, pilih pin yang diam saat boot dan tambahkan pull-down di sisi driver.

Rekomendasi praktis

KebutuhanPin yang disarankan
Output relay / LEDGPIO4, 13, 16–19, 21–23, 25–27, 32, 33
Input analog (dengan WiFi)GPIO32–39
Tombol (pull-up internal)GPIO4, 13, 16–19, 25–27, 32, 33
I2CGPIO21 (SDA), GPIO22 (SCL)

Cek ulang dengan pinout board yang kamu pakai, karena beberapa DevKit memakai pin tertentu untuk LED atau fungsi lain.

Kesimpulan

Hindari pin flash, hati-hati dengan strapping pin, pakai GPIO34–39 hanya untuk input, dan gunakan ADC1 saat WiFi aktif. Dengan pemilihan pin yang benar, banyak masalah "ESP32 tidak mau boot" atau "relay berkedip sendiri" bisa dicegah. Pemilihan pin ini dibahas tuntas di Bootcamp SALTECH.

Pertanyaan yang sering muncul

Kenapa relay saya menyala sebentar saat ESP32 dinyalakan?

Kemungkinan relay tersambung ke pin yang berubah kondisi saat boot. Pindahkan ke pin yang lebih aman dan tambahkan resistor pull-down di sisi driver.

Apakah semua board ESP32 punya pinout yang sama?

Tidak. Pinout di artikel ini untuk ESP32 klasik (WROOM-32). ESP32-S2, S3, dan C3 punya pinout dan aturan strapping berbeda.

Tanya via WhatsApp