[ESP32] - Digital I/O

by - 10:22 PM

Halo 👋


Setelah kemarin sudah ada penjelasan terkait bagaimana memulai program pertama dengan ESP32. Kali ini kita akan mencoba untuk mengenal lebih jauh ESP32, dan kita akan memulai dari Digital Input Output pada ESP32.

Pada ESP32 Development Board, tersedia pin-pin yang disebut GPIO (General purpose input output). GPIO berfungsi sebagai interface antara ESP32 development board dengan hardware lain. Detail GPIO pada ESP32 dapat dilihat pada gambar berikut :



Oke. Sekarang kita akan bermain langsung dengan ESP32 dan komponen lainnya, sebelum dimulai, hardware yang harus kita sediakan adalah :
  1. ESP32 Development Board (tentu saja 😋)
  2. Breadboard
  3. LED
  4. Push button
  5. Resistor 330  Ω
  6. Resistor 10 kΩ
  7. Kabel Jumper (yang banyak hehe)
  8. Kabel micro USB
  9. dan juga PC/laptop


Udah siap semua ? Kalo udah, Let's get started ! 👏👏

1. Buka Arduino IDE

Sip. Sekarang kita buka Arduino IDE untuk memulai. dan kita coba menuliskan code seperti ini.

// set GPIO
const int buttonPin = 4;  // pushbutton tersambung melalui GPIO 4
const int ledPin =  5;    // LED tersambung melalui GPIO 5

// variable untuk menyimpan state pushbutton
int buttonState = 0;

void setup() {
  Serial.begin(115200);  
  
  // inisialisasi pushbutton sebagai input
  pinMode(buttonPin, INPUT);
  // initialize LED sebagai output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  
  buttonState = digitalRead(buttonPin); // Membaca state pushbutton
  Serial.println(buttonState);
  
  // mencek apakah pushbutton sudah tertekan
  if (buttonState == HIGH) {  //HIGH = tertekan, LOW = tidak tertekan.
    //Jika pushbutton sudah tertekan (HIGH) maka :
    
    digitalWrite(ledPin, HIGH); // LED menyala
  } else { //Jika pushbutton tidak tertekan
    digitalWrite(ledPin, LOW); //LED mati
  }
}

Oke setelah menulis code ini kita lanjut ke tahap selanjutnya

2. Susun Rangkaian di Breadboard

(p.s. Sebenernya langkah 2 ini bisa dilakukan duluan. langkah 1 dan langkah 2 bebas mau mana duluan, kalau saya enakan langkah 1 dulu hehe 😅)

Nah sekarang kita coba menyusun rangkaian di breadboard. kurang lebih skema rangkaiannya kaya gini 👇👇





yang harus kita perhatikan di sini adalah, pastikan pin GPIO pada program sama dengan GPIO yang kita sambungkan pada breadboard. anoda (+) LED tersambung langsung dengan GPIO, dan kutub negatif atau katoda(-) tersambung dengan resistor 330 Ω.

Jika telah disusun, kali ini kita coba mengirim/upload code yang telah kita buat ke ESP32. dan coba pencet pushbuttonnya ✨👀.




Gimana ? berhasil ga nih ?

Kalo belum berhasil tenang saja, saya juga awalnya ga nyala kok 😅. Nah disini saya akan ngejelasin gimana cara nyelesain problem-problem  yang ngebuat ini ga berhasil.

  1. Pastikan pin GPIO pada program sama dengan GPIO yang kita sambungkan pada breadboard. (seperti yang sudah saya jelaskan diatas hehe)
  2. Kutub LED harus benar.  ingat ya "kaki" yang panjang pada LED adalah anoda (+) dan yang pendek itu adalah katoda(-)
  3. Pastikan seluruh pin GPIO atau kaki-kaki dari ESP32 development board masuk ke seluruh lubang di breadboard. Dari pengalaman saya, awalnya saya tidak menancapkan seluruh kaki-kaki ESP32 ke dalam breadboard, tetapi setelah saya tekan dengan tenaga, akhirnya kaki-kakinya telah tertancap seluruhnya di breadboard. nih gambarannya kalo bingung wkwk.


Oke sekarang gimana ? semoga udah berhasil yaa. Kalau udah berhasil, ada sebuah Easter Egg nih di ESP32. Wah apa tuh ?

Coba kita pindahkan pin GPIO input atau untuk pushbutton ke GPIO 2, jangan lupa ubah juga codenya yaa. Ternyata kalau input pada GPIO 2, jika kita menekan pushbutton, LED builtin pada ESP32 juga ikut menyala 🤯.

Wah menarik yaa hehe. oke tahap selanjutnya kita bisa bermain-main dengan code, dengan mencoba menvariasikan code yang sudah ada. Karena saya tau ada Easter Egg, saya jadi penasaran kalau coba me-blink LED apakah LED built-in nya juga nge blink atau engga  yaa? 🤔. 

Setelah saya coba ternyata LED built-in nya ga ikut kedap-kedip hehe. 



Oke sekian untuk kali ini, semoga bermanfaat dan selamat mencoba !!

Terima Kasih.

You May Also Like

0 comments

featured posts