Mungkin ada di kalangan anda yang memerlukan bunyi dalam projek Arduino anda dan sedang mencari idea tentang bunyi yang sesuai untuk digunakan dalam projek tersebut.
Tutorial kali ini adalah tentang bagaimana untuk menggunakan function tone() dan piezo speaker dalam Arduino dan apa perbezaan menghasilkan bunyi dengan menggunakan cara yang lain.
Dalam tutorial ini ada 2 cara menghasilkan bunyi dengan Arduino yang akan diterangkan iaitu:
- Buzzer (Component)
- DFPlayer (Module)
#1. Buzzer
Buzzer adalah cara yang paling mudah dan simple untuk menghasilkan bunyi dengan Arduino. Buzzer terbahagi kepada dua iaitu buzzer aktif dan buzzer pasif. Kedua-dua buzzer ini mempunyai spesifiksi dan penggunaan yang berbeza
Aktif buzzer menghasilkan bunyi pada frequency yang tetap. Aktif menggunakan DC voltage untuk berfungsi. Kelebihan aktif buzzer adalah mudah digunakan kerana anda hanya perlu memberi voltan untuk ia berfungsi.
Pasif buzzer memerlukan signal AC untuk berfungsi. Bunyi yang dihasilkan berbeza apabila diberikan signal AC yang berlainan. Kebaikan pasif buzzer adalah harga lebih murah dari aktif buzzer dan output dapat dikawal untuk menghasilkan pelbagai bunyi dengan frequency yang pelbagai.
#2. DFPlayer Mini
DFPlayer mini adalah low cost MP3 module di mana output bunyi boleh disambungkan terus ke speaker. Module ini mepunya slot SD card dimana kita boleh masukkan lagu kedalam SD card dan mainkannya menggunakan module ini.
Komponen-komponen yang diperlukan :
- Adruino Board, tutorial ini menggunakan Arduino UNO
- Piezo Speaker (aka Piezo Buzzer)
- Breadboard
- Potentiometer (kalau perlu)
Langkah #1: Sambungan Litar
Sambungkan litar anda seperti rajah di bawah:
Potentiometer dalam litar ini hanya digunakan untuk mengawal volume output anda .

Langkah #2: Coding/ Sketch
Copy sketch di bawah dan pastekan dalam Adruino IDE anda.
int piezoPin = 4; void setup() { pinMode(piezoPin, OUTPUT); } void loop() { tone(piezoPin,1000); }
Baiklah, jadi bagaimana kita mendapatkan variable frequency dari Arduino?
PENTING #1: Declare nama variable.
Sebelum mana-mana variable di gunakan dalam “Void” kita perlu menamakan setiap variable dan tentukan nilai yang kita mahukan.
int piezoPin = 4;
PENTING #2: Setup Pin Sebagai OUTPUT.
Sebelum mana-mana pin boleh digunakan sebagai OUTPUT, pin tersebut perlu di SETUP sebagai OUTPUT dalam Void Setup().
pinMode(piezoPin,OUTPUT);
Di sinilah tone () berfungsi dengan menjana frequency tertentu pada pin tertentu. Tempoh masa juga boleh disebutkan jika diperlukan. Syntax untuk tone() adalah
tone(piezoPin,1000);
Syntax
tone(pin, frequency)
tone(pin, frequency, duration)
Parameters
pin: declare pin yang disambung ke arduino
frequency: frequency tone dalam hertz
duration: duration dalam milliseconds (optional)
Function tone() wajib mempunyai minimum 2 subjek dan maximum sehingga 3 subjek
Blink Tone
Langkah #1 : Sambungan Litar
Sambungkan litar anda mengikut gambar rajah berikut:

Langkah #2 : Coding/Sketch
Copy sketch di bawah dan pastekan dalam Adruino IDE anda.
int piezoPin = 4; void setup(){ pinMode(4,OUTPUT); } void loop(){ tone(4,1000); delay(1000); tone(4,0); delay(1000); }
Setelah coding di upload , Buzzer Piezo pada pin 4 akan berbunyi selama 1 saat dan padam selama 1 saat kemudian proses ini akan berulang dan Buzzer Piezo tersebut akan berbunyi beep-beep.
BONUS – Tone Star Wars
Dalam projek ini kita akan belajar membina litar, di mana kita boleh menghasilkan muzik dengan menggunakan speaker kecil atau Buzzer Piezo yang ditambah skala muzik note , yang menghasilkan melodi terkenal “Imperial March” dari filem Star Wars.
LANGKAH#1 : Sambungan Litar
Sambungkan litar anda seperti gambarajah berikut:

Komponen-komponen yang diperlukan :
- Adruino Board, tutorial ini menggunakan Arduino UNO
- Piezo Speaker (aka Piezo Buzzer)
- Breadboard
- Potentiometer (kalau perlu)
LANGKAH#2 : Coding/Sketch
Copy sketch di bawah dan pastekan dalam Adruino IDE anda.
const int c = 261; const int d = 294; const int e = 329; const int f = 349; const int g = 391; const int gS = 415; const int a = 440; const int aS = 455; const int b = 466; const int cH = 523; const int cSH = 554; const int dH = 587; const int dSH = 622; const int eH = 659; const int fH = 698; const int fSH = 740; const int gH = 784; const int gSH = 830; const int aH = 880; const int buzzerPin = 4; int counter = 0; void setup() { //Setup pin modes pinMode(buzzerPin, OUTPUT); } void loop() { //Play first section firstSection(); //Play second section secondSection(); //Variant 1 beep(f, 250); beep(gS, 500); beep(f, 350); beep(a, 125); beep(cH, 500); beep(a, 375); beep(cH, 125); beep(eH, 650); delay(500); //Repeat second section secondSection(); //Variant 2 beep(f, 250); beep(gS, 500); beep(f, 375); beep(cH, 125); beep(a, 500); beep(f, 375); beep(cH, 125); beep(a, 650); delay(650); } void beep(int note, int duration) { //Play tone on buzzerPin tone(buzzerPin, note, duration); if(counter % 2 == 0) { delay(duration); } else { delay(duration); } //henti bunyi buzzer noTone(buzzerPin); delay(50); //Increment counter counter++; } void firstSection() { beep(a, 500); beep(a, 500); beep(a, 500); beep(f, 350); beep(cH, 150); beep(a, 500); beep(f, 350); beep(cH, 150); beep(a, 650); delay(500); beep(eH, 500); beep(eH, 500); beep(eH, 500); beep(fH, 350); beep(cH, 150); beep(gS, 500); beep(f, 350); beep(cH, 150); beep(a, 650); delay(500); } void secondSection() { beep(aH, 500); beep(a, 300); beep(a, 150); beep(aH, 500); beep(gSH, 325); beep(gH, 175); beep(fSH, 125); beep(fH, 125); beep(fSH, 250); delay(325); beep(aS, 250); beep(dSH, 500); beep(dH, 325); beep(cSH, 175); beep(cH, 125); beep(b, 125); beep(cH, 250); delay(350); }
Coding di atas akan memainkan tone Star Wars anda dan boleh diubah suai mengikut kreativiti dan keinginan anda. Refer instruction untuk mengenal pasti bahagian yang boleh diubah suai.
Anda boleh tinggalkan sebarang persoalan di ruangan komen tentang apa-apa yang berkaitan dengan Tone() dan Buzzer Piezo.
Bagaimanakah caranya untuk menggabungkan LED dan Buzzer?
LikeLike
boleh gunakan pin yang sama untuk nyalakan kedua-dua LED dan Buzzer.
Tapi cara terbaiknya gunakan 2 pin asing.
Dalam coding:
if(sesuatu berlaku){
digitalWrite(LED,HIGH);
digitalWrite(BUZZER, HIGH);
}
LikeLike