Modul 2: Menjelajahi GPIO ESP32 (2/8)

Unit 2.2: Sensor Sentuh ESP32

Pendahuluan

ESP32 memiliki sepuluh GPIO yang sensitif sentuhan. GPIO ini dapat mendeteksi apa pun yang memiliki muatan listrik, seperti kulit manusia. Maka dari itu, mereka dapat mendeteksi variasi yang disebabkan saat menyentuh GPIO dengan jari.

Pin-pin ini dapat dengan mudah diintegrasikan ke dalam pad kapasitif dan menggantikan tombol mekanis. Lihat pinout papan Anda untuk menemukan sepuluh sensor sentuh yang berbeda—pin yang sensitif terhadap sentuhan dihighlight dengan warna merah muda.

Klik Gambar untuk Memperjelas Pin Out

Penjelasan Pin Sentuh ESP32 S3

– Sensor sentuh 1 terhubung ke GPIO 1
– Sensor sentuh 2 terhubung ke GPIO 2
– Dan seterusnya hingga sensor sentuh 14

Catatan Tambahan: Letak GPIO sensor sentuh mungkin akan berbeda pada setiap tipe ESP32.

Fungsi touchRead()

Membaca sensor sentuh cukup sederhana. Di Arduino IDE, Anda menggunakan fungsi touchRead(), yang menerima GPIO yang ingin Anda baca sebagai argumen.

Code – Membaca Sensor Sentuh

Mari kita lihat bagaimana fungsi ini bekerja dengan menggunakan contoh dari pustaka. Di Arduino IDE, buka File > Examples > ESP32 > Touch dan buka sketsa TouchRead.

Contoh ini membaca pin sentuh 0 dan menampilkan hasilnya di monitor serial. Pin T0 (pin sentuh 4) terhubung ke GPIO 4. Dalam kode ini, di fungsi `setup()`, Anda memulai Serial Monitor untuk menampilkan pembacaan sensor.

Menguji Contoh

  1. Hubungkan kabel jumper ke GPIO 4.
  2. Sentuh bagian logam dari kabel ini agar dapat mendeteksi sentuhan.
  3. Di jendela Arduino IDE, buka Tools dan buka Serial Monitor dengan baud rate 115200. Anda akan melihat nilai-nilai baru ditampilkan setiap detik.
  4. Sentuh kabel yang terhubung ke GPIO 4, dan Anda akan melihat nilai-nilai menurun.
Klik Gambar untuk Memperjelas Rangkaian

Anda juga dapat menggunakan Serial Plotter untuk melihat nilai-nilai dengan lebih baik. Tutup serial monitor, kemudian buka Tools > Serial Plotter.


LED Sensitif Sentuhan

Bagaimana Anda bisa menggunakan fitur ini untuk mengontrol output? Mari kita buat sirkuit LED yang dikendalikan oleh sentuhan.

Menemukan Ambang Batas

  1. Ambil sepotong aluminium foil, potong menjadi kotak kecil, dan bungkus di sekitar kabel, seperti yang ditunjukkan pada gambar.
  2. Dengan kode yang sama berjalan, kembali ke serial monitor.
  3. Sekarang, sentuh aluminium foil, dan Anda akan melihat nilai-nilai berubah lagi.

Pada kasus ini, ketika kita tidak menyentuh pin, nilai tipikal adalah sekitar 70. Dan ketika kita menyentuh aluminium foil, nilai tersebut turun menjadi sekitar 10. Jadi, kita bisa menetapkan nilai ambang batas, dan ketika pembacaan turun di bawah nilai tersebut, LED akan menyala. Nilai ambang batas yang baik dalam kasus ini adalah 20, misalnya—nilai Anda mungkin berbeda.

Skematik

Tambahkan LED ke rangkaian Anda dengan mengikuti skematik ini. LED harus terhubung ke GPIO 16.

Berikut adalah daftar komponen yang Anda butuhkan untuk membangun rangkaian:

  • ESP32 S3 Dev Module Board
  • LED 5mm
  • Resistor 330 Ohm
  • Breadboard
  • Kabel jumper
Klik Gambar untuk Memperjelas Rangkaian

Kode

Salin kode berikut ke Arduino IDE Anda:

Flowchart

Klik Gambar untuk Memperjelas

Kode ini membaca nilai sentuhan dari pin yang kita tentukan dan menyalakan LED ketika nilai tersebut berada di bawah ambang batas (ini berarti saat Anda menempatkan jari Anda di aluminium foil).

Menguji Proyek

Unggah sketsa ke ESP32 Anda. Sekarang, uji rangkaian Anda. Sentuh aluminium foil dan lihat LED menyala.

Ringkasan

Dalam bagian ini, Anda telah mempelajari:

  • ESP32 memiliki 14 GPIO sentuh kapasitif – ESP32 S3 Dev Module Board.
  • Ketika Anda menyentuh GPIO yang sensitif terhadap sentuhan, nilai yang dibaca oleh sensor turun.
  • Anda bisa menetapkan nilai ambang batas untuk membuat sesuatu terjadi ketika mendeteksi sentuhan.

Jika ada pertanyaan lebih lanjut atau penjelasan tambahan yang diperlukan, jangan ragu untuk bertanya pada grup telegram https://t.me/kodingindonesia.


Referensi

  • Random Nerd Tutorials.

Anton Prafanto

Konten developer kodingindonesia.com & staf pengajar tetap di Universitas Mulawarman Samarinda

all author posts