Anda di halaman 1dari 7

Mikrokontroller II

TMK
Percobaan
MEMBUAT RINGTONE PADA ARDUINO UNO

1. Tujuan : Dapat membuat ringtone pada simulasi Arduino


2. Dasar Teori
Uno Arduino adalah board berbasis mikrokontroler

pada

ATmega328 .Board ini memiliki 14 digital input / output pin (dimana 6


pin dapat digunakan sebagai output PWM), 6 input analog, 16 MHz
osilator kristal, koneksi USB, jack listrik tombol reset. Pin-pin ini berisi
semua yang diperlukan untuk mendukung mikrokontroler, hanya
terhubung ke komputer dengan kabel USB atau sumber tegangan bisa
didapat dari adaptor AC-DC atau baterai
3. Alat dan Bahan
1. Laptop
2. Arduino Uno
3. Speaker
4. Kabel wire
5. Ground
6. Software Proteus
7. Software Arduno

4. Gambar Rangkaian

Mikrokontroller II
TMK

5. Langkah Percobaan
1. Siapkan alat dan bahan
2. Buka Software proteus dan buat gambar seperti gambar rangkaian
3.
4.
5.
6.

diatas
Buka Software Arduino dan buat listing programnya.
Copy File berbentuk .hex pada Arduino
Upload ke rangkaian yang telah dibuat.
Jalankan pada simulasi Proteus.

6. Hasil dan pembahasan


Pada percobaan yang telah dilakukan lagu yang dipilih adalah
lagu Indonesia merdeka dengan not sebagai berikut.

Mikrokontroller II
TMK

Adapun listing program untuk lagu diatas adalah sebagai berikut:


int length = 79 ; // ini panjang lagu
char notes[] = " ggCCDDE EFGCDEFD ggDDEEFEDCgggabC CCaCACFGAG
CCCaCFG GAGFEDCCCCaGcccCDECCAGbC "; // ini lagunya
int beats[] = { 3, 2, 2, 2, 2, 2, 3, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2,
1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1,
1, 1, 3, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1 , 1, 1, 2, 1, 1, 1, 2, 1 }; // ini ketukannya */
int tempo = 100;
int speakerPin = 9;
void playTone(int tone, int duration) {
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) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G', 'A', 'B' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956, 851, 758,
716, 638, 568, 506 };
// play the tone corresponding to the note name
for (int i = 0; i < 14; i++) {

Mikrokontroller II
TMK
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
void setup() {
pinMode(speakerPin, OUTPUT);
}
void loop() {
for (int i = 0; i < length; i++) {
if (notes[i] == ' ') {
delay(beats[i] * tempo); // rest
} else {
playNote(notes[i], beats[i] * tempo);
}
// pause between notes
delay(tempo / 2);
}
}

Analisa Program
N
o
1

Program
int speakerPin = 9;

Analisa
Mendeklarasikan pin 9
sebagai Output

int length = 79;

Speaker
Mendeklarasikan

Mikrokontroller II
TMK
jumlah not pada lagu
3

char notes[] = ""ggCCDDE EFGCDEFD

yaitu 59 not.
Variabel array sebagai

ggDDEEFEDCgggabC CCaCACFGAG CCCaCFG

penyimpan not lagu.

GAGFEDCCCCaGcccCDECCAGbC"; ";

Untuk not angka


mewakili karaktek
huruf
1= C, 2= D, 3= E, 4=

int beats[] = { 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1,

F, 5= G, 6= A dan 7= B
Sebagai variabel array

1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1,

penyimpan nilai

2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1,

ketukan setiap not

2, 1, 1, 2, 1, 1, 1, 3, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1 , 1,

pada lagu

1, 2, 1, 1, 1, 2, 1};

int tempo = 100;

Tempo lagu yaitu 100.

void playTone(int tone, int duration) {

Mengatur pin output

for (long i = 0; i < duration * 1000L; i +=


tone * 2) {
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}

untuk menjalaankan
lagu sesuai dengan not
dan ketukannya

Mikrokontroller II
TMK

void playTone(int tone, int duration) {


for (long i = 0; i < duration * 1000L; i +=
tone * 2) {

Menyimpan not standar


dan frekuensi pada
setiap not

digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}

void setup() {
pinMode(speakerPin, OUTPUT);

Inisialiasasi pin 9
sebagai output

}
8

void loop() {
for (int i = 0; i < length; i++){
if (notes[i] == ' '){
delay(beats[i] * tempo); // rest
}else{
playNote(notes[i], beats[i] * tempo);
}
delay(tempo / 2);
}
}

Menjalankan lagu
sesuai dengan nada
yang tersimpan pada
variabel nots dan
ketukan pada variabel
beets

Mikrokontroller II
TMK
7. Kesimpulan
Pada Percobaan yang telah dilakukan dengan membuat
Ringtone dengan lagu garuda Pancasila

.
Pada percobaan ini digunakan software Proteus sebagi simulasi dan
software arduino sebagai pemprograman . Garuda Pancasila dapat
didengarkan dengan menggunakan simulasi proteus .

Anda mungkin juga menyukai