Anda di halaman 1dari 19

PRAKTIKUM INTERFACING & MIKROKONTROLLER

PEMROGRAMAN MELODY

Disusun oleh:
Faris Rizki Ramadhani (1941220029)

PRODI D-IV TEKNIK OTOMOTIF ELEKTRONIK


TEKNIK MESIN
POLITEKNIK NEGERI MALANG
2020/2021
PRAKTIKUM INTERFACING & MIKROKONTROLLER
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.

Gambar 1. Skema rangkaian koneksi Arduino dengan buzzer

Berikut merupakan tabel frekuensi yang dapat digunakan untuk menghasilkan nada sesuai
dengan yang diinginkan.
Tabel 1. Tabel frekuensi untuk arduino

(Silahkan Anda ketikkan tambahkan sendiri, jika ada, dasar teori yang berisi tentang
pengertian, cara kerja, dan fungsi dari Antarmuka Buzzer/Piezoelectric)

C. HARDWARE
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Buzzer / Piezo speaker
5. Resistor 330 Ohm
6. LED
7. Kabel Data USB
D. RANGKAIAN PERCOBAAN

Gambar 3. Skema koneksi antarmuka Arduino ke buzzer

(Silahkan Anda lanjutkan dengan menambahkan gambar rangkaian percobaan simulasi interface
buzzer/piezo speaker yang Anda buat sendiri melalui software Proteus/Tinkercad)

E. LANGKAH PERCOBAAN
1. Buka dan buat project di Proteus.
2. Rangkailah project simulasi Arduino untuk Komunikasi Serial.
3. Buka Visual Studio Code / Arduino IDE.
4. Buat programnya dan jalankan, pastikan tidak ada error.

5. Copy as path file “firmware.hex” pada board Arduino UNO di Proteus


6. Jalankan simulasi rangkaian, Run the Simulation.

Langkah Percobaan pada Hardware Arduino


1. Tancapkan USB serial ke komputer.
2. Pastikan drivernya sudah terinstall dan dikenali dengan benar.
3. Cek driver, lihat port COM dan samakan pada software Arduino IDE.

4. Jalankan Arduino dan buat programnya.


F. PROGRAM
1. Percobaan 1) Bunyi DO-RE-MI-FA-SOL-LA-SI-DO pada Tinkercad

2. Percobaan 2) Bunyi DO-RE-MI-FA-SOL-LA-SI-DO pada Proteus


3. Percobaan 3) Bunyi yang menghasilkan lagu “Twinkle Little Star”

4. Percobaan 4) Bunyi yang menghasilkan lagu “Lihat Kebunku” atau lagu lainnya.
5. Percobaan 5) Buatlah eksperimen dengan menggunakan kombinasi nada-nada / lagu lain
yang disertai dengan tampilan LED di Proteus (Minimal 5 LED). Tiap mahasiswa harus
menghasilkan lagu yang berbeda.

G. ANALISIS HASIL PERCOBAAN


1. Percobaan 1) Bunyi DO-RE-MI-FA-SOL-LA-SI-DO pada Tinkercad
2. Percobaan 2) Bunyi DO-RE-MI-FA-SOL-LA-SI-DO pada Proteus

int speaker = 9;
void setup() { }

void loop() {
tone (speaker, 262); delay (1000);
tone (speaker, 294); delay (1000);
tone (speaker, 330); delay (1000);
tone (speaker, 349); delay (1000);
tone (speaker, 395); delay (1000);
tone (speaker, 440); delay (1000);
tone (speaker, 494); delay (1000);
tone (speaker, 523); delay (1000);
}

3. Percobaan 3) Bunyi yang menghasilkan lagu “Twinkle Little Star”


int speaker = 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) {


for (long i = 0; i < duration*1000L; i += tone * 2){
digitalWrite (speaker, HIGH);
delayMicroseconds (tone);
digitalWrite (speaker, LOW);
delayMicroseconds (tone);
}
}

void playNote (char note, int duration){


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() {
pinMode (speaker, 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);
}
}
4. Percobaan 4) Bunyi yang menghasilkan lagu “Lihat Kebunku” atau lagu lainnya.

int speaker = 9;

void setup(){ }

void DO1() {tone(speaker,131);}


void RE1() {tone(speaker,147);}
void MI1() {tone(speaker,165);}
void FA1() {tone(speaker,175);}
void SOL1() {tone(speaker,196);}
void LA1() {tone(speaker,220);}
void SI1() {tone(speaker,247);}

void DO() { tone(speaker, 262); } // fungsi variabel untuk nada DO


void RE() { tone(speaker, 294); } // fungsi variabel untuk nada RE
void MI() { tone(speaker, 330); } // fungsi variabel untuk nada MI
void FA() { tone(speaker, 349); } // fungsi variabel untuk nada FA
void SOL() { tone(speaker, 392); } // fungsi variabel untuk nada SOL
void LA() { tone(speaker, 440); } // fungsi variabel untuk nada LA
void SI() { tone(speaker, 494); } // fungsi variabel untuk nada SI
void DOO() { tone(speaker, 523); } // fungsi variabel untuk nada DOO
void REE() { tone(speaker, 587); } // fungsi variabel untuk nada REE
void MII() { tone(speaker, 659); } // fungsi variabel untuk nada MII
void FAA() { tone(speaker,698);}
void SOOL() { tone(speaker, 784);}
void LAA() { tone(speaker, 879); }
void SII() { tone(speaker,987);}
void DIAM() { noTone(speaker); } // fungsi variabel untuk nada DIAM

void loop(){
MI1();delay(300);
FA1();delay(400);
SOL1();delay(500);
MI();delay(550);
DIAM();delay(100);
MI();delay(400);
RE();delay(400);
DIAM();delay(50);
RE();delay(400);
DO();delay(500);
SOL1();delay(1000);
DIAM();delay(500);

SOL1();delay(500);
DIAM();delay(50);
SOL1();delay(400);
LA1();delay(500);
SOL1();delay(500);
FA1();delay(500);
MI1();delay(500);
RE1();delay(1000);
DIAM();delay(500);

RE1();delay(500);
MI1();delay(400);
FA1();delay(500);
DO();delay(700);
DIAM();delay(50);
DO();delay(300);
SI1();delay(500);
DIAM();delay(50);
SI1();delay(500);
LA1();delay(500);
SOL1();delay(1000);
DIAM();delay(500);

SOL1();delay(400);
DIAM();delay(50);
SOL1();delay(300);
SI1();delay(500);
LA1();delay(500);
SOL1();delay(500);
FA1();delay(600);
MI1();delay(1000);
DIAM();delay(500);

}
5. Percobaan 5) Buatlah eksperimen dengan menggunakan kombinasi nada-nada / lagu lain
yang disertai dengan tampilan LED di Proteus (Minimal 5 LED). Tiap mahasiswa harus
menghasilkan lagu yang berbeda.

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 = 13;


const int ledPin1 = 11;
const int ledPin2 = 12;

int counter = 0;

void setup()
{
//Setup pin modes
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}

void loop()
{

//Play first section


firstSection();

//Play second section


secondSection();

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();

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);

//Play different LED depending on value of 'counter'


if(counter % 2 == 0)
{
digitalWrite(ledPin1, HIGH);
delay(duration);
digitalWrite(ledPin1, LOW);
}else
{
digitalWrite(ledPin2, HIGH);
delay(duration);
digitalWrite(ledPin2, LOW);
}

//Stop tone on buzzerPin


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);
}
H. KESIMPULAN
Setelah melakukan percobaan di atas, buatlah kesimpulan pengamatan yang Anda alami selama
melakukan percobaan)

Kesimpulan dari praktikum melodi diatas sangat sulit untuk menngunakan combinasi LED
dengan Melodi saya telah mengotak atik berkali kali dan akhirnya bisa.memakan waktu cukup
banyak untuk menganalisis kodingan nomor 5.

Anda mungkin juga menyukai