Program Arduino: Digital Read Push Button!

Hari ini kita akan mencoba membuat Program untuk Push Button, komponen elektronika jenis Saklar yang pernah terbahas di Komponen Dasar Elektronika. Dimana kita mengetahui bahwa Push Button ketika kita tekan akan menghubungkan arus listrik, dan terputus apabila dilepas (tidak ditekan).

Saat ini kita akan membuat program sederhana untuk Push Button dengan logika program, “Jika button ditekan LED menyala, jika tidak LED mati.

Yang harus kamu siapkan;

1x Arduino
1x Breadboard
1x Push button
1x LED
1x Resitor 10k
1x Resistor 220ohm
7x Kabel jumper

Buatlah rangkain seperti gambar dibawah ini...

Rangkaian Untuk Push Button

NOTES:    
  • Hubungkan 5V dan GND dari Arduino ke Breadboard.
  • Hubungkan kaki pertama button ke 5V dan kaki ke-2 ke kaki pertama resitor 10k.
  • Hubungkan kaki ke-2 resistor 10k ke GND.
  • Hubungkan pin 2 Arduino ke kaki ke-2 button.
  • Untuk LED rangkaiannya tidak jauh berbeda dengan pembahasan sebelumnya.

Untuk sketch-nya kamu bisa ambil sampel pada FILE=>EXAMPLES=>DIGITAL=>BUTTON. Atau salin ulang program dibawah ini;
int buttonPin = 2;            // membuat variabel buttonPin untuk pin 2
int ledPin =  13;              // membuat variabel ledPin untuk pin 13
int buttonState = 0;         // variabel untuk posisi awal button agar dibaca LOW

void setup() {
  pinMode(ledPin, OUTPUT);    // membuat ledPin menjadi OUTPUT
  pinMode(buttonPin, INPUT);     // membuat buttonPin menjadi INPUT
}

void loop() {
 buttonState = digitalRead(buttonPin);     // membuat variabel buttonState untuk mengambil
                                                                 nilai dari buttonPin

if (buttonState == HIGH) {         // Jika nilai buttonPin = HIGH
    digitalWrite(ledPin, HIGH);      // maka ledPin akan menyala
  }
  else {                                         // Jika tidak
  digitalWrite(ledPin, LOW);         // maka ledPin akan mati
  }
}

NOTES:     
  • Variabel int buttonState=0;  digunakan untuk menentukan nilai awal yang terbaca adalah 0 atau LOW.    
  • Variabel baru buttonState = digitalRead(buttonPin);  digunakan untuk menyimpan nilai baca dari buttonPin kedalam variabel buttonState.
  • digitalRead sendiri berfungsi untuk membaca nilai sensor secara digital (LOW=GND, HIGH=5V).
  •  if (buttonState == HIGH) digunakan untuk menampilkan jika nilai dari buttonState adalah HIGH, maka lampu LED akan menyala digitalWrite(ledPin, HIGH);
  • else jika tidak maka lampu LED akan mati digitalWrite(ledPin, LOW);

MARI LEBIH KREATIF!!!
Dengan rangkaian yang sama, kamu bisa membuat sketch program seperti;
  1. Jika button ditekan lampu LED mati, jika tidak menyala.
  2. Jika button ditekan lampu LED berkedip, jika tidak hanya menyala.
  3. Jika button ditekan lampu LED berkedip cepat, jika tidak berkedip lambat.
 Jika ada yang masih kurang jelas, kamu bisa buka dulu:

Pemograman Dasar Arduino, Komponen Dasar Elektronika, Program Arduino: BLINK!, dan Program Arduino: Blink 3 LED. Karena kelas yang ini, merupakan kelas lanjutan dari sebelumnya :)

Atau jika masih kurang jelas juga, langsung aja isi di Kotak Komentar ya. Jangan malu-malu ;)

22 Responses to "Program Arduino: Digital Read Push Button!"

  1. Makasih banget gan tutornya

    BalasHapus
  2. Untuk menulis program int didalam void setup/void loop ? Terimakasih

    BalasHapus
    Balasan
    1. Bisa bro... Program variabel int, long,char, dll bisa di tulis didlam void setup, atau void loop... tapi disarankan diluar aja...

      Hapus
  3. Om, jika tombol di tekan maka led akan hidup, dan jika di lepas led akan mati, Tapi jika tombol di tekan lama berarti g bisa mati ya om, trus kalo pengen bisa mati sendiri tidak tanpa melepas tombol gimana om bahasa programnya?

    BalasHapus
    Balasan
    1. Saat di tekan led menyala, dan akan mati sendiri tanpa melepas tombolnya. Tambahkan saja pada ini..

      if (buttonState == HIGH) {
      digitalWrite(ledPin, HIGH);
      delay(5000);
      digitalWrite(ledPin, LOW);
      }

      program diatas led akan mati setelah 5 detik, tanpa harus dilepas tombolnya...

      Hapus
  4. Push button knp pake resistor 10k ohm

    BalasHapus
    Balasan
    1. Supaya gak ada Bounce, gak pake 10 k juga masih bisa pake 1k, intinya harus pake resistor biar aman juga...

      Hapus
  5. om kalo push button 1 stelah ditekan led 1 menyala terus menerus mekipun push button 1 di lepas gmana??

    BalasHapus
  6. Kalo saya amati R10k itu melakukan shorting beberapa persen ketika button ditekan, apa itu benar. dan apa tujuannya ? Bukankah tanpa itu Arduino akan tetap berjalan normal

    BalasHapus
    Balasan
    1. Gak ko gan, menurut pengalaman saya justru R10k ini membuat buttonnya stabil tanpa adanya bounce,,, silahkan dicoba aja gan...

      Hapus
    2. kalo shorting berati ada masalah sama rangkaian agannya, coba periksa kembali dan sesuaikan dengan tutorial diatas ;)

      Hapus
  7. Mau tanya mas,, kalo tombol di tekan led akan nyala dan tombol di lepas led tetap nyala sampai di tekan lg tombolnya baru led mati,,

    BalasHapus
    Balasan
    1. 1 button dengan 2 fungsi ya! harus pake program count, biar jelas nanti saya posting saja tutorialnya :)

      Hapus
  8. mau tanya mas, kalo ketika pushbutton ditekan sekali, led menyala. jika pushbutton ditekan lagi led berkedip. itu gimana ya?

    BalasHapus
  9. Mas saya ada tugas nih.
    Kalo kita menggunakan 2 led tapi menggunakan 1 button..
    Kita tekan button lampu led1 huidup.. lalu kita tekan button led 1 mati.. kita tekan lagi button led 2 yang hidup.. bagaimana program nya mas?

    BalasHapus
  10. Mas...mw tanya...
    Jika button 1 di tekan, maka led dan button 2 aktif dengan delay 5000, sebelum mencapai delay 5000..button 2 di tekan, maka led mati, kemudian button 2 di lepas...led nyala lagi sampai delay habis...gimana programnya ya mas ?

    BalasHapus
  11. Mas...mw tanya...
    Jika button 1 di tekan, maka led dan button 2 aktif dengan delay 5000, sebelum mencapai delay 5000..button 2 di tekan, maka led mati, kemudian button 2 di lepas...led nyala lagi sampai delay habis...gimana programnya ya mas ?

    BalasHapus
  12. Mkasih turialnya mas sngat membantu sekali, mw nnya mas, klw mw bikin led ny on pda saat pushbutton di tekan sekali hingga pushbutton dilepas lednya ny tetap on,dan untuk meng off kannya, button ny ditekan lagi, gimna program nya tu mas, mohon bantuanya..

    BalasHapus
  13. Mas ane minta ilmunya, bagaimana cara menyalakan lednya, dengan cara pencet tombol sebanyak 5 kali baru lednya nyala.
    Minta tolong di bantu mas.

    BalasHapus
  14. mas kalo ini ketika saklar HIGH nyala lednya 20% contonya itu gimana mass?

    BalasHapus