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

Rabu, 20 Mei 2026

Arduino Button Piezo Buzzer - Cara Mengontrol Buzzer dengan Tombol Menggunakan Arduino UNO

Pada proyek elektronika dan IoT, piezo buzzer sering digunakan sebagai komponen output suara untuk memberikan notifikasi, alarm, maupun efek audio sederhana. Dengan bantuan Arduino UNO, kita dapat mengontrol buzzer menggunakan tombol tekan sehingga buzzer dapat berbunyi hanya saat tombol ditekan atau bahkan memainkan sebuah melodi tertentu. Pada tutorial ini, kita akan mempelajari cara menggunakan Arduino Button Piezo Buzzer dengan mudah. Tutorial ini cocok untuk pemula yang sedang belajar dasar input dan output pada Arduino karena menggabungkan penggunaan tombol sebagai input dan buzzer sebagai output suara. Secara umum, kita akan mempelajari tentang cara membuat piezo buzzer berbunyi saat tombol ditekan, cara menghentikan suara buzzer saat tombol dilepas, cara memainkan melodi menggunakan piezo buzzer dan Arduino, dan cara kerja fungsi tone() dan noTone() pada Arduino.

Perangkat Keras yang Dibutuhkan

- Arduino UNO R3

- Kabel USB

- Breadboard

- Kabel jumper

- Modul tombol tekan

- Piezo buzzer 3-24V

- Modul buzzer piezo aktif

- Modul buzzer piezo pasif 

Buzzer aktif biasanya hanya menghasilkan bunyi sederhana ketika diberi tegangan, sedangkan buzzer pasif dapat memainkan nada dan melodi menggunakan fungsi tone().

 

Baca juga: Arduino Button Toggle Relay dengan dan tanpa Debouncing 

Wiring Diagram Arduino Piezo Buzzer


Mengenal Piezo Buzzer

Piezo buzzer adalah komponen elektronik yang dapat menghasilkan suara ketika diberikan sinyal listrik. Komponen ini banyak digunakan pada alarm, bel elektronik, sistem notifikasi, indikator suara, proyek IoT, dan robotika. Dalam Arduino, buzzer biasanya dikendalikan menggunakan pin digital output. Terdapat dua jenis piezo buzzer yang umum digunakan:

1. Active Buzzer → langsung berbunyi ketika diberi tegangan.

2. Passive Buzzer → membutuhkan sinyal frekuensi agar dapat menghasilkan nada tertentu. 

Cara Kerja Arduino Button Piezo Buzzer

Pada project ini, push button digunakan sebagai input digital, sedangkan piezo buzzer berfungsi sebagai output suara. Ketika tombol ditekan, Arduino akan membaca perubahan status pada tombol lalu mengaktifkan buzzer sehingga buzzer dapat menghasilkan bunyi atau melodi sesuai program yang dibuat.

Alur kerjanya:

- Arduino membaca status push button

- Saat tombol ditekan, Arduino mendeteksi input

- Arduino mengaktifkan piezo buzzer

- Buzzer mengeluarkan suara atau nada

Tutorial ini menggunakan mode INPUT_PULLUP, sehingga logika tombol menjadi terbalik:

- Tombol tidak ditekan → bernilai HIGH

- Tombol ditekan → bernilai LOW

Kode Program Arduino Piezo Buzzer Suara Sederhana

Kode berikut digunakan untuk membuat buzzer berbunyi selama tombol ditekan.

 

const int BUTTON_PIN = 2; // Arduino pin connected to button's pin

const int BUZZER_PIN = 4; // Arduino pin connected to buzzer's pin


void setup() {

  Serial.begin(9600);


  pinMode(BUTTON_PIN, INPUT_PULLUP);

  pinMode(BUZZER_PIN, OUTPUT);

}


void loop() {

  int buttonState = digitalRead(BUTTON_PIN);


  if (buttonState == LOW) {

    Serial.println("The button is being pressed");

    digitalWrite(BUZZER_PIN, HIGH); // buzzer ON

  }

  else {

    Serial.println("The button is unpressed");

    digitalWrite(BUZZER_PIN, LOW); // buzzer OFF

  }

}


Penjelasan Program

Pada bagian awal program, kita menentukan pin tombol dan buzzer.

 

const int BUTTON_PIN = 2;

const int BUZZER_PIN = 4;


Pin tombol diatur menggunakan mode INPUT_PULLUP.

 

pinMode(BUTTON_PIN, INPUT_PULLUP);


Dengan mode ini, kita tidak memerlukan resistor eksternal tambahan karena Arduino sudah menggunakan resistor pull-up internal.

Arduino kemudian membaca status tombol menggunakan:

 

digitalRead(BUTTON_PIN);


Jika tombol ditekan, buzzer akan diaktifkan:

 

digitalWrite(BUZZER_PIN, HIGH);


Jika tombol dilepas, buzzer dimatikan:

 

digitalWrite(BUZZER_PIN, LOW);

 

Langkah Pengujian

- Hubungkan Arduino ke komputer menggunakan kabel USB.

- Buka Arduino IDE.

- Pilih board dan port yang sesuai.

- Salin kode program ke Arduino IDE.

- Klik tombol Upload.

- Tekan dan tahan tombol beberapa detik.

- Dengarkan suara buzzer.    

Saat tombol ditekan, buzzer akan berbunyi. Ketika tombol dilepas, suara buzzer akan berhenti.

Membuat Melodi dengan Piezo Buzzer Arduino

Selain menghasilkan bunyi sederhana, buzzer pasif juga dapat memainkan melodi menggunakan fungsi tone(). Fungsi tone() digunakan untuk menghasilkan frekuensi tertentu sehingga buzzer dapat memainkan nada musik.

Kode Program Arduino Piezo Buzzer Melodi

#include "pitches.h"


const int BUTTON_PIN = 2;

const int BUZZER_PIN = 4;


// notes in the melody:

int melody[] = {

  NOTE_E5, NOTE_E5, NOTE_E5,

  NOTE_E5, NOTE_E5, NOTE_E5,

  NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5,

  NOTE_E5,

  NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5,

  NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5,

  NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5,

  NOTE_D5, NOTE_G5

};


// note durations

int noteDurations[] = {

  8, 8, 4,

  8, 8, 4,

  8, 8, 8, 8,

  2,

  8, 8, 8, 8,

  8, 8, 8, 16, 16,

  8, 8, 8, 8,

  4, 4

};


void setup() {

  Serial.begin(9600);


  pinMode(BUTTON_PIN, INPUT_PULLUP);

}


void loop() {

  int buttonState = digitalRead(BUTTON_PIN);


  if (buttonState == LOW) {

    Serial.println("The button is being pressed");

    buzzer();

  }

}


void buzzer() {

  int size = sizeof(noteDurations) / sizeof(int);


  for (int thisNote = 0; thisNote < size; thisNote++) {


    int noteDuration = 1000 / noteDurations[thisNote];


    tone(BUZZER_PIN, melody[thisNote], noteDuration);


    int pauseBetweenNotes = noteDuration * 1.30;


    delay(pauseBetweenNotes);


    noTone(BUZZER_PIN);

  }

}


Penjelasan Fungsi tone() dan noTone()

Fungsi berikut digunakan untuk memainkan nada:

 

tone(BUZZER_PIN, melody[thisNote], noteDuration);


Parameter:

- BUZZER_PIN → pin buzzer

- melody[thisNote] → frekuensi nada

- noteDuration → durasi nada  

Sedangkan fungsi berikut digunakan untuk menghentikan suara:

 

noTone(BUZZER_PIN);


Membuat File pitches.h

Sebelum program melodi dijalankan, kita perlu membuat file tambahan bernama pitches.h yang berisi daftar frekuensi nada musik. File ini digunakan agar Arduino dapat mengenali konstanta nada seperti NOTE_C5, NOTE_D5, NOTE_E5, dan nada lainnya. Cara membuatnya cukup mudah, yaitu dengan klik ikon panah kecil pada Arduino IDE, kemudian pilih New Tab, lalu beri nama file pitches.h. Setelah itu, tempelkan daftar frekuensi nada ke dalam file tersebut.

 

Dengan adanya file pitches.h, penulisan program melodi menjadi lebih rapi dan mudah dipahami karena kita tidak perlu menuliskan angka frekuensi nada secara manual. Arduino cukup memanggil nama nada yang sudah tersedia di dalam file tersebut.

Kelemahan Penggunaan delay()

Program melodi di atas menggunakan fungsi delay(pauseBetweenNotes);. Penggunaan delay() akan menghentikan sementara proses program lainnya. Akibatnya, Arduino tidak dapat membaca sensor lain selama melodi dimainkan, tombol lain bisa terlambat dibaca, dan sistem multitasking menjadi terbatas. Untuk proyek yang lebih kompleks, disarankan menggunakan metode berbasis millis() atau library seperti ezBuzzer dan ezButton.

Aplikasi Arduino Piezo Buzzer

Piezo buzzer sangat sering digunakan dalam berbagai proyek Arduino seperti alarm keamanan, bel pintu digital, sistem notifikasi, robotika, smart home, timer otomatis, game elektronik sederhana, dan sistem peringatan sensor. 

 

Baca juga: Arduino Button Motor Servo - Mengontrol Motor Servo dengan Tombol Menggunakan Arduino UNO

 

 

 

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

0 on: "Arduino Button Piezo Buzzer - Cara Mengontrol Buzzer dengan Tombol Menggunakan Arduino UNO"