Dalam proyek elektronika berbasis Arduino, potensiometer sering digunakan sebagai input analog untuk mengatur atau memicu berbagai perangkat output. Salah satu perangkat yang paling mudah digunakan adalah piezo buzzer, baik tipe aktif maupun pasif. Dengan menggabungkan kedua komponen tersebut, kita dapat membuat sistem yang menghasilkan suara ketika nilai potensiometer mencapai batas tertentu.
Pada tutorial Arduino Potensiometer Trigger Piezo Buzzer ini, Anda akan mempelajari cara menggunakan potensiometer sebagai pemicu buzzer. Ketika posisi potensiometer melewati nilai yang telah ditentukan, buzzer akan aktif dan menghasilkan suara. Selain suara sederhana, kita juga akan membahas cara memutar melodi menggunakan piezo buzzer pasif.
Tutorial ini mencakup beberapa skenario penggunaan yang umum diterapkan pada proyek Arduino, yaitu mengaktifkan buzzer berdasarkan nilai analog, mengaktifkan buzzer berdasarkan nilai tegangan, serta memainkan melodi ketika tegangan potensiometer melebihi ambang batas tertentu.
Perangkat Keras yang Dibutuhkan
- Arduino UNO R3
- Kabel USB
- Potensiometer
- Piezo Buzzer Aktif
- Piezo Buzzer Pasif
- Modul buzzer aktif (opsional)
- Modul buzzer pasif (opsional)
- Breadboard
- Kabel jumper
Mengenal Potensiometer dan Piezo Buzzer
Potensiometer merupakan resistor variabel yang menghasilkan tegangan berbeda sesuai posisi putarannya. Arduino dapat membaca perubahan tegangan tersebut melalui pin analog dan mengubahnya menjadi nilai digital antara 0 hingga 1023. Piezo buzzer adalah komponen yang mampu menghasilkan suara saat diberi sinyal listrik. Secara umum terdapat dua jenis buzzer yang sering digunakan, yaitu:
- Piezo buzzer aktif, cukup diberi logika HIGH untuk menghasilkan suara.
- Piezo buzzer pasif, membutuhkan frekuensi tertentu menggunakan fungsi tone() agar dapat menghasilkan nada atau melodi.
Dengan memanfaatkan pembacaan nilai potensiometer, Arduino dapat menentukan kapan buzzer harus aktif atau tidak aktif.
Baca juga: Arduino Potensiometer Trigger LED - Menyalakan LED Berdasarkan Nilai Potensiometer
Cara Kerja Arduino Potensiometer Trigger Piezo Buzzer
Cara kerja rangkaian Arduino dengan potensiometer sebagai pemicu piezo buzzer cukup sederhana. Arduino akan membaca nilai analog yang dihasilkan oleh potensiometer melalui pin input analog. Nilai tersebut kemudian dibandingkan dengan nilai ambang batas (threshold) yang telah ditentukan dalam program. Apabila nilai potensiometer melebihi batas tersebut, Arduino akan mengaktifkan piezo buzzer sehingga menghasilkan suara. Sebaliknya, jika nilai potensiometer berada di bawah ambang batas, buzzer akan tetap mati. Pada pengembangan yang lebih lanjut, buzzer tidak hanya mengeluarkan bunyi sederhana, tetapi juga dapat memainkan melodi tertentu ketika nilai potensiometer melewati batas yang ditentukan. Metode ini banyak digunakan dalam berbagai aplikasi elektronika, seperti alarm sederhana, sistem peringatan level, indikator batas sensor, pengingat berbasis nilai analog, serta sistem notifikasi suara.
Wiring Diagram Arduino Potensiometer Trigger Piezo Buzzer
Arduino Potensiometer Trigger Piezo Buzzer Berdasarkan Nilai Analog
Pada contoh pertama, buzzer akan aktif ketika nilai analog hasil pembacaan potensiometer lebih besar dari nilai threshold yang telah ditentukan.
Kode Program Arduino – Suara Sederhana dengan Ambang Analog
// constants won't change
const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin
const int BUZZER_PIN = 3; // Arduino pin connected to Buzzer's pin
const int ANALOG_THRESHOLD = 500;
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
int analogValue = analogRead(POTENTIOMETER_PIN);
if(analogValue > ANALOG_THRESHOLD)
digitalWrite(BUZZER_PIN, HIGH); // turn on buzzer
else
digitalWrite(BUZZER_PIN, LOW); // turn off buzzer
}
Penjelasan Program
Arduino membaca nilai analog dari pin A0 menggunakan fungsi:
int analogValue = analogRead(POTENTIOMETER_PIN);
Nilai yang diperoleh berada pada rentang 0 hingga 1023.
Selanjutnya nilai tersebut dibandingkan dengan threshold:
if(analogValue > ANALOG_THRESHOLD)
Jika nilainya lebih besar dari 500, buzzer akan menyala. Sebaliknya, jika nilainya lebih kecil dari 500, buzzer akan mati.
Langkah Pengujian
1. Rangkai potensiometer dan buzzer sesuai skema.
2. Hubungkan Arduino ke komputer menggunakan kabel USB.
3. Buka Arduino IDE.
4. Pilih board dan port yang sesuai.
5. Upload program ke Arduino.
6. Putar potensiometer secara perlahan.
7. Dengarkan perubahan suara pada buzzer.
Ketika nilai potensiometer melewati batas yang ditentukan, buzzer akan langsung aktif.
Arduino Potensiometer Trigger Piezo Buzzer Berdasarkan Tegangan
Selain menggunakan nilai analog mentah, kita juga dapat menggunakan nilai tegangan hasil konversi ADC. Cara ini lebih mudah dipahami karena menggunakan satuan Volt.
Kode Program Arduino – Suara Sederhana dengan Ambang Tegangan
// constants won't change
const int POTENTIOMETER_PIN = A0;
const int BUZZER_PIN = 3;
const float VOLTAGE_THRESHOLD = 2.5;
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
int analogValue = analogRead(POTENTIOMETER_PIN);
float voltage = floatMap(analogValue, 0, 1023, 0, 5);
if(voltage > VOLTAGE_THRESHOLD)
digitalWrite(BUZZER_PIN, HIGH);
else
digitalWrite(BUZZER_PIN, LOW);
}
float floatMap(float x, float in_min, float in_max,
float out_min, float out_max) {
return (x - in_min) * (out_max - out_min)
/ (in_max - in_min) + out_min;
}
Cara Mengubah Nilai Analog Menjadi Tegangan
Arduino mengubah tegangan analog menjadi nilai digital antara 0 hingga 1023. Untuk mendapatkan kembali nilai tegangannya, digunakan proses konversi sebagai berikut:
Pada contoh program di atas, buzzer akan aktif jika tegangan hasil pembacaan potensiometer lebih besar dari 2,5 Volt.
Arduino Potensiometer Trigger Melodi Piezo Buzzer
Selain menghasilkan bunyi sederhana, buzzer pasif juga dapat digunakan untuk memainkan nada dan lagu. Pada contoh berikut, Arduino akan memutar melodi ketika tegangan keluaran potensiometer melebihi batas tertentu. Metode ini sering digunakan pada alarm pintar, bel otomatis, sistem notifikasi elektronik, proyek IoT berbasis suara, dan mainan elektronik interaktif.
Kode Program Arduino – Melodi dengan Ambang Tegangan
Gunakan kode berikut untuk memutar melodi saat nilai tegangan potensiometer melewati batas yang ditentukan.
#include "pitches.h"
const int POTENTIOMETER_PIN = A0;
const int BUZZER_PIN = 3;
const float VOLTAGE_THRESHOLD = 2.5;
// daftar nada
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
};
// durasi nada
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 loop() {
int analogValue = analogRead(POTENTIOMETER_PIN);
float voltage = floatMap(analogValue, 0, 1023, 0, 5);
if(voltage > VOLTAGE_THRESHOLD)
buzzer();
}
float floatMap(float x, float in_min, float in_max,
float out_min, float out_max) {
return (x - in_min) * (out_max - out_min)
/ (in_max - in_min) + out_min;
}
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);
}
}
Langkah Pengujian Melodi
1. Buat file tambahan bernama pitches.h.
- Klik tombol tepat di bawah ikon serial monitor dan pilih New Tab, atau gunakan tombol Ctrl+Shift+N
- Berikan nama file pitches.h dan klik tombol OK
2. Salin daftar definisi nada ke dalam file tersebut.
/*************************************************
* Public Constants
*************************************************/
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978
3. Upload program ke Arduino.
4. Putar potensiometer hingga melewati batas tegangan.
5. Dengarkan melodi yang dimainkan buzzer.
Saat tegangan keluaran potensiometer lebih tinggi dari ambang batas yang ditentukan, Arduino akan menjalankan fungsi buzzer() dan memainkan seluruh rangkaian nada.
Kelebihan Menggunakan Potensiometer untuk Mengontrol Buzzer
1. Mudah dipahami oleh pemula
2. Tidak memerlukan sensor tambahan
3. Cocok untuk latihan pembacaan input analog
4. Dapat digunakan sebagai simulasi berbagai jenis sensor
5. Mudah digunakan menjadi sistem alarm yang lebih kompleks
Baca juga: Arduino Potensiometer Trigger Motor Servo - Mengontrol Posisi Servo Berdasarkan Nilai Potensiometer
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino





0 on: "Arduino Potensiometer Trigger Piezo Buzzer - Mengontrol Buzzer Menggunakan Potensiometer dan Arduino"