Memahami Resistor Pull-Up
Sebelum menyelami spesifikasi pin pull-up ESP32, penting untuk memahami peran resistor pull-up dalam suatu rangkaian. Ketika pin input digital dibiarkan mengambang (tidak terhubung ke sumber tegangan apa pun), ia dapat membaca nilai acak, sehingga sulit untuk menentukan level logikanya.
Untuk menghindari masalah ini, resistor pull-up dihubungkan antara pin input dan sumber tegangan (biasanya Vcc) untuk memastikan bahwa input membaca keadaan tinggi (logis 1) secara default. Ketika input terhubung ke sinyal rendah (logis 0), resistor menarik input ke ground, memungkinkan input membaca keadaan rendah.
Pin Pull-Up bawaan pada ESP32
Mikrokontroler ESP32 memiliki 34 pin input/output tujuan umum (GPIO), yang dapat dikonfigurasi sebagai pin digital atau analog. Di antara 34 pin ini, beberapa pin memiliki resistor pull-up bawaan yang dapat diaktifkan oleh perangkat lunak.
Tabel berikut menunjukkan pin pada ESP32 yang memiliki resistor pull-up bawaan:
Nomor PIN | Nama Pin | Resistor Pull-Up bawaan |
0 | GPIO0 | Ya |
2 | GPIO2 | Ya |
4 | GPIO4 | Ya |
5 | GPIO5 | Ya |
12 | GPIO12 | Ya |
13 | GPIO13 | Ya |
14 | GPIO14 | Ya |
limabelas | GPIO15 | Ya |
25 | GPIO25 | Ya |
26 | GPIO26 | Ya |
27 | GPIO27 | Ya |
32 | GPIO32 | Ya |
33 | GPIO33 | Ya |
3. 4 | GPIO34 | TIDAK |
35 | GPIO35 | TIDAK |
36 | GPIO36 | TIDAK |
39 | GPIO39 | TIDAK |
Seperti yang Anda lihat, sebagian besar pin digital pada ESP32 memiliki resistor pull-up bawaan. Namun, tidak semua pin memiliki fitur ini. Pin 34, 35, 36, dan 39 tidak memiliki resistor pull-up bawaan.
Catatan: Di ESP32, resistor pull-up dan pull-down terintegrasi hanya tersedia di pin yang mendukung input dan output. GPIO 34-39 , yang terbatas pada masukan saja, tidak memiliki resistor bawaan ini.
Periksa lengkap Referensi Pinout ESP32 .
Mengaktifkan Resistor Pull-Up di ESP32
Untuk mengaktifkan resistor pull-up pada pin ESP32, Anda dapat menggunakan gpio_set_pull_mode() fungsi yang disediakan oleh kerangka kerja ESP-IDF.
Fungsi ini membutuhkan dua argumen:
- Nomor pin GPIO
- Modus pull-up
Mode pull-up bisa jadi GPIO_PULLUP_ENABLE atau GPIO_PULLUP_DISABLE . Berikut contoh kode yang mengaktifkan resistor pull-up pada GPIO2:
#sertakan 'driver/gpio.h'ruang kosong aktifkan_pull_up ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;
}
pinMode ( 5 , INPUT_PULLUP ) ;
Penting untuk dicatat bahwa mengaktifkan resistor pull-up pada pin akan memengaruhi perilakunya saat pin digunakan sebagai output. Dalam hal ini, resistor pull-up akan bertindak sebagai sumber arus yang lemah dan dapat mempengaruhi level tegangan keluaran.
Sebagai alternatif, kami juga dapat mengaktifkan pull-up internal pada ESP32 menggunakan pinMode() fungsi arduino.
pinMode ( 5 , INPUT_PULLUP ) ;Kode di atas akan mengaktifkan resistor pull-up internal pada pin 5 . Demikian pula, Anda dapat mengaktifkan resistor pull-down internal dengan menentukan mode INPUT_PULLDOWN .
Kesimpulan
Resistor pull-up adalah komponen penting dalam sirkuit digital, dan mikrokontroler ESP32 menyediakan resistor pull-up bawaan pada sebagian besar pin digitalnya. Mengaktifkan resistor ini dapat memastikan level logika yang stabil dan menghindari masalah input mengambang. Namun, penting untuk dicatat bahwa tidak semua pin pada ESP32 memiliki resistor pull-up bawaan, jadi penting untuk memeriksa pinout ESP32 atau lembar data sebelum merancang sirkuit. Selain itu, mengaktifkan resistor pull-up dapat memengaruhi perilaku pin saat digunakan sebagai output.