Nah , project kali ini juga merangkap sebagai rekam jejak atau laporan saya untuk mata kuliah ( II2260 Sistem Embedded ). Agar lebih detail kali ini saya akan memanfaatkan General Purpose Input Output atau dapat disingkat GPIO, jika diterjemahkan secara harfiah ke Bahasa Indonesia adalah masukan dan keluaran untuk berbagai tujuan. Sebelum memulai project, akan dijelaskan terlebih dahulu mengenai perangkat dan komponen yang akan digunakan.
GPIO ESP32
Perangkat dan komponen yang digunakan:
Penjelasan beberapa perangkat dan komponen:
Pendahuluan :
Langkah pengerjaan :
1. Menyiapkan ARDUINO IDE yang telah dikonfigurasi agar dapat terhubung dengan board ESP32.
2. Memasukkan kode program berikut pada IDE ARDUINO.
// pasang nomor pin
const int buttonPin = 4; // nomor pin yang terhubung ke pushbutton
const int ledPin = 5; // nomor pin yang terhubung ke LED
// variabel untuk menyimpan status tombol pin
int buttonState = 0;
void setup() {
Serial.begin(115200);
// memulai pushbutton sebagai input
pinMode(buttonPin, INPUT);
// memulai LED sebagai output
pinMode(ledPin, OUTPUT);
}
void loop() {
// membaca nilai status dari pushbutton
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
// mengecek apakah pushbutton ditekan.
// jika ditekan maka status pushbutton adalah HIGH
if (buttonState == HIGH) {
// maka menghidupkan LED
digitalWrite(ledPin, HIGH);
} else {
// jika tidak ditekan akan mematikan LED karena status low
digitalWrite(ledPin, LOW);
}
}Apa dan bagaimana konsep-konsep yang terdapat pada baris kode tersebut?
const int buttonPin = 4;
const int ledPin = 5;Pushbuttton terhubung ke GPIO 4 dan LED terhubung ke GPIO 5. Di Arduino IDE, 4 adalah nilai untuk GPIO 4 dan 5 adalah nilai untuk GPIO 5.
int buttonState = 0;Kode inii membuat variabel untuk menahan status tombol. Secara default nilainya adalah 0 yang berarti status tombol tidak ditekan.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);Pada kode ini pushbutton diinisialisasi sebagai INPUT, sedangkan LED sebagai OUTPUT. Lalu fungsi pinMode untuk membuat status pin yang dimaksud.
Pada bagian loop () diisi bagian yang membaca status tombol dan mengatur status LED.
buttonState = digitalRead(buttonPin);Kode ini membaca status dari pushbutton dan memasukkan status ke variabel buttonState
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}else {
digitalWrite(ledPin, LOW);
}Jika status pushbutton HIGH atau 1 maka LED menyala, sedangkan LOW atau 0, LED akan mati.
3. Menyiapkan Breadboard dan memasang ESP32.
Pada kali ini saya mencoba menggunakan 2 Breadboard agar memudahkan jalannya project kali ini juga antisipasi agar ESP32 tidak rentan rusak karena diletakkan pada breadboard dan tidak dipegang langsung oleh tangan. Nanti saya akan juga menunjukkan cara atau versi saya sendiri dengan hanya menggunakan satu breadboard.4. Menghubungkan serta memasang komponen dan kabel pada breadboard mengukuti skema berikut.
Umumnya yang harus terpasang seperti pada skema di atas. Tetapi agar lebih aman dan menggunakan 2 breadboard berikut adalah skema versi saya sendiri. Dengan memegang konsep pada bagian pinggir breadboard yang terdapat simbol plus dan minus aliran arus adalah seri atau vertikal sedangkan pada bagian tengah breadboard aliran arus mengalir paralel atau horizontal, tidak perlu terlalu mengikuti skema asalakan setiap komponen dan kabel terhubung sesuai dengan pin atau antar komponen lainnya. Oleh karena itu tidak perlu terpaku pada skema yang umum, saya dapat memvariasikan pemasangan komponen-komponen ke breadboard.
Dengan bermodal rasa keingintahuan dan penasaran, konsep dan nekat ternyata dengan cara ini pun saya berhasil asalkan pemasangan antar komponen sesuai. Perhatian! dengan pemasangan versi saya ini, perlu berhati-hati ketika memegang board ESP32 karena tidak menggunakan breadboard.
5. Upload program ke ESP32
Lalu compile dan upload!
Pada ESP32 yang saya gunakan ketika proses uploading saya harus sambil menekan tombol reset karena ESP32 saya telah terisi program blink sebelumnya sehingga akan mereset ESP32 dan dapat dimasukkan program baru. Jika tidak, proses uploading program akan gagal.
Yay! berhasil.
6. Demo kedua versi, menggunakan satu breadboard dan dua breadboard.
Error dan Troubleshooting :
Pada project kali ini, dapat dibilang saya beruntung karena hampir semua berjalan cukup lancar dan tidak muncul berbagai permasalahan atau error yang rumit atau complicated, namun pada awal mencoba saya sempat tidak berhasil disebabkan kesalahan pada pemasangan kabel jumper untuk ground ke breadboard sehingga LED tidak menyala ketika pushbutton ditekan.
Awalnya saya memasang kabel jumper ke breadboard seperti ini.
Masalah teratasi ketika memasang kabel jumper bukan pada bagian power/pinggir. Hal ini membuat saya teringat konsep arus yang mengalir pada breadboard. Pada bagian pinggir breadboad arus akan mengalir vertikal/memanjang searah sisi panjang breadboard sedangkan pada bagian tengah arus akan mengalir secara horizontal atau searah sisi lebar pada breadboard. Seperti pada contoh berikut :

















0 Komentar