PEMILIH MELODI TERPROGRAM
Rizqy Budiharnanto1, Unik Safitri2, Samuel BETA3
Prodi Teknik
Elektronika Jurusan Teknik Elektronika Politeknik
Negeri Semarang
Jl. Prof. H. Soedarto, SH, Tembalang,
Semarang, 50275
E-mail : 1rizkybudi8686@gmail.com,
Intisari – Modul Pemilih melodi terprogram
ini merupakan modul untuk memutarkan sebuah lagu dengan menggunakan keypad
sebagai masukan untuk memilih lagunya. Modul ini juga menggunakan penguat
sebagai penghubung antara keypad dengan sepiker. Pengaturan pemutaran lagu
diproses melalui pemroses yaitu ARM NUC120. Modul ini dapat diterapkan dalam
sebuah ayunan bayi, sebagai fitur pelengkap dari sebuah ayunan bayi.
Kata Kunci : ARM NUC120, Keypad, Sepiker
Abstract – Programmed Melody Track
Selector Module this is a module for playing a song using the keypad as input
to select the song. This module also uses Amplifier as a liaison between Mini
keypad with speaker. Song playback settings are processed through a processor
that is ARM NUC120. This module can be applied in a baby swing, as a
complementary feature of a baby swing.
Keyword : ARM NUC120, Keypad, Speaker
I. Pendahuluan
1.1
Latar Belakang
Melodi
adalah urutan nada dan jangka waktu nada, sementara, dalam arti lain, istilah
tersebut memasukkan suksesi unsur musik lain seperti warna nada. Melodi sering digunakan dalam
mainan-mainan anak, untuk nada bel pada rumah atau keperluan lainnya. Di zaman
moderen dan canggih seperti saat ini orang-orang menginginkan sesuatu yang
serba mudah dan cepat.
Kemudian dibuatlah sebuah
sistem pemilih melodi terprogram yang dapat memilih nada yang diinginkan
menggunakan masukan berupa papan tombol. Dengan keluaran berupa sepiker dan
penampil (LCD) yang digunakan untuk memberitahukan judul lagu yang diputar. Selain
itu juga ditambahkan modul penguat untuk mengatur volume dari nada yang
dimainkan.
Program dibuat menggunakan
pemroses ARM NUC 120 untuk membuat rangkaian nada yang dirangkai menjadi sebuah
harmoni atau lagu yang diinginkan.
1.2 Tujuan
Tujuan
pembuatan alat ini adalah :
1.
Alat ini
digunakan untuk memilih melodi
secara terprogram.
2.
Mampu
memprogram alat pemilih
melodi.
1.3 Rumusan Masalah
Berdasarkan latar belakang, akan
ditentukan beberapa rumusan masalah, yaitu :
1.
Bagaimana cara membuat
alat pemilih melodi terprogram?
2.
Bagamaiana
cara memprogram alat pemilih melodi terprogram?
1.4 Pembatasan Masalah
Adapun yang membatasi alat ini
adalah :
1.
Perancangan
perangkat keras (hardware) yang terdiri dari ARM NUC120, keypad, sepiker, modul amplifier dan LCD
.
2.
Memahami
cara kerja dari masing-masing komponen.
3.
Tanda
peringatan pada sistem ini berupa LCD.
4.
Sistem
yang dibuat berbasis mikrokontroller ARM NUC120.
1.5 Metodologi
Metode yang digunakan
dalam pembuatan Pemilih
Melodi Terprogram adalah sebagai berikut:
1.
Metode Persiapan
Berisikan tentang pemilihan materi serta jurnal
yang akan dijadikan dasar atau literatur dalam pembuatan alat pemilih melodi terprogram.
2.
Metode Perencanaan
Menentukan rancangan sistem, alat, serta program
aplikasi yang akan digunakan dalam pembuatan alat pemilih melodi terprogram.
3. Metode Perancangan
Pembuatan program keypad sebagai masukan, LCD
sebagai display serta speaker
sebagai luaran pada ARM NUC120.
4. Pengujian Alat
Melakukan pengujian alat pemilih melodi terprogram dengan speaker dan LCD sebagai luaran apakah sudah sesuai rencana atau belum.
5. Tahap Penyusunan Laporan
Menyusun laporan hasil dari pembuatan alat dalam
bentuk laporan penelitian.
1.6
Ruang Lingkup
Berdasarkan rumusan
masalah diatas, agar pembahasan terfokus pada perumusan masalah yang akan
dibahas pada alat ini sebagai berikut :
1. Alat
pemilih melodi terprogram ini masih dibuat dalam bentuk prototipe.
2.
Keypad digunakan untuk memilih
melodi secara terprogram.
II. Tinjauan Pustaka
Untuk mengetahui berbagai komponen dan peralatan yang
dibutuhkan, maka disusunlah tinjauan pustaka sebagai acuan dalam merancang dan
membuat aplikasi
menggunakan ARM NUC120 ini.
2.1 Keypad
Pada
dasarnya keypad yang ada dipasaran baik yang berukuran keypad 3×3, 3×4 atau
4×4, hanya tersusun dari beberapa push
button yang dikonfigurasikan antara kolom dengan baris. Sehingga sering
disebut juga keypad matriks nxm (n=kolom m=baris). Kolom dan baris ini nantinya
yang digunakan untuk pendeteksian penekanan tombol. Berikut adalah konfigurasi
dasar untuk keypad 4×4.
Row 1, Row 2, Row 3 dan Row 4 merupakan baris ke 1
sampai baris ke 4, sedangkan Col 1, Col 2, Col 3 dan Col 4 merupakan kolom ke 1
sampai kolom ke 4 keypad. Terlihat sederhana rangkaian dasar keypad untuk
ukuran keypad 4×4 yang terdiri dari 16 buah push
button yang dikonfigurasikan seperti matriks.
Menggunakan susunan seperti biasa maka akan
menghabiskan 8 pin mikrokontroler untuk 16 buah tombol. Jadi lebih ringkas dan
irit dalam penggunaan pin mikrokontroler.
2.2 Speaker
(Pengeras Suara)
Pengeras suara adalah transduser yang mengubah sinyal elektrik ke frekuensi audio (suara) dengan cara menggetarkan komponennya yang
berbentuk membran untuk menggetarkan udara sehingga terjadilah gelombang suara
sampai di kendang telinga kita dan dapat kita dengar sebagai suara.
Sistem pada pengeras suara adalah suatu komponen yang mengubah
kode sinyal elektronik terakhir menjadi gerakan mekanik. Dalam penyimpan suara
pada kepingan CD, pita magnetik tape, dan kepingan DVD, dapat direproduksi oleh pengeras suara loud speaker
yang dapat kita dengar. Pengeras suara adalah sebuah teknologi yang memberikan
dampak yang sangat besar terhadap budaya kita,
Speaker mengubah gelombang listrik menjadi getaran suara. Proses
pengubahan gelombang listrik/ elektromagnet menjadi gelombang suara terjadi
karena adanya aliran listrik arus AC, audio dari penguat audio ke dalam
kumparan yang menghasilkan gaya magnet sehingga akan menggerakkan membran, kuat
lemahnya arus listrik yang diterima akan mempengaruhi getaran padam membran,
bergetarnya membran ini menghasilkan gelombang bunyi yang dapat kita dengar.
Gambar 3 Speaker (Pengeras Suara)
2.3 LCD
(Liquid Crystal Display)
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang
menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai
bidang misalnya alal–alat elektronik seperti televisi, kalkulator, atau pun
layar komputer. Pada postingan aplikasi LCD yang digunakan ialah LCD dot matrik
dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil yang
nantinya akan digunakan untuk menampilkan status kerja alat.
Fitur LCD 16 x 2
Adapun fitur yang disajikan dalam
LCD ini adalah :
a. Terdiri dari 16 karakter dan 2
baris.
b. Mempunyai 192 karakter
tersimpan.
c. Terdapat karakter generator
terprogram.
d. Dapat dialamati dengan mode
4-bit dan 8-bit.
e. Dilengkapi dengan back light.
Gambar 4 LCD 16x2
Tabel 1
Konfigurasi Pin LCD 6x12
Nomor Pin
|
Nama
|
Keterangan
|
1
|
GND
|
Ground
|
2
|
VCC
|
+5V
|
3
|
VEE
|
Contras
|
4
|
RS
|
Register Select
|
5
|
RW
|
Read/Write
|
6
|
E
|
Enable
|
7-14
|
D0-D7
|
Data Bit (0-7)
|
15
|
A
|
Anoda
|
16
|
K
|
Katoda
|
Pada
aplikasi umumnya RW diberi logika rendah “0”. Bus data terdiri dari 4-bit atau
8-bit. Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7.
Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah
parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan
dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang
8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit
yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit
(pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap
nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa
mikrokontroller mengirimkan data ke LCD.
Untuk mengirim data ke LCD program harus menset EN ke kondisi high “1” dan kemudian menset dua jalur
kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus
Saat
jalur lainnya sudah siap, EN harus diset ke “0” dan tunggu beberapa saat
(tergantung pada datasheet LCD), dan
set EN kembali ke high “1”. Ketika
jalur RS berada dalam kondisi low
“0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau
instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam
kondisi high atau “1”, data yang
dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk
menampilkan huruf “A” pada layar maka RS harus diset ke “1”. Jalur kontrol R/W
harus berada dalam kondisi low (0)
saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam
kondisi high “1”, maka program akan
melakukan query (pembacaan) data dari
LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD),
lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang
menggunakan LCD, R/W selalu diset ke “0”. Jalur data dapat terdiri 4 atau 8
jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5,
DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2
mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan
mode operasi merupakan hal yang paling penting.
Mode
8-bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah
aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin
untuk data). Sedangkan mode 4 bit minimal hanya membutuhkan 7-bit (3 pin untuk
kontrol, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau
instruksi yang akan ditransfer antara mikrokontroller dan LCD. Jika bit ini di
set (RS = 1), maka byte pada posisi kursor LCD saat itu dapat dibaca atau
ditulis. Jika bit ini di reset (RS = 0), merupakan instruksi yang dikirim ke
LCD atau status eksekusi dari instruksi terakhir yang dibaca.
2.4 ARM NUC120
Modul ini
dapat bekerja dengan kecepatan CPU sampai dengan 48MHz. Modul ini juga telah dilengkapi
dengan bootloader internal, sehingga tidak diperlukan lagi device program eksternal.
Pemrograman melalui bootloader bisa
dilakukan dengan menggunakan koneksi USB.
Spesifikasi ARM NUC120:
•
Berbasis
mikrokontroler NUC120RD2BN (64 KB APROM, 8 KB SRAM, 4 KB Data Flash, CPU ARM
Cortex-M0).
•
Terintegrasi
dengan cystal eksternal 12 MHz.
•
Terintegrasi
dengan osilator 32.768 kHz sebagai sumber clock RTC.
•
Memiliki
1x port USB.
•
Memiliki
1 port RS-485.
•
Memiliki
3 kanal UART dengan level tegangan TTL 3.3VDC / 5VDC.
•
Tersedia
port USB yang berfungsi untuk antarmuka serial sekaligus menuliskan program
mikrokontroler, sehingga tidak membutuhkanprogrammer eksternal.
•
Memiliki
port Serial Wire Debug untuk proses debuging dan programming.
•
Memiliki
45 jalur GPIO.
•
Terintegrasi
dengan sensor suhu internal.
•
Memiliki
port input 8 kanal ADC 10-bit.
•
Bekerja
pada level tengan 3,3VDC / 5VDC dengan arus maksimum 800mA.
Gambar 5 ARM
NUC120
III. PERANCANGAN ALAT
Bab ini akan dibahas tentang perancangan dan
pembuatan alat pemilih melodi terprogram. Perancangan sistem ini meliputi
perancangan perangkat lunak (software) dan perangkat keras (hardware).
3.1 Perangkat Keras dan
Rangkaian Elektronika
Adapun sistem yang
digunakan adalah:
1.
Keypad
2.
ARM NUC120
3.
Speaker (pengeras suara)
4.
LCD
3.2 Perancangan Diagram Blok
Diagram
blok PEMILIH MELODI TERPROGRAM menggunakan masukan berupa keypad. Keluaran
LCD dan speaker (pengeras suara). Berikut
ini adalah blok diagram pemilih
melodi terprogram.
Gambar 6 Diagram Blok
3.3 Perancangan Perangkat
Lunak
Perangkat lunak ini
berfungsi untuk mengatur kinerja secara keseluruhan dari sistem. Perangkat lunak untuk alat ini menggunakan software ARM NUC120. Untuk memberikan gambaran umum jalannya program dan memudahkan
pembuatan perangkat lunak maka dibuatlah diagram alir sebagai berikut:
IV. CARA KERJA
1.
Keypad
digunakan untuk
memilih lagu.Setiap tombol angka yang ditekan pada keypad, akan
memutarkan lagu sesuai dengan urutan yang telah ditentukan.
2.
Keluarannya
adalah speaker. Speaker akan mengeluarkan suara lagu sesuai
dengan tombol yang ditekan.
3.
LCD
digunakan untuk menampilkan pilihan lagu yang dipilih.
V. HASIL DAN PEMBAHASAN
Gambar 8 Gambar
Rangkaian
5.2 Skema pengawatan
Gambar 9 Pengawatan Dalam
5.3 List program
Pemrogram : Kelompok EK-3C/08
1. 13-Rizqy Budiharnanto NIM:3.32.15.2.18
2. 15-Unik Safitri NIM:3.32.15.2.20
-----------------------------------------------------------------
Proyek- Pemilih
Melodi Terprogram
-----------------------------------------------------------------
-----------------------------------------------------------------
Komponen:
- 1x sepiker
- 1x
Keypad
- 1x
LCD 16x2
===============================================================*/
#include <NUC1xx.h>
#include <DrvSYS.h>
#include <DrvGPIO.h>
#include <stdio.h>
#include "Note_Freq.h"
#include "keypad.h"
#include "lcd.h"
#include "nada.h"
#include "daftarLagu.h"
/****************************************************************
* Deklarasi
Alias *
****************************************************************/
//definisi
nilai ketukan
#define K101 1000000 // 1 ketukan untuk
1 nada
#define K102 500000 // 2
#define K104 250000 // 4
#define K108 125000
#define P125ms 125000
#define P250ms 250000
#define P500ms 500000
#define P1S
1000000
/****************************************************************
* Deklarasi
Variabel Global *
****************************************************************/
char
dataKey=0xFF; // Variabel
penyimpanan data tombol
uint8_t
i;
uint32_t Clock;
uint32_t
Frequency;
uint8_t PreScaler;
uint8_t ClockDivider;
uint8_t DutyCycle;
uint16_t
CNR, CMR;
/*
--------------------------- Music 1
------------------------------------------------------------*/
uint16_t
music1[72] = {
N30t ,N25t ,N30t ,N25t ,N30t
,N70s ,N20t ,N10t ,N60s ,N60s , 0 , 0
,
N10s ,N30s
,N60s ,N70s ,N70s , 0 ,N10s ,N60s
,N70s ,N10t ,N10t , 0 ,
N30t ,N25t
,N30t ,N25t ,N30t ,N70s ,N20t ,N10t ,N60s ,N60s , 0 , 0 ,
N10s ,N30s
,N60s ,N70s ,N70s , 0 ,N30s ,N10t
,N70s ,N60s ,N60s , 0 ,
N70s ,N10t
,N20t ,N30t ,N30t , 0 ,N50s ,N40s
,N30t ,N20t ,N20t , 0 ,
N40s ,N30t
,N20t ,N10t ,N10t , 0 ,N30s ,N20t
,N10t ,N70s ,N70s , 0
};
uint32_t
pitch1[72] = {
K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104,
K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104,
K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104,
K102, K102, K102, K102, K102, K102, K102, K102, K102, K102, K102, K102,
K102, K102, K102, K102, K102, K102, K102, K102, K102, K102, K102, K102,
K102, K102, K102, K102, K102, K102, K102, K102, K102, K102, K102, K102
};
/*
--------------------------- Music 2
------------------------------------------------------------*/
uint16_t
music2[72] = {
N30t ,N25t ,N30t ,N25t ,N30t ,N70s ,N20t
,N10t ,N60s ,N60s , 0 , 0 ,
N10s ,N30s ,N60s ,N70s
,N70s , 0 ,N10s ,N60s ,N70s ,N10t
,N10t , 0 ,
N30t ,N25t ,N30t ,N25t
,N30t ,N70s ,N20t ,N10t ,N60s ,N60s , 0
, 0 ,
N10s ,N30s ,N60s ,N70s
,N70s , 0 ,N30s ,N10t ,N70s ,N60s
,N60s , 0 ,
N70s ,N10t ,N20t ,N30t
,N30t , 0 ,N50s ,N40s ,N30t ,N20t
,N20t , 0 ,
N40s ,N30t ,N20t ,N10t
,N10t , 0 ,N30s ,N20t ,N10t ,N70s
,N70s , 0
/*E7 ,D7u,E7 ,D7u,E7 ,B6 ,D7
,C7 ,A6 ,A6 , 0 , 0 ,
C6 ,E6 ,A6 ,B6 ,B6 , 0 ,C6 ,A6 ,B6 ,C7
,C7 , 0 ,
E7 ,D7u,E7 ,D7u,E7 ,B6 ,D7 ,C7 ,A6 ,A6
, 0 , 0 ,
C6 ,E6 ,A6 ,B6 ,B6 , 0 ,E6 ,C7 ,B6 ,A6
,A6 , 0 ,
B6 ,C7 ,D7 ,E7 ,E7 , 0 ,G6 ,F7 ,E7 ,D7
,D7 , 0 ,
F6 ,E7 ,D7 ,C7 ,C7 , 0 ,E6 ,D7 ,C7 ,B6
,B6 , 0*/
};
uint32_t
pitch2[72] = {
K108, K108, K108, K108, K108, K108, K108, K108, K108, K108, K108, K108,
K108, K108, K108, K108, K108, K108, K108, K108, K108, K108, K108, K108,
K108, K108, K108, K108, K108, K108, K108, K108, K108, K108, K108, K108,
K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104,
K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104,
K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104, K104
};
/*---------------------------
Music 3 --------------------------------------------------------------*/
uint16_t
music3[77] = {
N60r ,N30s,N30s ,N30s,N20s ,N30s ,N10s
,N70r ,N60r,0 ,N30s ,N30s ,N30s ,N20s,N30s,N40r,N30s,N50r,N40r,0,
N50r ,N20s,N20s ,N20s,N10s ,N20s ,N70r
,N60r ,N50r,0 ,N20s ,N20s ,N20s ,N10s,N20s,N30s,N20s,N40r,N30s,0,
N60r ,N30s,N30s ,N30s,N20s ,N30s ,N10r
,N70r ,N60r,0 ,N30s ,N30s ,N30s ,N20s,N30s,N40r,N30s,N50r,N40r,0,
N50r ,N20s,N20s ,N20s,N10s ,N20s ,N70r
,N60r ,N50r,0 ,N60r ,N30s ,N10s ,N70r,N60r,N60r,0
};
uint32_t
pitch3[77] = {
K104, K104, K104, K104, K104, K102, K104, K102, K104,K104, K104, K104,
K104,K104,K104,K102, K104,K102,K104,K104,
K104, K104, K104, K104, K104, K102, K104, K102, K104,K104, K104, K104,
K104,K104,K104,K102, K104,K102,K104,K104,
K104, K104, K104, K104, K104, K102, K104, K102, K104,K104, K104, K104,
K104,K104,K104,K102, K104,K102,K104,K104,
K104, K104, K104, K104, K104, K102, K104, K102, K104,K104, K102, K104,
K102,K104,K102,K104, K104
};
/*uint16_t
music3[77] = {
A5 ,E6,E6 ,E6,D6 ,E6 ,C6 ,B5 ,A5,0 ,E6
, E6 , E6 , D6, E6, F6, E6, G6, F6,0,
G5,D6,D6,D6,C6,D6,B5,A5,G5,0,
D6,D6,D6,C6,D6,E6,D6,F6,E6,0,
A5 ,E6,E6 ,E6,D6 ,E6 ,C6 ,B5 ,A5,0 ,E6
, E6 , E6 , D6, E6, F6, E6, G6, F6,0,
G5,D6,D6,D6,C6,D6,B5,A5,G5,0,
A5,E6,C6,B5,A5,A5,0
};
uint32_t
pitch3[77] = {
P250ms, P250ms, P250ms, P250ms, P250ms, P500ms, P250ms, P500ms, P250ms,P250ms, P250ms, P250ms,
P250ms,P250ms,P250ms,P500ms, P250ms,P500ms,P250ms,P250ms,
P250ms, P250ms, P250ms, P250ms, P250ms, P500ms, P250ms, P500ms, P250ms,P250ms, P250ms, P250ms,
P250ms,P250ms,P250ms,P500ms, P250ms,P500ms,P250ms,P250ms,
P250ms, P250ms, P250ms, P250ms, P250ms, P500ms, P250ms, P500ms, P250ms,P250ms, P250ms, P250ms,
P250ms,P250ms,P250ms,P500ms, P250ms,P500ms,P250ms,P250ms,
P250ms, P250ms, P250ms, P250ms, P250ms, P500ms, P250ms, P500ms, P250ms,P250ms, P500ms, P250ms,
P500ms,P250ms,P500ms,P250ms, P250ms
};
/*---------------------------
Music 4 --------------------------------------------------------------*/
uint16_t
music4[84] = {
N60s,N70s,N15t,0,N15t,N15t,N70s,N60s,N70s,N30s,N30s,0,
N15t,N70s,N60s,0,N60s,N60s,N55s,N45s,N55s,N30s,N30s,0,
N20s,N15s,N20t,N20t,N30t,N20t,N15t,0,
N30s,N30s,N45s,N60s,N60s,N70s,N15t,N70s,0,
N60s,N70s,N15t,0,N15t,N15t,N70s,N60s,N70s,N30s,N30s,0,
N15t,N70s,N60s,0,N60s,N60s,N55s,N45s,N55s,N30s,N30s,0,
N20s,N15s,N20t,N20t,N20t,N30t,N20t,N15t,0,
N30s,N30s,N45s,N60s,N60s,N70s,N15t,N70s,N60s,0
};
uint32_t
pitch4[84] = {
K104,K104,K102,K104,K104,K104,K104,K104,K102,K104,K102,K104,
K104,K104,K102,K104,K104,K104,K104,K104,K102,K104,K102,K104,
K104,K104,K102,K104,K102,K104,K102,K104,
K104,K104,K102,K104,K102,K104,K102,K102,K104,
K104,K104,K102,K104,K104,K104,K104,K104,K102,K104,K102,K104,
K104,K104,K102,K104,K104,K104,K104,K104,K102,K104,K102,K104,
K104,K104,K102,K104,K102,K104,K102,K102,K104,
K104,K104,K102,K102,K104,K104,K102,K102,K102,K104
};
/*---------------------------
Music 5 --------------------------------------------------------------*/
uint16_t
music5[124] = {
N60r,N45r,N60r,N20s,0,N20s,0 ,N20s,N15s,N70r,N15s,N20s,N70r,N60r,0,
N60r,N45r,N60r,N20s,0,N20s,N30s,N45r,N50s,N45r,N30s,N20s,N30s,0,
N30s,N60r,N50r,N45r,0,N50r,N45r,N30s,N20s,N60r,N20s,N30s,N45r,N50r,N45r,N30s,N20s,0,
N20s,N15s,N70r,N60r,0,N30s,0,N30s,N45r,N50r,N45r,N15s,N30s,N20s,0,
N60r,N45r,N60r,N20s,0,N20s,0,N20s,N15s,N70r,N15s,N20s,N70r,N60r,0,
N60r,N45r,N60r,N20s,0,N20s,N30s,N45r,N50s,N45r,N30s,N20s,N30s,0,
N30s,N60r,N50r,N45r,0,N50r,N45r,N30s,N20s,N60r,N20s,N30s,N45r,N50r,N45r,N30s,N20s,0,
N20s,N15s,N70r,N60r,0,N30s,0,N30s,N45r,N50r,N45r,N15s,N30s,N20s,0,
};
uint32_t
pitch5[124] = {
K102,K102,K102,K102,K104,K104,K108,K102,K104,K102,K104,K102,K102,K102,K102,
K102,K102,K102,K102,K104,K104,K102,K104,K102,K104,K102,K102,K102,K102,
K102,K102,K102,K102,K104,K104,K102,K104,K102,K104,K102,K102,K102,K104,K104,K104,K104,K102,
K102,K102,K102,K102,K104,K104,K108,K102,K104,K102,K104,K102,K102,K102,K102,
K102,K102,K102,K102,K104,K104,K108,K102,K104,K102,K104,K102,K102,K102,K102,
K102,K102,K102,K102,K104,K104,K102,K104,K102,K104,K102,K102,K102,K102,
K102,K102,K102,K102,K104,K104,K102,K104,K102,K104,K102,K102,K102,K104,K104,K104,K104,K102,
K102,K102,K102,K102,K104,K104,K108,K102,K104,K102,K104,K102,K102,K102,K102
};
/*---------------------------
Music 3 --------------------------------------------------------------*/
/*uint16_t
music6[77] = {
C5,C5,D5,E5,C5,C5,D5,E5,C5,C5,G4,G4,C5,C5,A4,
G4,G4,G4,G4,C5,C5,A4,A4,E4,A4,G4,E4,D4,E4,C4,
C5,C5,D5,E5,C5,C5,D5,E5,C5,C5,G4,G4,C5,C5,A4,
G4,G4,G4,G4,C5,C5,A4,A4,E4,A4,G4,E4,D4,E4,C4,
C5,C5,C5,D5,E5,C5,C5,C5,D5,E5,C5,C5,C5,G4,G4,C5,C5,A4,
G5,G4,G4,G4,G4,C5,C5,A4,A4,E4,A4,G4,E4,D4,E4,C5,
C5,D4,E5,G4,E4,D4,E4,C4,C5,D4,E5,G4,E4,D4,E4,C4,C5,C5,G4,A4,G4,A4,C5,E4,A4,G4,E4,D5,C5
};
uint32_t
pitch36[77] = {
P250ms,P250ms,P250ms,P500ms,P250ms,P250ms,P250ms,P500ms,P250ms,P250ms,P500ms,P250ms,P250ms,P250ms,P500ms,
P500ms,P250ms,P500ms,P250ms,P500ms,P250ms,P500ms,P250ms,P250ms,P250ms,P250ms,P250ms,P250ms,P250ms,P500ms
};*/
//
===================================================
/****************************************************************
* Sub
Program *
****************************************************************/
void play_melodi(uint16_t
*tone, uint32_t *delay,int
jumlah){
for (i=0;
i<jumlah; i++) {
Frequency = tone[i];
CNR = Clock / Frequency /
(PreScaler + 1) / ClockDivider - 1;
CMR = (CNR +1) * DutyCycle /
100 - 1;
PWM_Out(0, CNR, CMR);
if
(Frequency==0) PWM_Stop(0);
DrvSYS_Delay(delay[i]);
}
}
void delay_ms(uint32_t times){
uint32_t a;
for(a=0;
a<times; a++){
DrvSYS_Delay(1000);
}
}
/****************************************************************
* Program
Utama *
****************************************************************/
int main(void){
char
buf1[17], buf2[17];// Variabel penyangga Tampilan
char
dataKey=0xFF; // Variabel
penyimpanan data tombol
uint16_t index=0;
// ============== Inisialisasi
====================
UNLOCKREG(); // buka register
DrvSYS_SetOscCtrl(E_SYS_XTL12M,1); // aktifkan
kristal 12Mhz dari luar
DrvSYS_Delay(5000); // jeda u kestabilan kristal
DrvSYS_SelectHCLKSource(0); // sumber
detak dari luar (kristal)
LOCKREG(); // tutup register
DrvSYS_SetClockDivider(E_SYS_HCLK_DIV,0); // set kristal sebagai
sumber detak 12MHz
lcd_init(); // inisialisasi
LCD
initKeypad(); // inisialisasi
Keypad
init_PWM(0, 0, 119, 4); // Inisialisasi
PWM0 (GPA12) untuk speaker
Clock = 12000000;
PreScaler = 119;
ClockDivider = 1;
DutyCycle = 25;
PWM_Stop(0);
// ----- Pesan Awal
-----
lcd_gotoxy(0,0);
lcd_print(" - Selamat - ");
lcd_gotoxy(0,1);
lcd_print(" - Datang - ");
delay_ms(1000);
lcd_clear();
// =============== Program Utama
=================
while(1){
dataKey = keyPressed(); // Baca penekanan
Keypad
lcd_gotoxy(0,0);
lcd_print(" Pilih Lagu: ");
// Jika tombol
1 ditekan, mainkan lagu 1
if(dataKey
== '1'){
lcd_gotoxy(0,1);
lcd_print("Lagu
1");
play_melodi(music1,
pitch1, 72);
//lcd_clear();
lcd_gotoxy(0,0);
lcd_print("Selesai.!");
delay_ms(1000);
lcd_clear();
}
// Jika tombol
2 ditekan, mainkan lagu 2
if(dataKey
== '2'){
lcd_gotoxy(0,1);
lcd_print("Lagu
2");
play_melodi(music2,
pitch2, 72);
//lcd_clear();
lcd_gotoxy(0,0);
lcd_print("Selesai.!");
delay_ms(1000);
lcd_clear();
}
// Jika tombol
3 ditekan, mainkan lagu 3
if(dataKey
== '3'){
lcd_gotoxy(0,1);
lcd_print("OPLOSAN");
play_melodi(music3,
pitch3, 77);
delay_ms(1000);
//lcd_clear();
lcd_gotoxy(0,0);
lcd_print(" Selesai.! ");
delay_ms(1000);
lcd_clear();
}
// Jika tombol
4 ditekan, mainkan lagu 4
if(dataKey
== '4'){
lcd_gotoxy(0,1);
lcd_print("BOJO
GALAK");
play_melodi(music4,
pitch4,84);
delay_ms(1000);
//lcd_clear();
lcd_gotoxy(0,0);
lcd_print(" Selesai.! ");
delay_ms(1000);
lcd_clear();
}
// Jika tombol
5 ditekan, mainkan lagu 5
if(dataKey
== '5'){
lcd_gotoxy(0,1);
lcd_print("TOMBO
ATI");
play_melodi(music5,
pitch5,124);
delay_ms(1000);
//lcd_clear();
lcd_gotoxy(0,0);
lcd_print(" Selesai.! ");
delay_ms(1000);
lcd_clear();
}
// Jika tombol 6 ditekan, mainkan lagu 6
/*if(dataKey == '6'){
lcd_gotoxy(0,1);
lcd_print("BOJO
GALAK");
play_melodi(music6,
pitch6,84);
delay_ms(1000);
//lcd_clear();
lcd_gotoxy(0,0);
lcd_print(" Selesai.! ");
delay_ms(1000);
lcd_clear();
}*/
delay_ms(1);
|
VI. KESIMPULAN
Setelah melakukan percobaan,
pengambilan data, dan penganalisaan terhadap data yang telah didapat pada proyek ini, maka didapatkan
kesimpulan yaitu sebagai berikut:
1. ARM
NUC120 dapat memudahkan kita dalam kehidupan sehari-hari terutama untuk
instrumentasi sebagai mikrokontroler yang canggih.
2. Proyek ARM ini berhasil dibuat
untuk memilih dan memutarkan lagu menggunakan keypad sesuai dengan
keinginan.
REFERENSI
[1]
http://teknikelektronika.com/fungsi-pengertian-Speaker-prinsip-kerja-Speaker/
[3]
https://telinks.wordpress.com/2010/04/24/perancangan-sensor-ketinggian-air-tandon/
[4]
Manual DT-ARM
NUC120 Board.pdf
Rizqy Budiharnanto. Penulis dilahirkan di Kudus, tanggal 14 April 1997. Penulis telah menempuh pendidikan formal di SD N 1 Kaliputu Kudus, SMP N 5 Kudus, dan SMAN 2 Kudus. Tahun 2015 penulis telah menyelesaikan pendidikan SMA. Pada tahun 2015 penulis mengikuti seleksi mahasiswa baru diploma (D3) dan diterima menjadi mahasiswa baru diploma (D3) di kampus Politeknik Negeri Semarang (Polines) dengan Program Studi D3 Teknik Elektronika, Jurusan Teknik Elektro. Penulis terdaftar dengan NIM. 3.32.15.2.18. Apabila ada kritik, saran dan pertanyaan mengenai penelitian ini, bisa melalui via email: rizkybudi8686@gmail.com
Nama Penulis
Nama Penulis
Unik Safitri. Penulis dilahirkan di Pati, tanggal 1
Maret 1995. Penulis telah menempuh pendidikan formal di SDN Dukutalit 02 SMPN 1 Juwana, dan SMA N 1 Juwana. Tahun 2013 penulis telah menyelesaikan
pendidikan SMA. Pada tahun 2015 penulis mengikuti seleksi mahasiswa baru diploma (D3) dan
diterima menjadi mahasiswa baru diploma (D3) di kampus Politeknik Negeri
Semarang (Polines) dengan Program Studi D3 Teknik Elektronika, Jurusan Teknik
Elektro. Penulis terdaftar dengan NIM. 3.32.15.2.20. Apabila ada kritik, saran
dan pertanyaan mengenai penelitian ini, bisa melalui via email:uniksafitri20@gmail.com .
Nama
pengajar Samuel BETA. Beliau mengajar di program studi Teknik
Elektronika, Jurusan Teknik Elektro, Politeknik Negeri Semarang. Email : sambetak2@gmail.com
Lampiran:
1. Diagram Alir Klik di sini
2. Diagram Blok Klik di sini
3. Gambar Rangkaian Klik di sini
4. Jurnal Klik di sini
5. Laporan Proyek ARM Klik di sini
6. PPT Klik di sini
7. Pengkawatan Dalam Klik di sini
8. Pengkawatan Luar Klik di sini
9. Program Klik di sini
1. Diagram Alir Klik di sini
2. Diagram Blok Klik di sini
3. Gambar Rangkaian Klik di sini
4. Jurnal Klik di sini
5. Laporan Proyek ARM Klik di sini
6. PPT Klik di sini
7. Pengkawatan Dalam Klik di sini
8. Pengkawatan Luar Klik di sini
9. Program Klik di sini
No comments:
Post a Comment