2.1 Input dan Output Digital ESP32 | Koding Indonesia

2.1 Input dan Output Digital ESP32

Komponen yang diperlukan:

  • ESP32 Devkit 38 Pin (optional)
  • LED 5mm
  • Resistor 330 Ohm
  • Resistor 10K Ohm
  • Pushbutton
  • Breadboard
  • Kabel Jumper

1. Penghantar

Dalam bagian ini, kami akan menjelaskan cara membaca input digital seperti tombol dan mengontrol output digital seperti LED. Jika Anda telah memiliki pengalaman memprogram Arduino atau ESP8266 sebelumnya menggunakan Arduino IDE, topik ini mungkin sudah familiar bagi Anda.

digitalWrite()

Untuk mengendalikan output digital, Anda perlu menggunakan fungsi digitalWrite(). Fungsi ini menerima argumen berupa GPIO yang ingin Anda kendalikan, dan keadaan (state) GPIO tersebut dapat berupa kondisi HIGH atau LOW.

digitalRead()

Untuk mengambil data input digital, seperti tombol, Anda dapat menggunakan fungsi digitalRead(). Fungsi ini menerima argumen GPIO yang dituju.

2. Contoh Aplikasi

Mari kita buat sebuah contoh sederhana untuk melihat bagaimana fungsi-fungsi diatas beroperasi pada ESP32 Devkit menggunakan Arduino IDE. Dalam contoh ini, kita akan membaca status dari pushbutton dan mengontrol LED yang sesuai dengan kondisi pushbutton.

Skematik

Rakitlah sirkuit dengan pushbutton dan LED seperti yang ditunjukkan pada diagram skematik berikut ini:

  • LED <-> GPIO 17
  • Pushbutton <-> GPIO 16

(Skematik ini menggunakan versi modul ESP32 Devkit dengan 38 GPIO – jika Anda menggunakan model lain, silakan periksa pinout untuk board ESP32 yang Anda gunakan).

Kode

Setelah rangkaian siap, salin kode yang disediakan di bawah ini ke Arduino IDE Anda.

3. Penjelasan Code

  • Baris 2 dan 3: Kita mendefinisikan nomor pin yang akan digunakan untuk pushbutton dan LED, variabel konstanta buttonPin dengan nilai 17 dan ledPin dengan nilai 16 untuk menunjuk nomor pin GPIO yang digunakan pada ESP32 Devkit.

  • Baris 6: Kita mendeklarasikan variabel buttonState sebagai integer, kemudian variabel ini akan digunakan untuk menyimpan status tombol pushbutton.

  • Baris 8-14: Fungsi setup() digunakan untuk melakukan pengaturan awal pada program. Pada baris ini, kita memulai komunikasi serial dengan menggunakan Serial.begin(115200), dengan kecepatan baud rate 115200. Ini memungkinkan kita untuk melihat hasil keluaran pada Serial Monitor di Arduino IDE. Selanjutnya, kita menginisialisasi pin pushbutton sebagai input menggunakan pinMode(buttonPin, INPUT). Artinya, kita mengatur pin tersebut untuk menerima sinyal masukan dari pushbutton. Kemudian, kita menginisialisasi pin LED sebagai output menggunakan pinMode(ledPin, OUTPUT). Ini berarti pin tersebut akan mengirimkan sinyal keluar untuk mengendalikan LED.

  • Baris 16-19: Fungsi loop() adalah bagian utama dari program yang akan dijalankan secara berulang. Pada baris ini, kita membaca status pushbutton menggunakan fungsi digitalRead(buttonPin). Fungsi ini akan membaca nilai logika pada pin pushbutton, yaitu HIGH atau LOW, dan menyimpannya dalam variabel buttonState. Kemudian, kita mencetak nilai buttonState pada Serial Monitor menggunakan Serial.println(buttonState). Ini memungkinkan kita untuk melihat status pushbutton pada Serial Monitor.

  • Baris 20-29 Selanjutnya, kita melakukan pengecekan apakah tombol tekan ditekan atau tidak dengan menggunakan kondisi if (buttonState == HIGH). Jika nilai buttonState adalah HIGH, berarti tombol sedang ditekan. Dalam kasus ini, kita menghidupkan LED dengan menggunakan digitalWrite(ledPin, HIGH), yang akan memberikan sinyal keluar pada pin LED untuk menyalakannya. Jika kondisi if tidak terpenuhi, artinya tombol tidak ditekan, maka kita mematikan LED dengan menggunakan digitalWrite(ledPin, LOW), yang akan memberikan sinyal keluar pada pin LED untuk mematikannya.

4. Mengunggah Code Ke ESP32

Sebelum menekan tombol Upload, pastikan Anda pilih Board dan Port dengan benar. Caranya, masuk ke Tools > Board lalu pilih board ESP32 yang sedang Anda gunakan. Pada kasus ini, pengaturan kami sebagai berikut:

Sekarang silahkan klik atau tekan Upload

Kemudian tunggu sampai pesan “Done Uploading” muncul.

5. Menguji Proyek

Setelah mengunggah code ke ESP32, uji coba rangkaian Anda. LED Anda harusnya menyala ketika Anda menekan tombol dan padam ketika tombol dilepas.

references: randomnerdtutorials.com arduino.cc microcontrollerslab.com circuito.io ahonerd.com instructables.com mischianti.org simple-circuit.com how2electronics.com

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