Buzzer adalah komponen elektronik yang digunakan untuk menghasilkan suara atau bunyi ketika diberikan sinyal listrik.Berikut adalah cara memprogram buzzer pada esp32 :
#include <Arduino.h>
int port_buzzer = 16;
void buzzer_on()
{
digitalWrite(port_buzzer,HIGH);
}
void buzzer_off()
{
digitalWrite(port_buzzer,LOW);
}
void buzzer_bip()
{
digitalWrite(port_buzzer,HIGH);
delay(500);
digitalWrite(port_buzzer,LOW);
}
void buzzer_bipbip()
{
digitalWrite(port_buzzer,HIGH);
delay(500);
digitalWrite(port_buzzer,LOW);
delay(500);
digitalWrite(port_buzzer,HIGH);
delay(500);
digitalWrite(port_buzzer,LOW);
delay(500);
}
void setup()
{
Serial.begin(9600);
pinMode(port_buzzer, OUTPUT);
buzzer_bipbip();
}
void loop(){
//buzzer_on();
//Serial.println("buzzer_on");
//delay(1000);
//buzzer_off();
//Serial.println("buzzer_off");
//delay(1000);
}
Berikut ini adalah penjelasan dari kode di atas :
1. Pendefinisian Library
#include <Arduino.h>
- Baris ini menyertakan library Arduino.h, yang berisi fungsi-fungsi dasar Arduino seperti
digitalWrite(),delay(), danpinMode(). Ini adalah cara standar untuk menulis program menggunakan platform Arduino.
2. Deklarasi Variabel
int port_buzzer = 16;
- Variabel
port_buzzerdideklarasikan dengan nilai 16. Ini berarti bahwa pin GPIO 16 pada ESP32 (atau Arduino) akan digunakan untuk mengontrol buzzer.
3. Fungsi buzzer_on()
void buzzer_on()
{
digitalWrite(port_buzzer, HIGH);
}
- Fungsi ini digunakan untuk menyalakan buzzer. Fungsi
digitalWrite()akan mengirimkan sinyal HIGH (tegangan tinggi) ke pin GPIO yang terhubung ke buzzer (di pin 16). Akibatnya, buzzer akan menyala.
4. Fungsi buzzer_off()
void buzzer_off()
{
digitalWrite(port_buzzer, LOW);
}
- Fungsi ini digunakan untuk mematikan buzzer. Fungsi
digitalWrite()mengirimkan sinyal LOW (tegangan rendah) ke pin GPIO, yang akan mematikan buzzer.
5. Fungsi buzzer_bip()
void buzzer_bip()
{
digitalWrite(port_buzzer, HIGH);
delay(500);
digitalWrite(port_buzzer, LOW);
}
- Fungsi ini membuat buzzer mengeluarkan suara bip (nada pendek) dengan cara:
- Menyalakan buzzer selama 500 milidetik (0,5 detik) menggunakan
digitalWrite(port_buzzer, HIGH). - Setelah itu, buzzer dimatikan dengan
digitalWrite(port_buzzer, LOW).
- Menyalakan buzzer selama 500 milidetik (0,5 detik) menggunakan
6. Fungsi buzzer_bipbip()
void buzzer_bipbip()
{
digitalWrite(port_buzzer, HIGH);
delay(500);
digitalWrite(port_buzzer, LOW);
delay(500);
digitalWrite(port_buzzer, HIGH);
delay(500);
digitalWrite(port_buzzer, LOW);
delay(500);
}
- Fungsi ini menghasilkan suara bip-bip (dua suara bip berturut-turut) dengan cara:
- Menyalakan buzzer selama 500 milidetik.
- Mematikan buzzer selama 500 milidetik.
- Mengulang proses tersebut sekali lagi untuk menghasilkan dua suara bip.
7. Fungsi setup()
void setup()
{
Serial.begin(9600);
pinMode(port_buzzer, OUTPUT);
buzzer_bipbip();
}
- Fungsi
setup()dipanggil sekali saat pertama kali board dinyalakan atau di-reset.Serial.begin(9600): Inisialisasi komunikasi serial dengan baud rate 9600. Ini biasanya digunakan untuk debugging atau komunikasi antara ESP32 dan komputer.pinMode(port_buzzer, OUTPUT): Mengatur pin GPIO 16 sebagai output, sehingga bisa digunakan untuk mengendalikan buzzer.buzzer_bipbip(): Memanggil fungsibuzzer_bipbip(), sehingga buzzer akan mengeluarkan suara bip-bip saat program dijalankan.
8. Fungsi loop()
void loop(){
//buzzer_on();
//Serial.println("buzzer_on");
//delay(1000);
//buzzer_off();
//Serial.println("buzzer_off");
//delay(1000);
}
- Fungsi
loop()berfungsi untuk menjalankan kode yang berulang kali setelahsetup().- Namun, dalam kode ini, semua perintah di dalam
loop()dikomentari (dengan//), jadi tidak ada tindakan yang terjadi dalamloop(). - Jika kode tersebut tidak dikomentari, maka buzzer akan dinyalakan selama 1 detik, dimatikan selama 1 detik, dan ada pesan yang ditampilkan di monitor serial setiap kali buzzer dinyalakan atau dimatikan.
- Namun, dalam kode ini, semua perintah di dalam
Ringkasan Fungsi Program:
- Program ini mengendalikan buzzer yang terhubung ke pin GPIO 16.
- Pada
setup(), buzzer langsung mengeluarkan suara bip-bip sebagai feedback awal. loop()saat ini tidak melakukan apa-apa karena kode di dalamnya dikomentari, tetapi dapat digunakan untuk menyalakan atau mematikan buzzer secara periodik jika diperlukan.
Modifikasi:
Jika ingin buzzer menyala dan mati secara bergantian di dalam loop(), kamu bisa membuka komentar pada bagian kode berikut:
buzzer_on();
Serial.println("buzzer_on");
delay(1000);
buzzer_off();
Serial.println("buzzer_off");
delay(1000);
Jadi, ini akan membuat buzzer berbunyi ON selama 1 detik, lalu OFF selama 1 detik, sambil menampilkan status di serial monitor.
untuk diskusi bisa kontak dibawah ini :

Sosial media :





