Referensi Pin GPIO ESP32

Pada artikel kali ini saya akan membahas tentang Pin GPIO ESP32 yang bisa anda jadikan referensi, Namun sebelum ketopik pembahasan, saya mengulas sedikit pengertian, spesifikasi dan fitur yang terdapat pada modul ESP32 ini.

BACA JUGA : Konfigurasi Pin GPIO ESP8266

Pengertian ESP32

ESP32 merupakan sebuah kit Modul yang terdiri dari IC mikrokontroler ESP32, EEPROM, komponen-komponen pasif, serta antena PCB. ESP32 merupakan sebuah modul SMD yang biasanya disolder pada board PCB utama atau development board. Pada gambar dibawah ini merupakan jenis ESP Wrom32

Pin GPIO ESP32

Spesifikasi

Berikut ini merupakan Spesifikasi dari Modul ESP32-WROOM-32

  • Prosesor: Xtensa dual-core (or single-core) 32-bit LX6 microprocessor,
  • Freq Clock up to 240 MHz
  • Memori: 520 KB SRAM.
  • Wireless connectivity: Wi-Fi 802.11 b/g/n
  • Bluetooth v4.2 BR/EDR and BLE (shares the radio with Wi-Fi).
  • Flash memori 4 MB
  • 48 pin GPIO
  • 15 pin channel ADC (Analog to Digital Converter)
  • 25 pin PWM (Pulse Width Modulation
  • 2 pin channel DAC (Digital to Analog Converter)

Fitur

ESP32-S2 memiliki sistem on chip dengan WiFi 2.4GHz, dengan integrasi yang tinggi dan daya yang rendah. ESP32-S2 hadir dengan antarmuka USB (OTG) bawaan, WiFi Time-of-Flight hingga fitur keamanan hardware. ESP32 juga dilengkapi sensor efek hall built-in yang mendeteksi perubahan medan magnet di sekitarnya. Esp ini mempunyai 2 tombol pada boardnya yaitu enable dan boot

Pin GPIO ESP32

Enable (EN) adalah pin untuk mengaktifkan regulator 3.3V yang digunakan untuk restart. Sambungkan ke ground untuk menonaktifkan regulator 3.3V. Ini berarti Anda dapat menggunakan pin ini yang terhubung ke pushbutton untuk memulai ulang ESP32 Anda. Chip ESP32 memiliki 48 pin dengan banyak fungsi, tetapi beberapa pin tidak dapat digunakan. Untuk lebih jelasnya simak tulisan dibawah ini.

Pin GPIO ESP32 WROM

Gambar di bawah merupakan pinout ESP-WROOM-32. Anda dapat menggunakannya sebagai referensi jika Anda menggunakan chip kosong ESP32 untuk membuat papan kustom:

Pin GPIO ESP32

Catatan: tidak semua GPIO dapat diakses di semua boards, tetapi setiap GPIO tertentu bekerja dengan cara yang sama terlepas dari boards yang Anda gunakan.

Periferal ESP32

Periferal ESP32 meliputi:

  • 18 saluran Konverter Analog-ke-Digital (ADC)
  • 3 antarmuka SPI
  • 3 antarmuka UART
  • 2 antarmuka I2C
  • 16 saluran keluaran PWM
  • 2 Konverter Digital-ke-Analog (DAC)
  • 2 antarmuka I2S
  • 10 GPIO penginderaan kapasitif

Fitur ADC (analog to digital converter) dan DAC (digital to analog converter) ditetapkan ke pin statis tertentu. Namun, Anda dapat memutuskan pin mana yang UART, I2C, SPI, PWM, dll – Anda hanya perlu menetapkannya dalam kode. Ini dimungkinkan karena fitur multiplexing 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 board ESP32 DEVKIT V1 DOIT dengan 36 pin – lokasi pin dapat berubah tergantung pada pabrikannya).

Pin GPIO ESP32

Selain itu, ada pin dengan fitur khusus yang membuatnya cocok atau tidak untuk proyek tertentu. Tabel berikut menunjukkan pin apa yang terbaik untuk digunakan sebagai input, output, dan pin mana yang perlu Anda waspadai.

Seperti pada keterengan warna pada gambar diatas, Pin yang disorot dengan warna hijau boleh digunakan. Yang disorot dengan warna kuning boleh digunakan, tetapi Anda perlu memperhatikan karena mereka mungkin memiliki perilaku yang tidak terduga terutama saat boot. Pin yang disorot dengan warna merah tidak disarankan untuk digunakan sebagai input atau output. untuk lebih jelas silahkan baca keterangannya pada tabel dibawah ini :

Tabel Pin GPIO ESP32

GPIOInputOutputKeterangan
0pulled upOKoutputs sinyal PWM saat boot
1TX pinOKmen-debug output saat boot
2OKOKterhubung ke LED yang terpasang
3OKRX pinHIGH saat boot
4OKOK
5OKOKoutputs PWM signal saat boot
6xxterhubung ke terintegrasi SPI flash
7xxterhubung ke terintegrasi SPI flash
8xxterhubung ke terintegrasi SPI flash
9xxterhubung ke terintegrasi SPI flash
10xxterhubung ke terintegrasi SPI flash
11xxterhubung ke terintegrasi SPI flash
12OKOKboot gagal jika pulled high boot
13OKOK
14OKOKoutputs PWM signal saat boot
15OKOKoutputs PWM signal saat boot
16OKOK
17OKOK
18OKOK
19OKOK
21OKOK
22OKOK
23OKOK
25OKOK
26OKOK
27OKOK
32OKOK
33OKOK
34OKinput
35OKinput
36OKinput
39OKinput

Pin GPIO ESP32 HIGH di Boot

Beberapa GPIO mengubah statusnya menjadi HIGH atau mengeluarkan sinyal PWM saat boot atau reset. Ini berarti bahwa jika Anda memiliki output yang terhubung ke GPIO ini, Anda mungkin mendapatkan hasil yang tidak diharapkan ketika ESP32 me-reset atau melakukan booting.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 hingga GPIO 11 (terhubung ke memori flash SPI terintegrasi ESP32 – tidak disarankan untuk digunakan).
  • GPIO 14
  • GPIO 15

pin input GPIO ESP32

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

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

Flash SPI terintegrasi pada ESP-WROOM-32

Pin GPIO ESP32 6 hingga GPIO 11 diekspos di beberapa papan pengembangan ESP32. Namun, pin ini terhubung ke flash SPI terintegrasi pada chip ESP-WROOM-32 dan tidak direkomendasikan untuk penggunaan lain. Jadi, jangan gunakan pin ini di 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)
  • GPIO sentuh kapasitif

ESP32 memiliki 10 sensor sentuh kapasitif internal. Ini dapat merasakan variasi dalam segala hal yang memiliki muatan listrik, seperti kulit manusia. Jadi mereka dapat mendeteksi variasi yang ditimbulkan saat menyentuh GPIO dengan jari. Pin ini dapat dengan mudah diintegrasikan ke bantalan kapasitif dan menggantikan tombol mekanis.

Sensor sentuh internal terhubung ke 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)

Konverter Analog ke Digital (ADC)

ESP32 memiliki saluran input ADC 18 x 12 bit (sedangkan ESP8266 hanya memiliki ADC 1x 10 bit). 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)

Catatan: Pin ADC2 tidak dapat digunakan saat Wi-Fi digunakan. Jadi, jika Anda menggunakan Wi-Fi dan mengalami kesulitan mendapatkan nilai dari ADC2 GPIO, Anda dapat mempertimbangkan untuk menggunakan ADC1 GPIO. Itu harus menyelesaikan masalah Anda.

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 dapat mengatur resolusi saluran Anda pada kode dan rentang ADC.

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

Konverter Digital ke Analog (DAC)

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

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

GPIO RTC Pin ESP32

Ada dukungan RTC GPIO pada ESP32. GPIO yang dirutekan ke subsistem berdaya rendah RTC dapat digunakan saat ESP32 dalam mode tidur nyenyak. GPIO RTC ini dapat digunakan untuk membangunkan ESP32 dari tidur nyenyak saat co-prosesor 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)
  • 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 Pin GPIO ESP32

Kontroler PWM LED ESP32 memiliki 16 saluran independen yang dapat dikonfigurasi untuk menghasilkan sinyal PWM dengan properti yang berbeda. Semua pin yang dapat bertindak 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;
  • saluran PWM;
  • GPIO tempat Anda ingin mengeluarkan sinyal.

I2C Pin GPIO ESP32

ESP32 memiliki dua saluran I2C dan pin apa pun dapat diatur sebagai SDA atau SCL. Saat menggunakan ESP32 dengan Arduino IDE, pin I2C default adalah:

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

Jika Anda ingin menggunakan pin lain saat menggunakan library wire, Anda hanya perlu menulis kode dibawah ini:

Wire.begin(SDA, SCL);

SPI Pin GPIO ESP32

Secara default, pemetaan pin untuk SPI adalah:

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

Strapping Pin GPIO ESP32

Strapping Pin digunakan untuk menempatkan ESP32 ke mode bootloader atau flashing. Pada sebagian besar papan pengembangan dengan USB/Serial bawaan, Anda tidak perlu khawatir tentang status pin ini. Papan menempatkan pin dalam kondisi yang tepat untuk mode flashing atau boot. Strapping Pin pada Chip ESP32 adalah sebagai berikut:

  • GPIO 0
  • GPIO 2
  • GPIO 4
  • GPIO 5 (harus HIGH saat boot)
  • GPIO 12 (harus LOW saat boot)
  • GPIO 15 (harus HIGH saat boot)

Jika Anda memiliki periferal yang terhubung ke pin tersebut, Anda mungkin mengalami masalah saat mencoba mengunggah kode baru, mem-flash ESP32 dengan firmware baru, atau mengatur ulang board. Jika Anda memiliki beberapa periferal yang terhubung ke pin strapping dan Anda mengalami masalah saat mengunggah kode atau mem-flash ESP32, itu mungkin karena periferal tersebut mencegah ESP32 memasuki mode yang benar. Baca dokumentasi Pemilihan Mode Boot untuk memandu Anda ke arah yang benar. Setelah mengatur ulang, mem-flash, atau mem-boot, pin tersebut berfungsi seperti yang diharapkan.

Yuk bantu share !!!

Tinggalkan Balasan

Scroll to Top