ESP32 WROOM32 DEVELOPMENT BOARD DENGAN 38 PIN

Banyak tipe-tipe development board yang ada di pasaran untuk ESP32. Saat ini saya menggunakan ESP32 WROOM32 DEVELOPMENT BOARD DENGAN 38 PIN. Untuk Settingan di Arduino IDE biasanya menggunakan Board DOIT ESP32 DEVKIT V1.

Berikut keterangan pin

Diambil dari beberapa sumber di internet berikut penjelasan dari masing-masing pin.

Pin Hanya Untuk Input

GPIO 34 hingga 39 hanyalah dipergunakan sebagai input. Pin – pin tersebut tidak memiliki pull up internal atau resistor pull down. Berikut adalah pin – pin tersebut

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

SPI flash terintegrsi dengan ESP-WROOM-32

GPIO 6 hingga GPIO 11 dapat diakses oleh beberapa development board ESP32. Namun pin – pin tersebut terhubung kepada SPI Flash yang teritegrasi dengan ESP-WROOM-32 sehingga tidak direkomendasikan digunakan  untuk keperluan lain. Jadi jangan gunakan pin – pin berikut

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

Capacitive touch GPIO

ESP32 memiliki 10 sensor sentuh kapasitif yang dapat mengindera benda apapun yang menyimpan muatan listrik seperti kulit manusia. Sehingga pin – pin tersebut dapat mendeteksi variasi induksi ketika GPIO disentuh dengan jari. Pin ini dapat dengan mudah diintegrasikan dengan bantalan kapasitif dan menggantikan tombol  mekanik.

Berikut adalah sensor internal sentuh yang terhubung dengan 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)

Analog to Digital Converter (ADC)

ESP32 memiliki 18 kanal masukan ADC 12 bit, sedangkan ESP8266 hanya 1 kanal ADC 10 bit. Berikut adalah GPIO yang dapat dipergunakan sebagai ADC berikut dengan kanalnya.

  • ADC1_CH0 (GPIO 36)
  • ADC1_CH1 (GPIO 37)
  • ADC1_CH2 (GPIO 38)
  • ADC1_CH3 (GPIO 39)
  • ADC1_CH4 (GPIO 32)
  • ADC1_CH5 (GPIO 33)
  • ADC1_CH6 (GPIO 34)
  • ADC1_CH7 (GPIO 35)
  • ADC2_CH0 (GPIO 4)
  • ADC2_CH1 (GPIO 0)
  • ADC2_CH2 (GPIO 2)
  • ADC2_CH3 (GPIO 15)
  • ADC2_CH4 (GPIO 13)
  • ADC2_CH5 (GPIO 12)
  • ADC2_CH6 (GPIO 14)
  • ADC2_CH7 (GPIO 27)
  • ADC2_CH8 (GPIO 25)
  • ADC2_CH9 (GPIO 26)

Digital to Analog Converter (DAC)

Ada 2 kanal DAC 8 bit pada ESP32 yang berfungsi untuk mengubah sinyal digital ke  keluaran tegangan analog. Berikut adalah GPIO dan kanal tersebut

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

GPIO Real Time Clock

ESP32 juga dilengkapi dengan GPIO yang diarahkan ke RTC subsistem rendah daya yang dapat digunakan ketika ESP32 dalam kondisi deep sleep. GPIO RTC  ini dapat digunakan untuk membangungkan ESP32 dari kondisi deep sleep ketika co-prosesor ULP (Ultra Low Power) sedang berjalan. Berikut adalah GPIO yang dapat digunakan sebagai external wake up source

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

PWM

ESP32 memiliki 16 kanal PWM independen yang dapat dikonfigurasi untuk menghasilkan sinyal PWM dengan pengaturan yang berbeda – beda. Semua pin yang dapat menjadi keluaran dapat dipergunakan sebagai pin PWM (kecuali GPIO 34 hingga 39)

Untuk mengatur sinyal PWM, perlu ditentukan terlebih dahulu parameter – parameter berikut pada program

  • Frekuensi gelombang;
  • Duty cycle;
  • Kanal PWM;
  • GPIO  mana yang dipergunakan sebagai keluaran gelombang.

I2C (Inter-Integrated Circuit)

Jika pembaca memprogram ESP32 menggunakan Arduino IDE, ada dua pin default yang mendukung I2C dan didukung oleh pustaka Wire, yaitu

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

SPI (Serial Peripheral Interface)

SPIMOSIMISOCLKCS
VSPIGPIO 23GPIO 19GPIO 18GPIO 5
HSPIGPIO 13GPIO 12GPIO 14GPIO 15

Interrupts

Semua GPIO pada ESP32 dapat diatur sebagai Interrupt

Strapping Pins

ESP32 memiliki 6 pin strapping sebagai berikut

  • GPIO 0
  • GPIO 2
  • GPIO 4
  • GPIO 5
  • GPIO 12
  • GPIO 15

Pin – pin tersebut digunakan oleh ESP32 saat mode flashing atau bootloader. Pada sebagian besar board development yang memiliki USB/Serial built-in. kondisi state pin ini tidak perlu dikuatirkan. Karena board  yang akan mengaturnya ke kondisi yang sesuai saat mode flashing atau boot. Meskipun begitu, jika terdapat periferal yang terhubung dengan ke-6 pin tersebut. Ada kemungkinan, proses flashing akan mengalami masalah. Penyebabnya bisa jadi karena periferal yang terhubung dengan pin – pin  tersebut mencegah ESP32 masuk ke mode flashing atau boot.

Pin berada pada kondisi HIGH saat Boot

Beberapa GPIO berubah kondisi statenya menjadi HIGH atau keluaran sinyal PWM saat boot atau reset. Ini berarti, akan terdapat keluaran yang tak terduga saat pin – pin GPIO berikut berada pada kondisi reset atau boot.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 s/d GPIO 11 (terhubung dengan ESP32 yang terintegrasi dengan memori flash SPI – tidak direkomendasikan untuk digunakan).
  • GPIO 14
  • GPIO 15

Enable (EN)

Pin Enable (EN) adalah pin enable regulator 3.3V yang di-pullup dengan resistor sehingga  mengetanahkan pin tersebut  (menghubungkan ke ground), akan mendisable regulator 3.3V. Sehingga pin ini dapat dihubungkan dengan push button misalnya, guna merestart ESP32.

Leave a Comment

Your email address will not be published. Required fields are marked *