Referensi Pinout ESP32: Pin GPIO mana yang harus Anda gunakan?

Chip ESP32 dilengkapi dengan 48 pin dengan banyak fungsi. Tidak semua pin terpapar di semua papan pengembangan ESP32, dan ada beberapa pin yang tidak dapat digunakan. Ada banyak pertanyaan tentang cara menggunakan ESP32 GPIO. Pin apa yang harus Anda gunakan? Pin apa yang harus Anda hindari digunakan dalam proyek Anda? Posting ini bertujuan untuk menjadi panduan referensi sederhana dan mudah untuk mengikuti ESP32 GPIO.

Catatan : Tidak semua GPIO dapat diakses di semua papan pengembangan, tetapi masing-masing GPIO tertentu bekerja dengan cara yang sama terlepas dari papan pengembangan yang Anda gunakan.

Jika Anda baru saja mulai dengan ESP32, sebaiknya baca panduan kami: Memulai dengan ESP32 Development Board .

ESP32 Peripheral

Periferal ESP32 antara lain:

  • 18 saluran Analog-ke-Digital (ADC)
  • 3 antarmuka SPI
  • 3 antarmuka UART
  • 2 antarmuka I2C
  • 16 Saluran keluaran PWM
  • 2 Digital-ke-Analog Converters (DAC)
  • 2 I2S interfaces
  • 10 Capacitive sensing GPIOs

Fitur ADC (analog to digital converter) dan DAC (digital to analog converter) ditugaskan ke pin statis tertentu. Namun, Anda dapat memutuskan pin mana yang UART, I2C, SPI, PWM, dll – Anda hanya perlu menetapkannya dalam kode. Hal ini dimungkinkan karena fitur multipleksing chip ESP32.

Meskipun Anda dapat menentukan properti pin pada perangkat lunak, ada pin yang ditetapkan secara default seperti yang ditunjukkan pada gambar berikut (ini adalah contoh untuk ESP32 DEVKIT V1 Papan DOIT dengan 36 pin – lokasi pin dapat berubah tergantung pada pabrikan.

Selain itu, ada pin dengan fitur khusus yang membuatnya cocok atau tidak untuk sebuah proyek khusus. Lanjutkan membaca untuk mempelajari lebih lanjut tentang GPIO ESP32.

Gambar di bawah ini menggambarkan pinout ESP-WROOM-32. Anda dapat menggunakannya sebagai referensi jika Anda menggunakan chip kosong untuk membangun papan khusus:

 ESP32 Chip pinout ESP-WROOM-32

Input hanya pin

GPIO 34 untuk 39 adalah GPI – hanya memasukkan pin. Pin-pin ini tidak memiliki pull-up internal atau resistor pull-down. Mereka tidak dapat digunakan sebagai output, jadi gunakan pin ini hanya sebagai input:

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 37
  • GPIO 38
  • GPIO 39

SPI flash terintegrasi pada ESP-WROOM-32

GPIO 6 ke GPIO 11 terpapar di beberapa papan pengembangan ESP32. Namun, pin ini terhubung ke SPI flash yang terintegrasi pada chip ESP-WROOM-32 dan tidak direkomendasikan untuk penggunaan lain. Jadi, jangan gunakan pin ini dalam proyek Anda:

  • 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 internal. Ini bisa merasakan variasi dalam apa pun yang memegang muatan listrik, seperti kulit manusia. Sehingga mereka dapat mendeteksi variasi yang diinduksi saat menyentuh GPIO dengan jari. Pin ini dapat dengan mudah diintegrasikan ke dalam bantalan kapasitif, dan mengganti tombol mekanis. Pin sentuh kapasitif juga dapat digunakan untuk membangunkan ESP32 dari tidur nyenyak.

Sensor sentuh internal tersebut terhubung ke GPIO ini:

  • 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 x 12 bit saluran masukan ADC (sementara ESP8266 hanya memiliki 1x 10 bit ADC). Ini adalah GPIO yang dapat digunakan sebagai ADC dan saluran masing-masing:

  • 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)

Saluran input ADC memiliki resolusi 12 bit. Ini berarti Anda bisa mendapatkan pembacaan analog mulai dari 0 hingga 4095, di mana 0 sesuai dengan 0V dan 4095 hingga 3.3V. Anda juga memiliki kemampuan untuk mengatur resolusi saluran Anda pada kode, serta rentang ADC.

Pin ADC ESP32 tidak memiliki perilaku linear. Anda mungkin tidak akan dapat membedakan antara 0 dan 0,1 V, atau antara 3,2 dan 3,3 V. Anda perlu mengingatnya saat menggunakan pin ADC. Anda akan mendapatkan perilaku yang mirip dengan yang ditampilkan pada gambar berikut.

Lihat sumber

Digital to Analog Converter (DAC)

Ada 2 x 8 bit saluran DAC pada ESP32 untuk mengubah sinyal digital menjadi output sinyal tegangan analog. Ini adalah saluran DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO

Ada dukungan RTC GPIO pada ESP32. GPIO yang diarahkan ke subsistem daya rendah RTC dapat digunakan ketika ESP32 berada dalam tidur nyenyak. GPIO RTC ini dapat digunakan untuk membangunkan ESP32 dari tidur nyenyak ketika co-processor Ultra Low Power (ULP) sedang berjalan. GPIO berikut dapat digunakan sebagai sumber bangun eksternal.

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25) [19659007] 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

Kontroler PWM LED ESP32 memiliki 16 saluran independen yang dapat dikonfigurasi untuk menghasilkan sinyal PWM dengan sifat berbeda. Semua pin yang dapat berfungsi sebagai output dapat digunakan sebagai pin PWM (GPIO 34 hingga 39 tidak dapat menghasilkan PWM).

Untuk mengatur sinyal PWM, Anda perlu menentukan parameter ini dalam kode:

  • Frekuensi sinyal;
  • Siklus tugas;
  • Saluran PWM;
  • GPIO di mana Anda ingin mengeluarkan sinyal.

I2C

Ketika menggunakan ESP32 dengan Arduino IDE, Anda harus menggunakan pin standar ESP32 I2C (didukung oleh perpustakaan Wire):

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

SPI

Secara default, pemetaan pin untuk SPI adalah:

SPI MOSI MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Gangguan

Semua GPIO dapat dikonfigurasi sebagai interupsi.

Aktifkan (EN)

Aktifkan (EN) adalah pin enable regulator 3.3V. Itu ditarik ke atas, jadi sambungkan ke tanah untuk menonaktifkan pengatur 3.3V. Ini berarti Anda dapat menggunakan pin ini yang terhubung ke tombol tekan untuk memulai kembali ESP32 Anda, misalnya.

GPIO yang ditarik

Arus maksimum absolut yang ditarik per GPIO adalah 40mA menurut bagian “Kondisi Operasi yang Disarankan” di ESP32 datasheet.

Wrapping Up

Kami harap Anda telah menemukan panduan referensi ini untuk GPIO ESP32 yang berguna. Jika Anda memiliki lebih banyak kiat tentang GPIO ESP32, silakan bagikan dengan menuliskan komentar di bawah.

Jika Anda baru saja mulai dengan ESP32, kami memiliki beberapa konten hebat untuk memulai:

Terima kasih telah membaca. [19659131]

Leave a Reply

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