4 LED dengan 4 Push Button Menyalakan dan Mematikan LED

Bintan News | 4 LED dengan 4 Push Button - Kalau utak atik arduino tidak ada habisnya, Sob! Kita akan membuat proyek Arduino menyalakan dan mematikan 4 LED dengan 4 Push Button. Jika sebelumnya saya sudah membuat proyek menyalakan dan mematikan led dengan 1 push button, kali ini lebih seru lagi. 
4 LED dengan 4 Push Button Menyalakan dan Mematikan LED
Untuk itu, kesempatan kali ini kita akan membuat proyek arduino 4 LED dengan 4 Push Button dalam menyalakan dan mematikannya. Prinsip kerja dari rangkaian kali ini mirip betul dengan proyek Menyalakan LED dengan Push Button, sampai-sampai sketchnya juga sangat persis. Hanya bedanya pada jumlah LED dan Push Button saja kita tambahin jadi 4 push button dan 4 LED.

Sekedar informasi saja, bahwa saya sudah mencoba beberapa yang sama dari internet. Semuanya tidak bisa berjalan dengan semestinya. Sehingga saya coba buat sendiri dengan memodifikasi project 1 led dan 1 push button. Berikut komponen yang kita perlukan untuk menghidupkan 4 LED dengan 4 push button :

Menyalakan dan Mematikan 4 LED dengan 4 Push Button 

Komponen untuk project arduino menyalakan dan mematikan 4 LED dengan 4 Push Button wajib anda sediakan. Karena hardware ini yang akan kita rekayasa dengan program arduino. Agar led dapat kita hidupkan dengan count tekanan push button.
  1. 4 Buah LED
  2. 8 Buah Resistor 220 Î© (Ohm)
  3. 4 Buah Push Button
  4. 8 buah kabel jumper male to male
  5. 4 buah kable kecil

Rangkaian Menghidupkan 4 LED dengan 4 Push Button Arduino

Sebagai sebuah project aduino yang paling mudah dikerjakan, kita butuh juga rangkaian. Karena hal ini akan menjadi pedoman kita dalam menyambung setiap komponen yang sudah kita siapkan sebelumnya.
Sambungan. Untuk gambarnya dapat anda lihat pada bagian berikutnya dibwah ini.
Adapun deskripsinya dari setiap hubungan dapat saya jelaskan pada bagian berikutnya dibawah ini. Kenapa saya jelaskan rangkaianya, agar tidak terjadi banyak pertanyaan dari para sobat semua tentang rangkaian.
  1. Kaki anoda LED 1 sambung ke pin 8
  2. Kaki anoda LED 2 sambung ke pin 9
  3. Kaki anoda LED 3 sambung ke pin 10
  4. Kaki anoda LED 4 sambung ke pin 11
  5. Katoda LED 1 hubungkan ke ke resistor 220 Ω (Ohm) kemudian pin GND arduino UNO
  6. Katoda LED 2 hubungkan ke ke resistor 220 Ω (Ohm) kemudian pin GND arduino UNO
  7. Katoda LED 3 hubungkan ke ke resistor 220 Ω (Ohm) kemudian pin GND arduino UNO
  8. Katoda LED 4 hubungkan ke ke resistor 220 Ω (Ohm) kemudian pin GND arduino UNO
  9. Kaki 1 Push Button 1 rangkai ke pin 2 arduino lalu ke resistor 220 Ω (Ohm) kemudian GND
  10. Kaki 1 Push Button 2 rangkai ke pin 2 arduino lalu ke resistor 220 Ω (Ohm) kemudian GND
  11. Kaki 1 Push Button 3 rangkai ke pin 2 arduino lalu ke resistor 220 Ω (Ohm) kemudian GND
  12. Kaki 1 Push Button 4 rangkai ke pin 2 arduino lalu ke resistor 220 Ω (Ohm) kemudian GND
  13. Pin 5V arduino koneksikan dengan kaki push button 1, 2, 3, 4
Adapun sketch atau program yang saya pakai dalam project arduino menyalakan 4 led dengan 4 push button kali ini dapat anda gunakan dibawah ini. Memang ini untuk 4 LED dengan 4 Push Button. Namun, saya hanya memodifikasinya dari script yang pernah saya buat. Silahkan lihat pada link dibawah ini.


Berikut program yang bisa anda pakai, antara lain:

Script Pertama (1)
int count;
int count2;
int count3;
int count4;
int count5;

int nilaibutton;
int nilaibutton2;
int nilaibutton3;
int nilaibutton4;
int nilaibutton5;

int Led;
int Led8 = 8;
int Led9 = 9;
int Led10 = 10;
int Led11 = 11;

int Button;
int Button2 = 2; // tombol untuk LED 10
int Button3 = 3; // tombol untuk LED 11
int Button4 = 4; // tombol untuk LED 12
int Button5 = 5; // tombol untuk LED 13


void setup(){  
   pinMode(Button2, INPUT);
   pinMode(Button3, INPUT);
   pinMode(Button4, INPUT);
   pinMode(Button5, INPUT);
   
   pinMode(Led8, OUTPUT);
   pinMode(Led9, OUTPUT);
   pinMode(Led10, OUTPUT);
   pinMode(Led11, OUTPUT);
}

void loop(){
   nilaibutton = digitalRead(Button);
   nilaibutton2 = digitalRead(Button2);
   nilaibutton3 = digitalRead(Button3);
   nilaibutton4 = digitalRead(Button4);
   nilaibutton5 = digitalRead(Button5);
  if (nilaibutton2 == 1) {
    count++;
    Serial.println(count);
    delay(300);
    if (count == 1) {
      digitalWrite(Led8, HIGH);
    }
    if (count == 2) {
      digitalWrite(Led8, LOW);
      count = 0;
    }
  }
 if (nilaibutton3 == 1) {
    count++;
    Serial.println(count);
    delay(300);
    if (count == 1) {
      digitalWrite(Led9, HIGH);
    }
    if (count == 2) {
      digitalWrite(Led9, LOW);
      count = 0;
    }
  }
 if (nilaibutton4 == 1) {
    count++;
    Serial.println(count);
    delay(300);
    if (count == 1) {
      digitalWrite(Led10, HIGH);
    }
    if (count == 2) {
      digitalWrite(Led10, LOW);
      count = 0;
    }
  }
 if (nilaibutton5 == 1) {
    count++;
    Serial.println(count);
    delay(300);
    if (count == 1) {
      digitalWrite(Led11, HIGH);
    }
    if (count == 2) {
      digitalWrite(Led11, LOW);
      count = 0;
    }
  }
}
Script Kedua (2)
Terdapat beberapa kelemahan dari program yang pertama, yaitu jumlah hitungan button menjadi satu dari ke empat push button.
const int led1 = 8;
const int led2 = 9;
const int led3 = 10;
const int led4 = 11;

const int button1 = 2;
const int button2 = 3;
const int button3 = 4;
const int button4 = 5;
 
int buttonState1, buttonState2, buttonState3, buttonState4;
int oldButton1, oldButton2, oldButton3, oldButton4 = 0;
int state1, state2, state3, state4 = 0;

void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);

pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(button4, INPUT_PULLUP);
}
void loop() {
buttonState1 = digitalRead(button1);
buttonState2 = digitalRead(button2);
buttonState3 = digitalRead(button3);
buttonState4 = digitalRead(button4);
 
if(!buttonState1 && !oldButton1){
if(state1 == 0){
digitalWrite(led1, HIGH);
state1 = 1;
}else{
digitalWrite(led1, LOW);
state1 = 0;
}
oldButton1 = 1;
}else if(buttonState1 && oldButton1){
oldButton1 = 0;
}
 
if(!buttonState2 && !oldButton2){
if(state2 == 0){
digitalWrite(led2, HIGH);
state2 = 1;
}else{
digitalWrite(led2, LOW);
state2 = 0;
}
oldButton2 = 1;
}else if(buttonState2 && oldButton2){
oldButton2 = 0;
}

if(!buttonState3 && !oldButton3){
if(state3 == 0){
digitalWrite(led3, HIGH);
state3 = 1;
}else{
digitalWrite(led3, LOW);
state3 = 0;
}
oldButton3 = 1;
}else if(buttonState3 && oldButton3){
oldButton3 = 0;
}

if(!buttonState4 && !oldButton4){
if(state4 == 0){
digitalWrite(led4, HIGH);
state4 = 1;
}else{
digitalWrite(led4, LOW);
state4 = 0;
}
oldButton4 = 1;
}else if(buttonState4 && oldButton4){
oldButton4 = 0;
}

}
Adapun kelebihan dari script kedua ini merupakan keempat tombol (push button) ini mandiri dan tidak mempengaruhi satu dengan lainnya.

Cara memeriksa Kerja rangkaian 4 LED dengan 4 Push Button

  1. Tekan tombol ) push button sekali, lampu harus hidup.
  2. Tekan lagi tombol yang sama (hitungan kedua), lampu LED harus mati.
  3. Lakukan hal yang sama terhadap push button kedua, ketiga, dan keempat.
  4. Pastikan semua bekerja sesuai dengan langkah 1 dan 2 diatas.
Hidup - 4 Push Button @ 4 Led

Keterangan Script/Sketch 4 Led dengan 4 Push button

Berikut akan saya coba jelaskan cara kerja sketch tersebut, namun, perlu anda pahami bahwa saya bukan ahlinya dalam hal ini. Saya juga mengajak anda untuk berkomentar terkait penjelasan saya mengenai cara kerja program tersebut.

1. int

Pada bagian paling atas sketch arduino adalah perintah int. Adapun proses yang terjadi disini adalah deklarasi/membuat/memunculkan bagian-bagian yang akan kita gunakan pada program ini. Dapat anda lihat, saya memunculkan int count, int nilaibutton; int Led; int Button. Artinya saya menginstuksikan kepada arduino untuk menciptakan 4 buah "ruangan" (ruangan count, nilaibutton, led, dan button).

2. void setup

Pada bagian ini saya menginstuksikan kepada arduino untuk mengarahkan PIN 2 dengan perintah pinMode(Button2, INPUT) agar menjadi input, PIN 3 saya arahkan menjadi input dengan program pinMode(Button3, INPUT), PIN 4 dengan pinMode(Button4, INPUT), PIN 5 pada arduino atau pinMode(Button5, INPUT). Sementara PIN 8 pada arduino saya arahkan dengan perintah pinMode(Led8, OUTPUT) agar menjadi output, PIN 9 saya perintahkan dengn pinMode(Led9, OUTPUT) menjadi output juga, PIN 10 pinMode(Led10, OUTPUT), PIN 11 dengan perintah pinMode(Led11, OUTPUT) menjadi keluaran.

3. void loop

Lalu pada bagian void loop saya perintahkan arduino untuk membuat hitungan untuk setiap tombol dihitung sampai dua hitungan saja. Begitu hitungan kedua (2) tercapai, arduino akan langsung mereset hitungan kembali ke nol (0). Dengan kondisi, hitungan 1 akan membuat lampu LED hidup, lalu hitungan kedua (2) akan memadamkan LED.

if (nilaibutton5 == 1) {
    count++;
    Serial.println(count);
    delay(300);
    if (count == 1) {
      digitalWrite(Led11, HIGH);
    }
    if (count == 2) {
      digitalWrite(Led11, LOW);
      count = 0;
Dapat anda lihat pada script diatas, nilaibutton5 == 1 adalah mendeteksi tekanan push button. Tekanan ini akan dihitung oleh perintah count++ dan disimpan dalam memori "ruangan" yang kita ciptakan tadi pada bagian int.

Warning!!!
Selalu gunakan resistor pada bagian signal push button, pada rangkaian ini kabel yang terhubung antara PIN 2, 3, 4, 5 dengan push button. Alasannya adalah pin ini hanya memerlukan signal (tegangan ) yang sangat kecil. Apabila diberi signal (tegangan) yang besar, arduino akan error, lampu LED kedip-kedip.

Anda juga bisa menambahkan tiga LED sehingga menghidupkan 4 LED dengan 1 tombol saja. Boleh juga anda pelajari, agar memperdalam pemahaman anda akan program arduino.

Dibawah ini video tutorial dan penjelasan lebih lengkapnya mengenai menyalakan 4 LED dengan 4 tombol arduino. Jangan lupa SUBSCRIBE, ya!

Advance Learning:

Anda dapat menjadikan project arduino menyalakan 4 led dengan 4 push button ini pada rangkaian intalasi listrik rumah. Dimana, nantinya saklar yang biasa kita gunakan dirumah digantikan oleh push button. Lalu komponen LED pada rangkaian kita sekarang diubah menjadi modul relay 4 channel.

Apalagi kalau anda bisa membuatkan papan PCBnya dengan bagus dan minimalis, keren banget dah! Nanti rumah anda sudah mirip dengan rumah 4.0 yang lagi trend sekarang ini. | Wasdiman Sigalingging