Anda di halaman 1dari 29

LAPORAN RESMI

PRAKTIKUM MIKROPROSESOR DAN ANTARMUKA 1

“PEMROGRAMAN MELODY”

Dosen : Akuwan Saleh

Disusun Oleh :

Athia Suci Faqiha

1210191004

2 D4 TEKNIK TELEKOMUNIKASI A

PROGRAM STUDI SARJANA TERAPAN TEKNIK TELEKOMUNIKASI

DEPARTEMEN TEKNIK ELEKTRO

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

2020/2021
PERCOBAAN 7
PEMROGRAMAN MELODY

A. TUJUAN
1. Membuat melody Do, Re, Mi, Fa, Sol, La, Si, Do.
2. Membuat program untuk membangkitkan frekuensi nada melody

B. DASAR TEORI
Suara adalah fenomena analog, bagaimana caranya Arduino menanganinya? Sekali lagi kita akan
meniru perilaku analog menggunakan Arduino dengan kecepatannya yang luar biasa. Untuk ini
kita akan menghubungkan buzzer/piezo elements ke salah satu pin digital Arduino.
Sebuah buzzer akan menghasilkan suara ketukan setiap kali dialiri gelombang (pulse) arus
listrik. Jika kita menggunakan gelombang arus listrik dengan frekuensi yang tepat (misalnya 440
kali per detik untuk menghasilkan nada A) maka suara ketukan secara bersama-sama ini akan
menghasilkan nada musik.

Berikut merupakan tabel frekuensi yang dapat digunakan untuk menghasilkan nada sesuai
dengan yang diinginkan.
C. HARDWARE
 Arduino Uno Board
 1 buah Piezo Speaker
 Kabel jumper

D. RANGKAIAN

E. LANGKAH PERCOBAAN
1. Tancapkan usb serial ke kemputer
2. Pastikan drivernya sudah terinstall dan dikenali dengan benar
3. Cek driver, lihat port COM dan samakan pada software arduino

4. Jalankan arduino dan buat programnya


F. PROGRAM
1. Bunyi DO-RE-MI-FA-SOL-LA-SI-DO

-> Rangkaian

-> Program
int speaker= 9;
void setup() {
// put your setup code here, to run once:

void loop() {
// put your main code here, to run repeatedly:
tone(speaker, 262); delay(500); // nada DO
tone(speaker, 294); delay(550); // nada RE
tone(speaker, 330); delay(590); // nada MI
tone(speaker, 349); delay(600); // nada FA
tone(speaker, 395); delay(610); // nada SOL
tone(speaker, 440); delay(620); // nada LA
tone(speaker, 494); delay(630); // nada SI
tone(speaker, 523); delay(700); // nada DOO
}
-> Tampilan program

-> Hasil
2. Bunyi yang dihasilkan berupa lagu “Twinkle Twinkle Little Star”

-> Rangkaian
-> Program
int speakerPin= 9;
int length = 15;
char notes[] = "ccggaagffeeddc ";
int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
int tempo = 300;
void playTone(int tone, int duration) {
// put your setup code here, to run once:
for (long i = 0; i < duration * 1000L; i += tone * 2){
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}

void playNote(char note, int duration) {


// put your setup code here, to run once:
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'c' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
for (int i = 0; i < 8; i++){
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}

void setup() {
// put your main code here, to run repeatedly:
pinMode(speakerPin, OUTPUT);
}

void loop() {
for (int i = 0; i < length; i++){
if (notes[i] == ' '){
delay(beats[i] * tempo);
}else{
playNote(notes[i], beats[i] * tempo);
}
delay(tempo / 2);
}
}
-> Tampilan program
-> Hasil
3. Bunyi yang dihasilkan berupa lagu “Lihat Kebunku”

-> Rangkaian

-> Program
int speaker= 9;
void setup() {}
// put your setup code here, to run once:
void DO() { tone(speaker, 262); }
void RE() { tone(speaker, 294); }
void MI() { tone(speaker, 330); }
void FA() { tone(speaker, 349); }
void SOL() { tone(speaker, 395); }
void LA() { tone(speaker, 440); }
void SI() { tone(speaker, 494); }
void DOO() { tone(speaker, 523); }
void DIAM() { noTone(speaker); }

void loop() {
// put your main code here, to run repeatedly:
SOL(); delay(200); MI(); delay(200); SOL(); delay(200); //1
DOO(); delay(200); DIAM(); delay(200);
SOL(); delay(200); DOO(); delay(200); SOL(); delay(200); //2
FA(); delay(200); MI(); delay(200); RE(); delay(200);
DIAM(); delay(200);
FA(); delay(200); RE(); delay(200); FA(); delay(200); //3
LA(); delay(200); SOL(); delay(200); DO(); delay(200); //4
MI(); delay(200); RE(); delay(200); DO(); delay(200);
DIAM(); delay(200);
SOL(); delay(200); MI(); delay(200); SOL(); delay(200); //5
DIAM(); delay(200);
SOL(); delay(200); DOO(); delay(200); SOL(); delay(200); //6
FA(); delay(200); MI(); delay(200); RE(); delay(200);
DIAM(); delay(200);
FA(); delay(200); RE(); delay(200); FA(); delay(200); //7
LA(); delay(200); SOL(); delay(200); DO(); delay(200); //8
MI(); delay(200); RE(); delay(200); DO(); delay(200);
DIAM(); delay(200);
}
-> Tampilan program
-> Hasil

LINK PERCOBAAN : http://bit.ly/Praktikum7mikro


G. LATIHAN
1. Buatlah eksperimen dengan menggunakan kombinasi nada-nada yang lain disertai dengan
tampilan LED.
- Membunyikan lagu “bintang kecil”.
-> Rangkaian

-> Program
int pin[]={2,3,4,5,6,7,8,9,10,11};
int speaker= 13;
void setup() {
// put your setup code here, to run once:
for(int i=0;i<11;i++){
pinMode(pin[i], OUTPUT); }
pinMode(speaker,OUTPUT);
}
void loopLow(){
for(int i=0;i<11;i++){
digitalWrite(pin[i], LOW);
}
delay(200);
}
void loopHigh(int x){
for(int i=0;i<x;i++){
digitalWrite(pin[i], HIGH);
}
}
void MI() {
loopLow();
tone(speaker, 330);
loopHigh(1);
}
void FA() {
loopLow();
tone(speaker, 349);
loopHigh(2); }
void SOL() {
loopLow();
tone(speaker, 396);
loopHigh(3); }
void LA() {
loopLow();
tone(speaker, 440);
loopHigh(4); }
void SI() {
loopLow();
tone(speaker, 495);
loopHigh(5); }
void DOO() {
loopLow();
tone(speaker, 528);
loopHigh(6); }
void REE(){
loopLow();
tone(speaker, 594);
loopHigh(7); }
void MII(){
loopLow();
tone(speaker, 660);
loopHigh(8); }
void FAA(){
loopLow();
tone(speaker, 704);
loopHigh(9); }
void SOOL(){
loopLow();
tone(speaker, 792);
loopHigh(10); }
void DIAM() {
noTone(speaker);
}
void loop() {
// put your main code here, to run repeatedly:
DIAM(); delay(1000); SOL(); delay(200);
DIAM(); MII(); delay(200);
DIAM(); REE(); delay(300);
DIAM(); DOO();delay(200); delay(100);delay(100); SI();delay(400);
DIAM(); REE();delay(200);
DIAM(); DOO();delay(200);
DIAM(); SI();delay(200);
DIAM(); LA();delay(200);
DIAM(); SOL();delay(300);
DIAM(); delay(100);delay(100);delay(100);
DIAM(); delay(1000);LA();delay(200);
DIAM(); SI();delay(200);
DIAM(); DOO();delay(300);
DIAM(); SOL();delay(300);
DIAM(); delay(100);delay(100); DOO();delay(300);
DIAM(); MII();delay(200);
DIAM(); SOOL();delay(300);
DIAM(); MII();delay(200);
DIAM(); DOO();delay(200);
DIAM(); REE();delay(300);
DIAM(); delay(100);delay(100);delay(100);
DIAM(); delay(1000);SOOL();delay(200);
DIAM();MII();delay(200);
DIAM();REE( );delay(300);
DIAM(); DOO();delay(200);
DIAM(); delay(100);delay(100); MII();delay(200);
DIAM();SOOL();delay(200);
DIAM();MII();delay(200);
DIAM() ; REE();delay(200);
DIAM();DOO();delay(300);
DIAM();LA();delay(200);
DIAM(); delay(100);delay(100);delay(100);
DIAM();delay(1000);SI();delay(400);
DIAM();DOO();delay(300);
DIAM();LA();delay(300);
DIAM();SOL();delay(400);
DIAM(); delay(100); REE();delay(200);
DIAM();MII();delay(200);
DIAM();FAA();delay(200);
DIAM(); REE();delay(200);
DIAM(); LA();delay(200);
DIAM();SI();delay(300);
DIAM();DOO();delay(300);
DIAM(); delay(100);delay(100);delay(100);
}
-> Tampilan program
-> Hasil
2. Buatlah eksperimen dengan meggunakan kombinasi nada-nada yang membentuk sebuah
lagu.
- Membunyikan lagu “Gundul Pacul”.
-> Rangkaian

-> Program
int speakerPin = 9;
void setup() {
pinMode(speakerPin,OUTPUT); }

void loop() {
noTone(speakerPin);
delay(1000);
tone(speakerPin,264,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(300);
tone(speakerPin,264,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(400);
noTone(speakerPin);
tone(speakerPin,495,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,495,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,495,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(400);
noTone(speakerPin);
delay(1000);
tone(speakerPin,264,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(300);
tone(speakerPin,264,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(400);
noTone(speakerPin);
tone(speakerPin,495,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,495,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,495,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(400);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(300);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,396,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,352,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,330,200);
delay(200);
noTone(speakerPin);
tone(speakerPin,264,200);
delay(300);
}
-> Tampilan program
-> Hasil

LINK PERCOBAAN : http://bit.ly/Praktikum7mikro


Analisa
Pada praktikum ketujuh ini, saya melakukan percobaan tentang pemrograman melody.
Pada praktikum ini menggunakan arduino, LED, speaker, resistor, dan simulator proteus. Melody
adalah urutan nada dan jangka waktu nada yang biasanya diulang-ulang dalam lagu dalam
berbagai bentuk.
Pada percobaan pertama ini yaitu untuk menampilkan bunyi nada Do-Re-Mi-FaSol-La-
Si-Do. Untuk rangkaiannya, yaitu menggunakan speaker, yang salah satu kakinya dihubungkan
ke pin 9 Arduino dan kaki lainnya dihubungkan ke ground. Untuk programnya, pertama
inisiasikan pin yang digunakan dengan integer variable bernama speaker. Pada setup() nya
dibiarkan kosong saja, pada loop() disusun frekuensi nada agar menciptakan nada do-re-mi-fa-
sol-la-si-do. Frekuensi untuk setiap note sudah ada di table pada laporan pendahuluan. Pada
setiap jeda pindah ke nada berikutnya, diberi delay. Panjang delay berbeda dari do ke re dengan
re ke mi dst. Ini disesuaikan agar bisa menampilkan nada yang sesuai.
Pada percobaan kedua yaitu untuk menampilkan lagu twinkle little star. Dengan
menggunakan rangkaian yang sama dengan percobaan sebelumnya, pada program juga di
inisiasikan terlebih dahulu pin nya dengan nama speakerPin. Dideklarasikan notasinya beruppa
array notes[] = "ccggaagffeeddc" dengan beat yaitu array beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1, 1, 2, 4 }. Kemudian deklarasikan tempo 0.3 detik. Pada fungsi playTone() terdapat looping for
dengan kondisi i < duration * 1000L dimana L merupakan panjang. Fungsi playTone() ini untuk
mengatur durasinya. Pada fungsi playNote() terdapat looping untuk memainkan note sesuai
dengan yang dideklarasikan. Pada setup() deklarasikan speakerPin sebagai output. Pada loop()
terdapat looping nada dengan ketentuan delay tiap nada adalah 0.15 detik.
Pada percobaan ketiga yaitu untuk menampilkan lagu lihat kebunku. Dengan rangkaian
yang sama dengan sebelumnya. Seperti biasa deklarasikan pin yang digunakan dengan nama
speaker. Pada setup dibiarkan kosong saja. Lalu buat fungs-fungsi DO(), RE(), MI(), FA(),
SOL(), LA(), SI(), DOO() yang isinya merupakan frekuensi dari tiap nada doremifasollasido.
Serta fungsi DIAM() yang berisi pin saja yang artinya ini nada diam. Kemudian pada loop() kita
mainkan lagunya dengan memanggil satu persatu fungsinya sesuai nada lagu. Agar lagunya bisa
sesuai, diterapkan pula jeda tiap perpindahan nadanya.
Pada latihan pertama yaitu untuk menampilkan lagu bintang kecil. Dimana dari lagu
tersebut akan menyalakan led disetiap nadanya.
Pada latihan kedua yaitu untuk menampilkan lagu gundul pacul. Dengan int speaker =
9; membuat variabel Speaker dimana variabel ini akan menyimpan nilai 9, yang berarti pin 9
arduino akan digunakan untuk Speaker. void setup sengaja dikosongkan, karena tidak perlu
perintah pinMode(speaker, OUTPUT); , karena pada perintah tone yang ada di void loop, sudah
satu paket bahwa Speaker ini adalah OUTPUT. tone(speaker, 262); digunakan untuk membuat
nada DO, nilai 262 adalah frekuensi suara untuk nada DO. delay(500); menentukan bahwa nada
DO ini akan berbunyi selama 500 milidetik. Dari program ini, kita belajar bahwa setiap nada
yang di bunyikan oleh Speaker memiliki frekuensi seperti tabel dibawah ini:
Untuk mempermudah pembuatan NADA kamu bisa membuat Fungsi Variabel, untuk setiap
nada, seperti; void DO() { tone(speaker, 262); }Lalu nantinya kamu tinggal
masukan DO(); kedalam void loop ditambah delay.

Kesimpulan
Pada percobaan di atas didapatkan kesimpulan sebagai berikut :
1. Fungsi methot tone(pinarduino, frekuensi) adalah untuk menampilkan nada dengan frekuensi
tersebut pada pinArduino tersebut.
2. Delay pada setiap nada berfungsi juga sebagai durasi nada tersebut. Contohnya tone(speaker,
395); delay(500); artinya nada sol berdurasi 500ms.
3. Untuk menampilkan diam / tanpa nada bisa menggunakan perintah tone(pinarduino).
4. Untuk mendeklarasikan nada menggunakan notasi, dideklarasikan juga timeHigh tiap
notasinya atau bunyi tiap notasi.

Anda mungkin juga menyukai