Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Selasa, 12 Mei 2026

Arduino Button - Cara Menggunakan Push Button dengan Arduino UNO

Push button atau tombol tekan adalah salah satu komponen paling dasar dalam dunia elektronika dan proyek Arduino. Meskipun terlihat sederhana, banyak pemula yang masih bingung saat mencoba membaca status tombol menggunakan Arduino. Biasanya masalah muncul karena pembacaan pin yang tidak stabil atau tombol yang terbaca ditekan berkali-kali padahal hanya ditekan sekali. Pada artikel ini, kita akan mempelajari cara kerja push button, cara menghubungkannya ke Arduino UNO, hingga cara membaca status tombol menggunakan kode program Arduino. Selain itu, artikel ini juga membahas konsep pull-up resistor, floating input, dan fenomena bouncing agar hasil pembacaan tombol menjadi lebih stabil dan akurat.

Perangkat Keras yang Dibutuhkan

- Arduino UNO R3

- Kabel USB

- Breadboard

- Kabel jumper

- Push button / tombol tekan

- Panel push button

- Modul push button

- LED (opsional)

Mengenal Push Button Arduino

Push button, tactile switch, atau momentary switch adalah jenis sakelar yang hanya aktif saat ditekan. Ketika tombol dilepas, sakelar akan kembali ke posisi semula. Komponen ini sering digunakan pada berbagai proyek Arduino, seperti:

- Sistem menu

- Kontrol LED

- Alarm sederhana

- Robot

- Sistem keamanan

- Kontrol motor

Jenis-jenis Push Button

1. Push Button Breadboard

Jenis ini paling sering digunakan pada proyek Arduino pemula karena mudah dipasang di breadboard.

2. Push Button Panel

Biasanya digunakan pada proyek permanen atau casing proyek elektronik.

3. Modul Push Button

Modul ini sudah dilengkapi resistor bawaan sehingga lebih praktis digunakan.

Pinout Push Button

Push button standar biasanya memiliki 4 pin. Namun sebenarnya pin-pin tersebut terhubung secara internal menjadi dua pasang. Oleh karena itu, kita hanya perlu menggunakan 2 pin saja yang tidak terhubung langsung.

Pinout Push Button

Kenapa Push Button Memiliki 4 Pin?

Empat pin dibuat agar tombol lebih kokoh saat dipasang pada PCB atau breadboard sehingga tidak mudah goyang ketika ditekan.

Cara Kerja Push Button


Push button bekerja sangat sederhana:

- Saat tombol tidak ditekan, kedua jalur tidak terhubung

- Saat tombol ditekan, kedua jalur menjadi terhubung

Arduino kemudian membaca perubahan kondisi tersebut melalui pin input digital.

Modul Push Button Arduino

Berbeda dengan push button biasa, modul push button sudah memiliki resistor bawaan sehingga lebih mudah digunakan.

Modul ini biasanya memiliki tiga pin:

- GND → dihubungkan ke GND Arduino

- VCC → dihubungkan ke 5V Arduino

- OUT → dihubungkan ke pin digital Arduino

Karena sudah memiliki resistor internal, output modul akan:

- LOW saat tombol tidak ditekan

- HIGH saat tombol ditekan

Arduino dan Push Button

Untuk membaca status tombol, salah satu kaki tombol dihubungkan ke pin Arduino, sedangkan kaki lainnya dihubungkan ke:

- VCC menggunakan resistor pull-down

  atau

- GND menggunakan resistor pull-up

Arduino kemudian membaca status pin menggunakan fungsi:

 

digitalRead()

 

Masalah yang Sering Dialami Pemula

Ada dua masalah utama yang sering terjadi saat menggunakan push button pada Arduino.

1. Floating Input

- Gejala

Nilai pembacaan tombol tidak stabil meskipun tombol tidak ditekan.

- Penyebab

Pin input tidak menggunakan resistor pull-up atau pull-down.

- Solusi

Gunakan resistor pull-up atau resistor pull-down.

2. Button Bouncing

- Gejala

Tombol ditekan satu kali tetapi Arduino membaca beberapa kali.

- Penyebab

Kontak mekanis pada tombol tidak langsung stabil sehingga menghasilkan perubahan HIGH dan LOW sangat cepat.

- Solusi

Gunakan teknik:

- Debounce

- Delay kecil

- Library khusus seperti ezButton

Pull-Up dan Pull-Down Resistor

Ada dua metode umum untuk menghubungkan push button ke Arduino.

1. Menggunakan Pull-Down Resistor

Pada metode ini:

- Tombol terhubung ke VCC

- Pin Arduino membaca:

  - HIGH saat ditekan

  - LOW saat dilepas

Metode ini memerlukan resistor eksternal.

2. Menggunakan Pull-Up Resistor

Pada metode ini:

- Tombol terhubung ke GND

- Pin Arduino membaca:

  - LOW saat ditekan

  - HIGH saat dilepas

Metode ini bisa menggunakan resistor internal Arduino melalui mode INPUT_PULLUP

Kenapa INPUT_PULLUP Lebih Disarankan?

Bagi pemula, metode ini jauh lebih mudah karena:

- Tidak perlu resistor eksternal

- Wiring lebih sederhana

- Pembacaan lebih stabil

Oleh karena itu, tutorial ini menggunakan metode INPUT_PULLUP.

Wiring Diagram

Pada tutorial ini terdapat dua jenis wiring:

- Wiring push button breadboard

- Wiring push button panel

Hubungkan salah satu kaki tombol ke:

- Pin digital Arduino

- GND Arduino

 

Cara Membaca Tombol pada Arduino

1. Mengatur Pin Input

Gunakan fungsi:

 

pinMode(BUTTON_PIN, INPUT_PULLUP);

 

Contoh:

 

pinMode(7, INPUT_PULLUP);

 

2. Membaca Status Tombol

Gunakan fungsi:

 

digitalRead(BUTTON_PIN);

 

Contoh:

 

int buttonState = digitalRead(BUTTON_PIN);

 

Mendeteksi Perubahan Status Tombol

Pada beberapa proyek, kita tidak hanya perlu mengetahui tombol ditekan atau tidak, tetapi juga kapan status tombol berubah.

Contohnya:

- LOW → HIGH

- HIGH → LOW

Contoh Program Deteksi Perubahan Tombol


const int BUTTON_PIN = 7;


int lastState = HIGH;

int currentState;


void setup() {

  Serial.begin(9600);


  pinMode(BUTTON_PIN, INPUT_PULLUP);

}


void loop() {

  currentState = digitalRead(BUTTON_PIN);


  if(lastState == LOW && currentState == HIGH)

    Serial.println("Status berubah dari LOW ke HIGH");


  lastState = currentState;

}

 

Penjelasan Program

Program di atas bekerja dengan cara:

1. Membaca status tombol saat ini

2. Membandingkan dengan status sebelumnya

3. Jika terjadi perubahan, Arduino akan menampilkan pesan ke Serial Monitor

Teknik ini sering digunakan untuk:

- Counter

- Toggle LED

- Menu navigasi

- Sistem kontrol

Kode Program Arduino Push Button

Berikut contoh program sederhana untuk membaca status tombol.

 

const int BUTTON_PIN = 7;


void setup() {

  Serial.begin(9600);


  pinMode(BUTTON_PIN, INPUT_PULLUP);

}


void loop() {

  int buttonState = digitalRead(BUTTON_PIN);


  Serial.println(buttonState);

}

 

Cara Menjalankan Program

Langkah-langkah menjalankan program sebagai berikut:

1. Hubungkan Arduino ke PC menggunakan kabel USB

2. Buka Arduino IDE

3. Pilih board dan port yang sesuai

4. Salin kode program

5. Upload program ke Arduino

6. Buka Serial Monitor

7. Tekan tombol beberapa kali

Hasil yang Akan Muncul

Pada Serial Monitor:

- 1 berarti HIGH

- 0 berarti LOW

Karena menggunakan INPUT_PULLUP, maka:

- Tombol ditekan → LOW

- Tombol dilepas → HIGH

Memodifikasi Program Arduino

Sekarang kita akan membuat Arduino mendeteksi:

- Tombol ditekan

- Tombol dilepas

Kode Program Detect Press dan Release

 

const int BUTTON_PIN = 7;


int lastState = LOW;

int currentState;


void setup() {

  Serial.begin(9600);


  pinMode(BUTTON_PIN, INPUT_PULLUP);

}


void loop() {

  currentState = digitalRead(BUTTON_PIN);


  if(lastState == HIGH && currentState == LOW)

    Serial.println("Tombol ditekan");


  else if(lastState == LOW && currentState == HIGH)

    Serial.println("Tombol dilepas");


  lastState = currentState;

}

 

Cara Kerja Program

Program akan:

- Menampilkan pesan saat tombol ditekan

- Menampilkan pesan saat tombol dilepas

Teknik ini sering dipakai pada:

- Sistem menu

- Kontrol robot

- Kontrol game

- Smart home

Fenomena Bouncing pada Push Button

Kadang tombol ditekan sekali tetapi Arduino mendeteksi berkali-kali. Hal ini disebut "Button Bouncing".Penyebabnya adalah kontak mekanis tombol yang tidak langsung stabil.

Cara Mengatasi Bouncing

Beberapa metode yang bisa digunakan:

- Delay kecil

- Debounce manual

- Menggunakan library

- Menggunakan state machine

Library ezButton

Untuk mempermudah penggunaan tombol, tersedia library ezButton. Library ini membantu:

- Debounce otomatis

- Pembacaan lebih stabil

- Kode lebih rapi

Sangat cocok untuk pemula maupun proyek besar.

Penggunaan INPUT untuk Modul Button

Jika menggunakan modul button yang sudah memiliki resistor bawaan, gunakan:

 

pinMode(BUTTON_PIN, INPUT);

 

Karena modul sudah menyediakan pull-up atau pull-down internal.

Tantangan untuk Dicoba

Agar lebih memahami penggunaan push button, coba buat proyek berikut:

- Menyalakan LED saat tombol ditekan

- Mematikan LED saat tombol dilepas

- Membuat toggle LED

- Membuat counter jumlah penekanan tombol

- Membuat menu sederhana

Kapan Harus Menggunakan Pull-Up atau Pull-Down?

Gunakan resistor pull-up/pull-down jika sensor memiliki kondisi:

- Terhubung

  atau

- Tidak terhubung

Contohnya:

- Push button

- Sakelar

- Sensor pintu magnetik

Kapan Tidak Membutuhkan Pull-Up atau Pull-Down?

Jika sensor sudah menghasilkan level tegangan yang jelas:

- LOW

- HIGH

Maka resistor tambahan tidak diperlukan.

Contohnya:

- Sensor gerak

- Sensor sentuh

- Sensor ultrasonik

- Modul relay

 

Baca juga: Arduino Traffic Light - Cara Membuat Simulasi Lampu Lalu Lintas dengan Arduino 

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.  

0 on: "Arduino Button - Cara Menggunakan Push Button dengan Arduino UNO"