Anda di halaman 1dari 11

LAPORAN PRAKTIKUM

RANCANGAN DAN APLIKASI IOT


UNIT 3

Disusun oleh
Nama : Mohammad Wildan Hanafi
NIM : 16/400638/SV/11142

LABORATORIUM INSTRUMENTASI DAN KENDALI


PROGRAM DIPLOMA
TEKNOLOGI REKAYASA INTERNET
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2018
BUZZER

A. TUGAS I (IBU KITA KARTINI)

void playNote(int note) {


for(int j=0;j<60;j++){ //the time span that each note is being played
digitalWrite(52,HIGH);
delayMicroseconds(note);
digitalWrite(52,LOW);
delayMicroseconds(note);
}
Analisa :
Pada tugas praktikum tugas 1, praktikan diperintahkan untuk membuat program yang hasil outputnya dapat
mengeluarkan bunyi dengan nada lagu Ibu Kita Kartini. Praktikan menggunakan modul rangkaian Arduino yang
dikoneksikan dengan speaker tambahan. Speaker ini akan dikoneksikan ke dalam pin 52 dan ground. Hal ini berarti,
ketika dalam keadaan HIGH, maka speaker akan menerima arus listrik yang menyebabkan speaker dapat
mengeluarkan bunyi karena terjadi beda potensial dengan ground.
Kemudian praktikan merancang source code, langkah pertama yang dilakukan adalah membuat kelas bernama
playNote, yang berisi inisialisasi perulangan array yang nantinya akan memanggil nilai index salah satu array yang
berisi frekuensi nada (do-re-mi-fa-sol-la-si-do). Perulangan dibuat kurang dari 60, hal ini berarti nada akan dipanggil
atau dimainkan selama 60 milisekon. Setelah itu akan berganti pada index berikutnya tergantung pada kebutuhan.
Kemudian dilakukan pernyataan HIGH dan LOW. DigitalWrite 52,HIGH digunakan untuk menyatakan bahwa pin
nomor 52 menyala dan DigitalWrite 52, LOW digunakan untuk menyatakan bahwa pin 52 mati. Dan masing masing
jarak antara HIGH dan LOW diberi fungsi delay.

delay(100);

}
Analisa :
Selanjutnya adalah menginisialisasi fungsi delay (waktu tunda) yaitu 100 ms.

int pause=200;
int freqs[] = {
1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
//string tones[] = {"do", "re", "mi", "fa","sol"," la", "si", "do"};
// i={0 1 2 3 4 5 6 7
//mi mimi - mi mimi - mi sol do re mi - - - fafafafafa mi mimimi re re mi re - sol - mi mimi - mi mimi - mi sol
do re mi -- fafafafafa mi mimi sol solfa re do - - -

Analisa :
Berikutnya praktikan membuat inisialisasi nilai variable yang akan digunakan oleh semua kelas. Diantaranya
adalah inisialisasi variable pause yang bertipe integer dengan nilai 200 ms dan array freqs yang bertipe integer yang
berisi frekuensi nada dasar do – re – mi – fa – sol – la – si – do.

void setup(){

pinMode(52,OUTPUT);

}
Analisa :
Kemudian praktikan membuat kelas void setup() digunakan untuk menginisialisasi pin yang digunakan yaitu 52
sebagai output. Hal ini berarti hasil eksekusi perintah akan disalurkan melalui pin 52, dimana pin 52 terkoneksi
dengan device yang dapat menghasilkan output.

void loop(){
playNote(freqs[0]); delay(pause); playNote(freqs[1]); playNote(freqs[2]); playNote(freqs[3]);
playNote(freqs[4]); delay(pause); playNote(freqs[2]); playNote(freqs[0]); delay(pause);
playNote(freqs[5]); delay(pause); delay(pause); playNote(freqs[7]); playNote(freqs[6]); playNote(freqs[5]);
playNote(freqs[4]); delay(pause); delay(pause); delay(pause);

playNote(freqs[3]); delay(pause); playNote(freqs[5]); playNote(freqs[4]); playNote(freqs[3]);


playNote(freqs[2]); delay(pause); playNote(freqs[0]); delay(pause);
playNote(freqs[1]); delay(pause); playNote(freqs[3]); playNote(freqs[3]); playNote(freqs[2]);
playNote(freqs[1]);
playNote(freqs[0]); delay(pause); delay(pause); delay(pause);

playNote(freqs[3]); delay(pause); playNote(freqs[2]); playNote(freqs[3]); playNote(freqs[5]);


playNote(freqs[4]); playNote(freqs[5]); playNote(freqs[4]); playNote(freqs[2]); playNote(freqs[0]);
playNote(freqs[2]);
playNote(freqs[1]); playNote(freqs[2]); playNote(freqs[3]); playNote(freqs[4]);
playNote(freqs[2]); delay(pause); delay(pause); delay(pause);

playNote(freqs[3]); delay(pause); playNote(freqs[2]); playNote(freqs[3]); playNote(freqs[5]);


playNote(freqs[4]); playNote(freqs[5]); playNote(freqs[4]); playNote(freqs[2]); playNote(freqs[0]);
playNote(freqs[2]);
playNote(freqs[1]); playNote(freqs[3]); playNote(freqs[0]); playNote(freqs[1]);
playNote(freqs[0]); delay(pause); delay(pause); delay(pause);
}
Analisa :
Terakhir, praktikan membuat kelas void loop() yang digunakan untuk menjalankan perulangan siklus program, yang
akan dilakukan terus-menerus hingga Arduino mati/reset. Disini akan dilakukan pemanggilan fungsi playNote,
dimana fungsi tersebut akan menggunakan variable freqs dengan index yang disesuaikan dengan nada pada lagu Ibu
Kita Kartini.
B. TUGAS II (INDONESIA RAYA)
void playNote(int note)
{
for(int j=0;j<60;j++){//the time span that each note is being played
digitalWrite(52,HIGH);
delayMicroseconds(note);
digitalWrite(52,LOW);
delayMicroseconds(note);
}
delay(60);
}
int pause=200;
int pause1=100;
int pause3=500;
int freqs[] = {3424,3048,2873,2564,2272,2032,1915,1700,1519,1432,1275,1136,1014,956};
//0=2 1=3 2=4 3=5 4=6 5=7 6=1 7=2 8=3 9=4 10=5 11=6 12=7 13=1
//string tones[] = {"do", "re", "mi", "fa","sol"," la", "si", "do"};
// i={0 1 2 3 4 5 6 7
//mi mimi - mi mimi - mi sol do re mi - - - fafafafafa mi mimimi re re mi re - sol - mi mimi - mi mimi - mi sol
do re mi -- fafafafafa mi mimi sol solfa re do - - -
void setup(){
pinMode(52,OUTPUT);
}
void loop(){
playNote(freqs[1]); playNote(freqs[2]); playNote(freqs[3]); playNote(freqs[8]); delay(pause);
playNote(freqs[8]); playNote(freqs[7]); playNote(freqs[7]); playNote(freqs[6]);
playNote(freqs[3]); delay(pause); playNote(freqs[3]); playNote(freqs[3]); playNote(freqs[4]);
playNote(freqs[3]); playNote(freqs[2]); playNote(freqs[1]); playNote(freqs[0]);
delay(pause); delay(pause); delay(pause);
//BAIT PERTAMA

playNote(freqs[0]); playNote(freqs[1]); playNote(freqs[2]); playNote(freqs[7]); delay(pause);


playNote(freqs[7]); playNote(freqs[6]); playNote(freqs[6]); playNote(freqs[5]);
playNote(freqs[4]); delay(pause); playNote(freqs[3]); playNote(freqs[3]); playNote(freqs[5]);
playNote(freqs[4]); playNote(freqs[3]); playNote(freqs[2]); playNote(freqs[1]);
delay(pause); delay(pause); delay(pause);

playNote(freqs[1]); playNote(freqs[2]); playNote(freqs[3]); playNote(freqs[8]); delay(pause);


playNote(freqs[8]); playNote(freqs[7]); playNote(freqs[7]); playNote(freqs[6]);
playNote(freqs[3]); delay(pause); playNote(freqs[3]); playNote(freqs[3]); playNote(freqs[4]);
playNote(freqs[3]); playNote(freqs[6]); playNote(freqs[7]); playNote(freqs[5]);
playNote(freqs[4]);
delay(pause); delay(pause); delay(pause);
playNote(freqs[4]); playNote(freqs[4]); playNote(freqs[9]); delay(pause); playNote(freqs[9]);
delay(pause1); playNote(freqs[7]); playNote(freqs[6]); playNote(freqs[10]); delay(pause1);
playNote(freqs[6]);
delay(pause1);
playNote(freqs[5]); playNote(freqs[4]); playNote(freqs[3]); playNote(freqs[9]);
playNote(freqs[8]); playNote(freqs[7]); playNote(freqs[6]);
delay(pause); delay(pause); delay(pause);

playNote(freqs[3]); playNote(freqs[3]); playNote(freqs[4]); playNote(freqs[9]);


playNote(freqs[9]); playNote(freqs[9]); playNote(freqs[9]); playNote(freqs[9]);
playNote(freqs[8]); playNote(freqs[6]); playNote(freqs[6]); playNote(freqs[6]);
playNote(freqs[5]); playNote(freqs[6]); playNote(freqs[8]); playNote(freqs[10]);
playNote(freqs[10]); playNote(freqs[10]); playNote(freqs[9]); playNote(freqs[9]);
playNote(freqs[8]); delay(pause); playNote(freqs[6]);
delay(pause); delay(pause); delay(pause);

playNote(freqs[3]); playNote(freqs[3]); playNote(freqs[4]); playNote(freqs[9]);


playNote(freqs[9]); playNote(freqs[9]); playNote(freqs[9]); playNote(freqs[9]);
playNote(freqs[8]); playNote(freqs[6]); playNote(freqs[6]); playNote(freqs[6]);
playNote(freqs[5]); playNote(freqs[6]); playNote(freqs[7]); playNote(freqs[10]);
playNote(freqs[10]); playNote(freqs[8]); playNote(freqs[7]); playNote(freqs[6]);
delay(pause); delay(pause); delay(pause);

playNote(freqs[6]); delay(pause1); playNote(freqs[6]); playNote(freqs[9]); playNote(freqs[11]);


playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]);
playNote(freqs[10]); playNote(freqs[8]); playNote(freqs[8]); playNote(freqs[8]);
playNote(freqs[10]); playNote(freqs[10]); playNote(freqs[9]); playNote(freqs[7]);
playNote(freqs[7]); playNote(freqs[7]); playNote(freqs[10]); playNote(freqs[9]);
playNote(freqs[8]); delay(pause1); playNote(freqs[6]);
delay(pause); delay(pause); delay(pause);

playNote(freqs[6]); delay(pause1); playNote(freqs[6]); playNote(freqs[9]); playNote(freqs[11]);


playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]);
playNote(freqs[10]); playNote(freqs[8]); playNote(freqs[8]); playNote(freqs[8]);
playNote(freqs[10]); playNote(freqs[10]); playNote(freqs[10]); playNote(freqs[9]);
playNote(freqs[8]); playNote(freqs[7]); playNote(freqs[8]); playNote(freqs[7]);
playNote(freqs[6]);
delay(pause); delay(pause); delay(pause);

playNote(freqs[6]); delay(pause1); playNote(freqs[6]); playNote(freqs[9]); playNote(freqs[11]);


playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]);
playNote(freqs[10]); playNote(freqs[8]); playNote(freqs[8]); playNote(freqs[8]);
playNote(freqs[10]); playNote(freqs[10]); playNote(freqs[9]); playNote(freqs[7]);
playNote(freqs[7]); playNote(freqs[7]); playNote(freqs[10]); playNote(freqs[9]);
playNote(freqs[8]); delay(pause1); playNote(freqs[6]);
delay(pause); delay(pause); delay(pause);

playNote(freqs[6]); delay(pause1); playNote(freqs[6]); playNote(freqs[9]); playNote(freqs[11]);


playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]); playNote(freqs[11]);
playNote(freqs[10]); playNote(freqs[8]); playNote(freqs[8]); playNote(freqs[8]);
playNote(freqs[10]); playNote(freqs[10]); playNote(freqs[10]); playNote(freqs[9]);
playNote(freqs[8]); playNote(freqs[7]); playNote(freqs[8]); playNote(freqs[7]); delay(pause3);
playNote(freqs[6]);
delay(pause); delay(pause); delay(pause);
}

Analisa:
Pada Tugas Praktikum 2 memiliki prinsip yang sama dengan tugas pratkikum I. Perbedaannya adalah pada hasil
output yang dihasilkan yaitu lagu Indonesia Raya. Pada lagu ini sibutuhkan rentang nada yang lebih tinggi serta jeda
yang berbeda pada perpindahan tiap nada. Untuk itu pada array freqs, praktikan menambah rentang nada yang
digunakan. Kemudian juga dilakukan penambahan variable pause, dimana nilai dari variable pause1 100 dan pause2
500. Hal ini bertujuan untuk memberi jeda pada lagu sesuai dengan kebutuhan nada yang ditentukan.
C. TUGAS 3 (SOLERAM)

void playNote(int note) {


for(int j=0;j<60;j++){//the time span that each note is being played
digitalWrite(52,HIGH);
delayMicroseconds(note);
digitalWrite(52,LOW);
delayMicroseconds(note);
}
delay(100);
}
int pause=200;
int freqs[] = {
1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
//string tones[] = {"do", "re", "mi", "fa","sol"," la", "si", "do"};
// i={0 1 2 3 4 5 6 7
//mi mimi - mi mimi - mi sol do re mi - - - fafafafafa mi mimimi re re mi re - sol - mi mimi - mi mimi - mi sol
do re mi -- fafafafafa mi mimi sol solfa re do - - -
void setup(){
pinMode(52,OUTPUT);
}
void loop(){
playNote(freqs[0]); playNote(freqs[1]); playNote(freqs[2]); playNote(freqs[2]); delay(pause);
playNote(freqs[3]); playNote(freqs[4]); playNote(freqs[3]); playNote(freqs[2]);
playNote(freqs[1]); delay(pause); delay(pause);
playNote(freqs[3]); playNote(freqs[2]); playNote(freqs[4]); playNote(freqs[4]); delay(pause);
playNote(freqs[5]); playNote(freqs[4]); playNote(freqs[3]); playNote(freqs[5]); playNote(freqs[4]);
delay(pause); delay(pause);
playNote(freqs[4]); playNote(freqs[5]); playNote(freqs[6]); playNote(freqs[7]); delay(pause);

playNote(freqs[6]); playNote(freqs[4]); playNote(freqs[3]); playNote(freqs[4]); playNote(freqs[3]);


playNote(freqs[2]); delay(pause);
playNote(freqs[1]); playNote(freqs[0]); playNote(freqs[4]); playNote(freqs[4]); playNote(freqs[4]);
playNote(freqs[5]); playNote(freqs[3]); delay(pause); playNote(freqs[0]); playNote(freqs[1]);
playNote(freqs[1]); playNote(freqs[0]);
playNote(freqs[0]); delay(pause); delay(pause);

}
Analisa :
Pada Tugas III, praktikan menggunakan prinsip dari Tugas I, hanya dilakukan penggantian chord nada yang
disesuaikan dengan algu soleram.

Anda mungkin juga menyukai