
Secara default tombol flash pada nodemcu lolin terhubung dengan GPIO 0 dan Ground dan kita dapat langsung menggunakan INPUT_PULLUP. Hasil yang didapatkan ketika tombol flash tersebut ditekan akan menghasilkan LOW atau 0 bukan HIGH atau 1.
Mari kita lihat coding programnya :
#define LED D4 // LED BUILD IN NODEMCU ADA DI GPIO 2
#define button D3 // TOMBOL FLASH SECARA DEFAULT ADA DI GPIO 0 DAN TERHUBUNG DENGAN GROUND
int status_button,hitung,button_sesudah;
void setup() {
pinMode(LED, OUTPUT);
pinMode(button, INPUT_PULLUP);
}
void loop() {
status_button = digitalRead(button);
if(button_sesudah != status_button){ //MEMBANDINGKAN DENGAN STATUS TOMBOL YANG DISIMPAN
if(status_button == LOW){ //JIKA TOMBOL DITEKAN
hitung= hitung+1; //MENAMBAH HITUNGAN
}
}
button_sesudah = status_button; //MENYIMPAN STATUS BUTTON UNTUK MEMBANDINGKAN DENGAN KONDISI SELANJUTNYA
if(hitung%2==0){ //MENGHITUNG JIKA HITUNGAN HABIS DIBAGI 2 MAKA LED MENYALA
digitalWrite(LED, HIGH); // MENYALAKAN LED
}else{
digitalWrite(LED, LOW); // MEMATIKAN LED
}
delay(50); //DELAY UNTUK KESTABILAN PROGRAM
}
Anda bisa membaca coding diatas. Alur Program :
- Membaca status GPIO 0 atau tombol Flash dalam keadaan HIGH atau LOW. Secara default jika tombol flash tidak ditekan maka akan menghasilkan output HIGH.
- Lalu membandingkan dengan status tombol yang tersimpan. Pada saat pertama kali dijalankan maka status tombol 0 atau LOW.
- Jika tombol flash ditekan atau status tombol LOW maka akan menambah sekali hitungan.
- Lalu menyimpan status tombol untuk dibandingkan dengan pembacaan status tombol awal.
- Menghitung jika hitungan habis dibagi 2 (disini menggunakan modulo) maka LED dinyalakan dan begitu sebaliknya jika tidak maka LED dimatikan.
Seperti itulah alur dari program sederhana menggunakan satu tombol untuk menyalakan dan mematikan LED pada Nodemcu. Anda bisa langsung mengupload program tersebut menggunakan arduino ide dan tunggu sampai proses upload selesai lalu lihat hasilnya.
Semoga Bermanfaat.



