// Melodi Sederhana Dari Buzzer
// Nama: Citra Nia Avanza
// No Absen: 09
// Kelas : XI J
//Membuat melodi sederhana dengan arduino
// yang dibutuhkan adalah buzzer dan library pitches.h
//pertama kita akan menambahkan buzzer
// disini buzzer memiliki dua kabel, yaitu kabel hitam dan kabel merah
// kabel hitam harus terhubung dengan ground atau GND dan kabel merah harus terhubung dengan pin yang akan kita gunakan, disini saya akan menggunakan pin 8
// langkah selanjutnya adalah menambahkan library bernama pitches.h
// setelah library dibuat, kita harus memanggil library tersebut degan menggunakan perintah include
// kemudian kita buat variabel dalam bentuk array untuk menampung melodi apa saja yang akan kita gunakan
//setelah itu kita akan membuat variabel untuk menghitung durasi dari setiap node
#include "pitches.h"
int melody[] = { //kedalam melody.
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};
int noteDurations[] = { // kedalam catatan durasi.
4, 8, 8, 4, 4, 4, 4, 4
};
// jika kita menginginkan program kita sekali jalan maka silahkan tulis di void setup tapi jika kita ingin adanya perulangan dilahkan gunakan void loop
void setup() { //sekali jalan.
// noteDuration dan noteDurations adalah dua variabel yang berbeda
//fungsi tone digunakan untuk menyalakan buzzer / speaker
//fungsi delay digunakan untuk memberikan jeda antar note yang akan dinyalakan
// fungsi notone digunakan untuk mematikan buzzer
for (int thisNote = 0; thisNote < 8; thisNote++){
int noteDuration = 1000 / noteDurations[thisNote];
tone(8, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(8);
// Kode ini adalah contoh loop "for" dalam bahasa pemrograman C atau C++. Dalam loop ini, thisNote dimulai dari 0 dan meningkat satu per satu hingga kurang dari 8.
// Pada setiap iterasi, instruksi di dalam kurung kurawal akan dieksekusi.
// Variabel note Duration dihitung sebagai hasil dari pembagian 1000 dengan nilai dari array noteDurations pada indeks thisNote.
// Fungsi tone() memainkan nada dengan menggunakan pin 8, menggunakan nilai dari array melody pada indeks thisNote, dan durasi yang dihitung sebelumnya.
// Variabel pause Between Notes dihitung sebagai 1.30 kali noteDuration.
// delay() memberikan jeda selama pause Between Notes.
// Terakhir, no Tone() digunakan untuk menghentikan nada yang sedang dimainkan di pin 8.
}
}
void loop() { // perulangan.
// put your main code here, to run repeatedly: // letakan kode utama anda disini, untuk dijalankan berulang kali.
}