#2 ESP 32 GPIO: Digital Input Output [Sistem Embedded]

Erensi Ratu Chelsia
4 min readFeb 11, 2023

--

Setelah mencoba pada project 1 yang dapat dilihat di ESP32 : LED Blink. Lanjut lagi ke project selanjutnya yaitu project 2 yang akan mengimplementasikan input-output dari mikrokontroler ESP32. Di project 2 ini akan dibahas bagaimana cara menghidupkan maupun mematikan lampu LED menggunakan push button. Dimana, untuk menyalakan lampu LED ini bisa dilakukan dari menekan button.

Sebelum ke stepsnya, siapin dulu nih komponen-komponen yang sekiranya akan dipakai pada project 2 kali ini. Apa aja yaa kira-kira komponen yang dibutuhkan??

~Komponen

Nahh, berikut ini komponen-komponen yang dibutuhkan pada project 2 kali ini :

Bread Board

[ada pada kiri atas gambar] Breadboard disini digunakan sebagai main-component yang menjadi media pada project kali ini. Pada breadboard ini ada bagian yang merupakan kutub positif (warna merah) dan bagian yang merupakan kutub negatif (warna biru). Bagian tengah breadboard merupakan bagian yang bersifat netral.

Kabel USB

[ada pada tengah atas gambar] Kabel USB ini digunakan untuk menghubungkan laptop anda dengan ESP32.

Push Button

[ada pada kanan atas gambar] Push Button ini digunakan dengan cara diklik yang nantinya dapat menghidupkan lampu LED. Sebenarnya lebih baik menggunakan push button dengan ukuran yang sedikit lebih besar agar tidak begitu sulit saat menekannya. Namun, di sini saya menggunakan push button yang ukurannya sangat kecil.

Kabel Jumper

[ada pada kiri bawah gambar] Kabel Jumper ini digunakan untuk menyambungkan antar komponen yang ada pada breadboard. Di sini kabel jumper yang digunakan yaitu yang male to male (kedua ujungnya ada tusukan).

Lampu LED

[ada pada tengah bawah gambar] Karena untuk melihat project kita berhasil atau tidaknya, maka harus ada lampu LED yang nantinya bisa dihidupkan dengan nge-klik di push button. Lampu LED yang aku gunakan disini yaitu LED red dan LED green.

Resistor

[ada pada kanan bawah gambar] Resistor di sini digunakan untuk mengatur tegangan listrik dan arus listrik. Resistor yang aku gunakan pada project 2 kali ini yaitu resistor 10k Ohm dan 330 Ohm. Resistor 10k Ohm ini nantinya diletakkan di samping push button, sedangkan resistor 330 Ohm ini diletakkan di samping lampu LEDnya.

~Langkah pengerjaan

Ilustrasi rancangan
  1. Siapkan komponen yang dibutuhkan, seperti yang aku sebutkan di atas.
  2. Letakkan ESP32 pada breadboard. Di sini aku letakkan ESP32 di ujung breadboard seperti yang ada di gambar ilustrasi.
  3. [perhatikan gambar yang di atas] hubungkan dengan kabel male to male titik 3v3 ke bagian positif breadboard.
  4. Hubungkan GND dengan bagian negatif breadboard.
  5. Hubungkan GPIO4 (disimbolkan dengan D4) dengan salah satu kaki Push Button dan GPIO5 (B5) dengan kaki panjang LED. Sebaiknya letakkan Push button dan LED seperti pada gambar di atas.
  6. Letakkan resistor 330 Ohm di antara LED dan bagian negatif breadboard. Letakkan resistor 10k Ohm di antara Push Button dan bagian negatif breadboard.
  7. Hubungkan dengan kabel male to male salah satu kaki push button dengan bagian positif pada breadboard.
  8. Setelah rancangan pada ESP32 selesai, sekarang kita selesaikan pula pada program pada IDE nya.

Kode program yang aku gunakan adalah berikut. Sebelumnya seperti biasa, jangan lupa untuk memilih board dan port seperti pada project 1 sebelumnya.

// Inisiasi nilai pin yang digunakan
const int buttonPin = 4; // GPIO yang terhubung dengan button
const int ledPin = 5; // GPIO yang terhubung dengan LED// Inisiasi kondisi button
int buttonState = 0;void setup() {
Serial.begin(115200);
// Inisiasi button sebagai input
pinMode(buttonPin, INPUT);
// Inisiasi LED sebagai output
pinMode(ledPin, OUTPUT);

}void loop() {
// Membaca kondisi button apakah sedang ditekan atau tidak
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
// Mengecek kondisi button. Apabila sedang ditekan (state = HIGH) maka LED akan menyala, begitu pula sebaliknya
if (buttonState == HIGH) {
// Menyalakan LED
digitalWrite(ledPin, HIGH);
} else {
// Mematikan LED
digitalWrite(ledPin, LOW);
}
}

sumber : graciellavl.medium.com

Tinggal klik aja push buttonnya nanti lampu LEDnya akan menyala!

~Hasil

hasil menggunakan LED red dan LED green

~Inovasi Tambahan

Setelah aku mencoba untuk menghidupkan satu lampu LED, sekarang aku coba untuk menghidupkan 2 lampu LED dengan adanya delay antara lampu yang satu dengan yang lainnya.

Susunlah rangkaian seperti gambar di bawah ini

// set pin number
const int button = 4;
const int ledred = 5;
const int ledgreen = 23;

int buttonstate = 0;

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(button, INPUT);
pinMode(ledred, OUTPUT);
pinMode(ledgreen, OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
buttonstate = digitalRead(button);
Serial.println(buttonstate);
if (buttonstate == HIGH){
digitalWrite(ledred, HIGH);
delay(100);
digitalWrite(ledred, LOW);
delay(100);
digitalWrite(ledgreen, HIGH);
delay(100);
digitalWrite(ledgreen, LOW);
delay(100);
} else {
digitalWrite(ledred, LOW);
digitalWrite(ledgreen, LOW);
}
}

~Hasil Inovasi

jadi dehh~~

Terimakasih dan sampai jumpa~

--

--