Belajar ESP32: Input Output

Pada artikel sebelumnya kita sudah membuat program sederhana untuk menyalakan LED menggunakan ESP32 pada artikel Belajar ESP32: LED Blink. Jika LED Blink hanya berfokus pada output, maka pada artikel ini kita akan belajar bagaimana ESP32 membaca input dan mengontrol output secara bersamaan.

Contoh yang akan kita buat adalah:

  • Ketika tombol ditekan, LED akan menyala
  • Ketika tombol dilepas, LED akan mati

Konsep ini merupakan dasar dari hampir semua proyek embedded system, karena mikrokontroler selalu bekerja dengan membaca input lalu memberikan output.

Konsep Digital Input dan Output pada ESP32

image
https://lastminuteengineers.com/esp32-pinout-reference/#esp32-gpio-pins

ESP32 memiliki banyak pin yang disebut GPIO (General Purpose Input Output). Pin ini dapat dikonfigurasi sebagai input maupun output sesuai kebutuhan program.

Secara umum ada tiga fungsi penting yang sering digunakan:

pinMode(pin, mode);
digitalWrite(pin, state);
digitalRead(pin);

Penjelasannya:

pinMode()

Digunakan untuk menentukan apakah sebuah pin akan berfungsi sebagai input atau output.

pinMode(GPIO, OUTPUT);

atau

pinMode(GPIO, INPUT);

digitalWrite()

Digunakan untuk mengatur nilai pin HIGH atau LOW.

digitalWrite(GPIO, HIGH);

Jika HIGH maka pin akan mengeluarkan tegangan sekitar 3.3V, sedangkan LOW berarti 0V.

digitalRead()

Digunakan untuk membaca nilai dari pin input.

digitalRead(GPIO);

digitalRead(GPIO);

Digunakan untuk membaca nilai dari pin input.

digitalRead(GPIO);

Nilai yang dibaca juga hanya dua kemungkinan yaitu HIGH atau LOW.

Komponen yang Dibutuhkan

Untuk membuat rangkaian sederhana ini kita membutuhkan beberapa komponen:

  • ESP32
  • LED
  • Resistor 220Ω
  • Push Button
  • Breadboard
  • Kabel jumper

Skema Rangkaian

Rangkaian yang digunakan cukup sederhana:

  • LED terhubung ke GPIO 5
  • Push Button terhubung ke GPIO 4

Ketika tombol ditekan, ESP32 akan membaca input dari GPIO 4 dan menyalakan LED pada GPIO 5.

rangkaian

Program ESP32

Berikut program yang digunakan untuk membaca tombol dan menyalakan LED.

const int buttonPin = 4;
const int ledPin = 5;

int buttonState = 0;

void setup() {

pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);

}

void loop() {

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}

}

Penjelasan Program

Mari kita lihat bagian penting dari kode di atas.

Mendefinisikan Pin

const int buttonPin = 4;
const int ledPin = 5;

Baris ini mendefinisikan bahwa:

  • tombol berada di GPIO 4
  • LED berada di GPIO 5

Setup Pin Mode

pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
  • tombol diset sebagai INPUT
  • LED diset sebagai OUTPUT

Membaca Status Tombol

buttonState = digitalRead(buttonPin);

ESP32 membaca apakah tombol dalam keadaan HIGH atau LOW.


Mengontrol LED

if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}

Jika tombol ditekan, maka LED akan menyala.

else {
digitalWrite(ledPin, LOW);
}

Jika tombol tidak ditekan, LED akan mati.

Cara Menjalankan Program

  1. Hubungkan ESP32 ke komputer menggunakan kabel USB
  2. Buka Arduino IDE
  3. Pilih board ESP32 Dev Module
  4. Upload kode program
  5. Tekan tombol pada rangkaian

Jika rangkaian dan program benar, maka LED akan menyala ketika tombol ditekan.

Kesimpulan

Pada artikel ini kita telah mempelajari dasar Input dan Output pada ESP32, yaitu:

  • Menggunakan pinMode() untuk menentukan fungsi pin
  • Menggunakan digitalRead() untuk membaca input
  • Menggunakan digitalWrite() untuk mengontrol output

Konsep ini sangat penting karena hampir semua proyek IoT atau embedded system selalu melibatkan sensor sebagai input dan aktuator sebagai output.

Referensi

1 komentar untuk “Belajar ESP32: Input Output”

  1. Pingback: Belajar ESP32: Internal Sensor - SMSRV

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll to Top