Kontak

Email | elektronikaabcd2015@gmail.com

Search This Blog

MENU

Wednesday, January 31, 2018

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.
Gambar 1 Konfigurasi dasar untuk keypad 4x4

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.
Gambar 2 Keypad 4x4

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.
Dalam setiap sistem penghasil suara (loud speaker), pengeras suara merupakan juga menentukan kualitas suara di samping juga peralatan pengolah suara sebelumnya yang masih berbentuk listrik dalam rangkaian penguat amplifier.
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.
        Input catu daya untuk board : 6,5VDC - 12VDC / 3,3VDC - 5VDC.

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:

Gambar 7 Diagram Alir


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


5.1 Gambar Rangkaian




Gambar 8 Gambar Rangkaian


5.2  Skema pengawatan




Gambar 9 Pengawatan Dalam


Gambar 10 Pengawatan Luar

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

Nama penulis


Rizqy Budiharnanto. Penulis dilahirkan di Kudustanggal 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

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

No comments:

Post a Comment