Program Push Button Untuk Memilih Led Berjalan Dengan Arduino Uno

Alhamdulillah akhirnya sekarang dapat kesempatan untuk berbagi inovasi program running led / led berjalan dengan menggunakan push button sebagai pemilih model running led dengan Kit Arduino Uno.

Meski sudah banyak led-led lampu hias yang beredar di sekitar kita, tidak ada salahnya jika kita mencoba program dasarnya dengan mikrokontroler. Saya rasa ini sangat cocok bagi pemula seperti saya yang ingin memperlancar dalam pemrograman.

Di bawah ini adalah contoh running led wujud implementasi push button dalam LED berjalan yang bisa kita temui sehari - hari.

Running LED di Pasaran Dengan Tombol

Dalam contoh di atas push button digunakan untuk memilih jenis nyala LED yang terdiri dari berbagai macam pilihan.

Kesempatan ini saya akan coba menguraikan bagaimana mengimplementasikan push button untuk memilih nyala LED dalam rangkaian running led dengan Arduino Uno. Untuk itu saya akan coba membuat rangkaian sederhananya dan juga programnya.

Gambar Rangkaian Implementasi Push Button Dalam Running LED Arduino Uno

Skema Running LED dengan Input Tombol

Kurang lebih gambar rangkaian yang telah saya buat dengan software proteus seperti di atas. Input berupa push button dengan resistor pull down yang terhubung ke pin 12 arduino uno dan difungsikan sebagai input. 

Arduino Uno sebagai pemroses program yang telah diupload ke dalam prosesornya.

Outputnya berupa LED 1 sampai LED 5 dengan menggunakan resistor pembatas arus sebesar 220 Ohm. Pin arduino yang terhubung ke LED 1 sampai LED 5 berturut-turut adalah pin 2 - pin 6.

Komponen dan Fungsinya

  • Push Button : Input
  • Arduino Uno : Pemroses program
  • LED : Output
  • R11 : Pull Down Input Arduino
  • R1 - R5 : Pembatas Arus LED 1 - LED 5

Cara Kerja Secara Singkat

Cara kerja dari implementasi push button untuk running led ini dapat sedikit saya jelaskan sebagai berikut :

  1. Ketika Arduino Uno menyala maka program model running LED 1 akan langsung dijalankan.
  2. Jika tombol ditekan maka program akan berpindah ke program model LED 2.
  3. Jika tombol ditekan lagi maka program akan berpindah ke model running LED 3.
  4. Dan jika dari model LED 3 ditekan lagi tombolnya, maka model LED 1 akan dijalankan kembali, dan terus berulang.

Di bawah ini akan saya bagikan contoh program yang telah saya buat untuk melakukan pekerjaan di atas.

Program Push Button Dengan Fungsi while() Untuk Memilih Jenis Running LED

/*
Menggunakan perulangan while
Memilih model running led dengan push button
www.herwanto.my.id
*/
const int pinTombol =12;
const int led1 =2;
const int led2 =3;
const int led3 =4;
const int led4 =5;
const int led5 =6;

int pencetTombol = 0;

void setup() {

  pinMode(led1,OUTPUT);  //led1 output
  pinMode(led2,OUTPUT);  //led1 output
  pinMode(led3,OUTPUT);  //led1 output
  pinMode(led4,OUTPUT);  //led1 output
  pinMode(led5,OUTPUT);  //led1 output

  pinMode(pinTombol,INPUT);      //pinTombol sebagai input
}

void loop() {
//program pilihan pertama 
while(pencetTombol==0){

  digitalWrite(led1,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led2,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led3,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led4,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led5,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led5,LOW);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led4,LOW);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led3,LOW);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
  digitalWrite(led2,LOW);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }
  
  digitalWrite(led1,LOW);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  
}
//akhir program pilihan pertama 

//program pilihan kedua
while(pencetTombol==1){
  digitalWrite(led1,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=2;
  }
  digitalWrite(led2,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=2;
  }
  digitalWrite(led3,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=2;
  }
  digitalWrite(led4,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=2;
  }
  digitalWrite(led5,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=2;
  }
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=2;
  }
}
//akhir program pilihan kedua


//program pilihan ketiga
while(pencetTombol==2){
  digitalWrite(led5,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=0;
  }

  digitalWrite(led4,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=0;
  }


  digitalWrite(led3,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=0;
  }

  digitalWrite(led2,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=0;
  }

  digitalWrite(led1,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=0;
  }

  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);
  delay(500);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=0;
  }
  
}

}//loop akhir

Penjelasan Singkat Sketch / Program

Saya akan hanya akan menuliskan bagian-bagian yang saya anggap penting dalam program tersebut. Langsung saja kita akan membahas program dalam fungsi loop().

Bagian Program Pilihan Pertama

Terdapat list program seperti di bawah ini :

//program pilihan pertama 
while(pencetTombol==0){
  digitalWrite(led1,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  digitalWrite(led2,HIGH);
  delay(200);
  while(digitalRead(pinTombol)==HIGH){
    pencetTombol=1;
  }

  1. Pada bagian perintah while(pencetTombol==0){ ... }(kurung kurawal tutup pilihan program pertama) digunakan untuk mengecek apakah nilai pencetTombol = 0, selama kondisi pencet tombol = 0 maka akan menjalankan program pilihan pertama. Hal ini juga sama untuk pilihan program yang kedua dan ketiga. Dengan perintah while(pencetTombol==1){ ... }(kurung kurawal tutup pilihan program kedua) untuk mengeksekusi program running led ke 2, dan while(pencetTombol==2){ ... }(kurung kurawal tutup pilihan program ketiga).
  2. Dalam sela-sela perintah atau statemen untuk menyalakan LED ( digitalWrite ) dan tepatnya setelah fungsi delay terdapat fungsi while :
    1. Fungsi dalam program pertama
      while(digitalRead(pinTombol)==HIGH){
          pencetTombol=1;
       }
      Fungsi tersebut akan memeriksa input tombol apakah tombol kondisi HIGH, jika iya maka variabel pencetTombol akan diubah nilainya menjadi 1 dan program running LED 1 akan keluar program pilihan ke 2 akan di eksekusi.
    2. Fungsi dalam program kedua
      while(digitalRead(pinTombol)==HIGH){
          pencetTombol=2;
       }
      Fungsi tersebut akan memeriksa input tombol apakah tombol kondisi HIGH, jika iya maka variabel pencetTombol akan diubah nilainya menjadi 2 dan program running LED 2 keluar menuju program pilihan ketiga.
    3. Fungsi dalam program pertama
      while(digitalRead(pinTombol)==HIGH){
          pencetTombol=0;
       }
      Fungsi tersebut akan memeriksa input tombol apakah tombol kondisi HIGH, jika iya maka variabel pencetTombol akan diubah nilainya menjadi 0 dan program running LED 3 keluar kembali ke program pilihan pertama

Penutup

Baiklah itu tadi sedikit catatan saya mengenai program yang saya buat, jika mungkin dalam penjelasannya ada kesalahan atau kekurangannya mohon dengan sangat untuk kebaikan saran perbaikannya. Terima kasih, semoga bermanfaat.