Cara Memprogram Buzzer Pada ESP32

Cara Memprogram Buzzer Pada ESP32

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(), dan pinMode(). Ini adalah cara standar untuk menulis program menggunakan platform Arduino.

2. Deklarasi Variabel

int port_buzzer = 16;
  • Variabel port_buzzer dideklarasikan 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).

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 fungsi buzzer_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 setelah setup().
    • Namun, dalam kode ini, semua perintah di dalam loop() dikomentari (dengan //), jadi tidak ada tindakan yang terjadi dalam loop().
    • 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.

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 :

Apa itu ESP32?