Minggu, 10 Mei 2015

RANCANG BANGUN PAPAN SKOR FUTSAL BERSUARA BERBASIS MIKROKONTROLER



BAB I
PENDAHULUAN

1.1    Latar Belakang
Beberapa tahun belakangan ini, lapangan futsal di Indonesia papan skornya masih sederhana bahkan masih manual penggunaan papan skornya. Papan skor yang ada rata – rata masih menggunakan kabel untuk mengontrolnya dan jika ada yang menggunakan remot untuk mengontrol papan skor tersebut, remot yang digunakan jarang terdapat di pasaran dan bahkan tidak dijual sama sekali dari pasaran, sehingga jika terjadi kerusakan di remotnya, konsumen sulit untuk membelinya lagi. Dan pada penyewaan futsal, untuk setiap pengaturan skor, operator biasanya memencet tombol untuk mengubah skor, sehingga hal ini kurang efisien karena operator harus tetap diruangannya untuk mengatur skor dan tentunya boros kabel. Dan apabila operator ingin ke kamar mandi atau lupa, hal ini dapat merugikan pihak konsumen karena pemain terkadang lupa dengan skor groupnya.

Yang kedua para pemain tidak bisa melihat skor. Hal ini sangat penting karena jika pemain bertandingan antara satu sama lain dapat membuat strategi-strategi untuk mengalahkan lawan dan pemain tidak menimbulkan sifat curiga kepada pihak rental berdasarkan skor yang ditampilkan. Sehinnga timbullah ide untuk membuat papan skor futsal dengan kendali remot multifungsi. Yang dimaksud multifungsi disini adalah remot dapat mengatur skor kedua group, babak, dan timer atau waktu pertandingan. Kami menggunkan remot tv sony karena remot tv sony banyak terdapat dipasaran dan pengalamatannya dari setiap tombol sudah diketahui. Papan skor kami juga dapat mengeluarkan suara seperti suara berupa kata – kata atau beberapa kalimat  pada bagian skor dan sebagai pengingat waktu pertandingan akan segera habis dan berakhirnya waktu pertandingan.

1.2    Rumusan Masalah
Dari permasalahan yang telah diuraikan diatas, dapat diambil beberapa rumusan masalah, yaitu:
1.    Bagaimana cara membuat papan skor yang efisien.
2.    Bagaimana cara membuat papan skor dengan remot tv sony sebagai sistem kendalinya.
3.    Bagaimana cara menampilkan skor, babak, dan timer pada seven segmen pada papan skor.
4.    Bagaimana cara membuat papan skor bersuara dengan bersuara.
5.    Bagaimana cara kerja dari modul mp3.
6.    Bagaimana cara koneksi mikrokontroler dengan modul mp3.
1.3 Batasan Masalah
Batasan masalah dari alat kami adalah :
1.    Alat kami tidak menggunakan running text untuk menampilkan nama tim yang bermain untuk masing-masing tim.
2.    Alat kami hanya mengendalikan skor, timer, dan babak dengan menggunakan remot tv sony saja.
3.    Skornya hanya bersuara dari 0 sampai dengan 10.

1.4    Tujuan dan Manfaat
1.4.1        Tujuan
Tujuan pembuatan proyek ini adalah :
1. Untuk memenuhi salah satu persyaratan guna menyelesaikan program Dipoloma III Jurusan Elektro Program Studi Elektronika Industri pada Politeknik Negeri Jakarta.
2. Untuk menerapkan ilmu yang didapat penulis selama dalam bangku perkuliahan.
3. Untuk membuat suatu alat "Papan Skor Futsal Berbasis Mikrokontroler dengan kendali Remot Multifungsi".
    
1.4.2        Manfaat
Adapun manfaat yang diberikan alat ini adalah :
1.      Dapat dikendalikan dengan remot tv sony sehingga kalau terjadi kerusakan dapat membelinya di pasaran.
2.      Dapat mengingatkan detik – detik waktu pertandingan akan segera habis
3.      Sebagai display skor, babak dan waktu pada pertandingan futsal.

1.5    Metodologi
Metode yang digunakan dalam pembuatan Tugas Akhir ini, yaitu :
1.    Studi Literatur
Mencari dan mengumpulkan referensi serta dasar teori yang diambil dari berbagai buku penunjang untuk mendukung pembuatan program.
2.    Perancangan Software
Metode ini dimaksudkan untuk menentukan desain program yang akan dibuat.
3.    Pembuatan Software
Merupakan inti pekerjaan dimana disini dilakukan penulisan source code agar software yang dibuat bisa berjalan seperti yang dikehendaki.
4.    Pembuatan Hardware
Merupakan pembuatan alat yang akan digunakan sebagai simulator program yang telah dibuat.



                                



BAB II
TINJAUAN PUSTAKA

2.1    Mikrokontroller Atmega 16
AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving, ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. ATMega16.
ATMega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses.
Beberapa keistimewaan dari AVR ATMega16 antara lain:
1.      Advanced RISC Architecture
·         130 Powerful Instructions – Most Single Clock Cycle Execution
·         32 x 8 General Purpose Fully Static Operation
·         Up to 16 MIPS Throughput at 16 MHz
·         On-chip 2-cycle Multiplier
2.      Nonvolatile Program and Data Memories
·         8K Bytes of In-System Self-Programmable Flash
·         Optional Boot Code Section with Independent Lock Bits
·         512 Bytes EEPROM
·         512 Bytes Internal SRAM
·         Programming Lock for Software Security
3.      Peripheral Features
·         Two 8-bit Timer/Counters with Separate Prescalers and Compare Mode
·         Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
·         One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
·         Real Time Counter with Separate Oscillator
·         Four PWM Channels
·         8-channel, 10-bit ADC
·         Byte-oriented Two-wire Serial Interface
·         Programmable Serial USART
4.      Special Microcontroller Features
·         Power-on Reset and Programmable Brown-out Detection
·         Internal Calibrated RC Oscillator
·         External and Internal Interrupt Sources
·         Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Powerdown,
·         Standby and Extended Standby
5.      I/O and Package
·         32 Programmable I/O Lines
·         40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF
6.      Operating Voltages
·         2.7 - 5.5V for Atmega16L
·         4.5 - 5.5V for Atmega16


Gambar 2.1 Pin-pin ATMega16 kemasan 40-pin

Pin-pin pada ATMega16 dengan kemasan 40-pin DIP (dual inline package) ditunjukkan oleh gambar 1. Guna memaksimalkan performa, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data).

2.1.1 Port sebagai input/output digital
ATMega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx.

Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input.Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0).

Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Kita harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.





  
Tabel 2.1.       Konfigurasi pin port

Bit 2 – PUD : Pull-up Disable
Bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1).

2.2         LED (Light Emitting Diode) Sinar Infra Merah
Infra merah (infra red) ialah sinar elektromagnet yang panjang gelombangnya lebih daripada cahaya nampak yaitu di antara 700 nm dan 1 mm. Sinar infra merah merupakan cahaya yang tidak tampak. Jika dilihat dengan dengan spektroskop cahaya maka radiasi cahaya infra merah akan nampak pada spectrum elektromagnet dengan panjang gelombang di atas panjang gelombang cahaya merah. Dengan panjang gelombang ini maka cahaya infra merah ini akan tidak tampak oleh mata namun radiasi panas yang ditimbulkannya masih terasa/dideteksi. Infra merah dapat dibedakan menjadi tiga daerah yakni:
Near Infra Merah……………… 0.75 - 1.5 µm
Mid Infra Merah..……………... 1.50 - 10 µm
Far Infra Merah……………….. 10 - 100 µm
Contoh aplikasi sederhana untuk far infra red adalah terdapat pada alat – alat kesehatan. Sedangkan untuk mid infra red ada pada alat ini untuk sensor alarm biasa, sedangkan near infra red digunakan untuk pencitraan pandangan malam seperti pada nightscoop. Penggunaan infra merah sebagai media transmisi data mulai diaplikasikan pada berbagai perlatan seperti televisi, handphone sampai pada transfer data pada PC. Media infra merah ini dapat digunakan baik untuk kontrol aplikasi lain maupun transmisi data. Sifat-sifat cahaya infra merah :
1. tidak tampak manusia
2. tidak dapat menembus materi yang tidak tembus pandang
3. dapat ditimbulkan oleh komponen yang menghasilkan panas
Komunikasi Infra Merah dilakukan dengan menggunakan dioda infra merah sebagai pemancar dan modul penerima infra merah sebagai penerimanya. Untuk jarak yang cukup jauh, kurang lebih tiga sampai lima meter, pancaran data infra merah harus dimodulasikan terlebih dahulu untuk menghindari kerusakkan data akibat noise.


Gambar 2.2 Komunikasi infra merah
Untuk transmisi data yang menggunakan media udara sebagai media perantara biasanya menggunakan frekuensi carrier sekitar 30KHz sampai dengan 40KHz. Infra merah yang dipancarkan melalui udara ini paling efektif jika menggunakan sinyal carrier yang mempunyai frekuensi di atas. Sinyal yang dipancarkan oleh pengirim diterima oleh penerima infra merah dan kemudian didecodekan sebagai sebuah paket data biner. Proses modulasi dilakukan dengan mengubah kondisi logika 0 dan 1 menjadi kondisi ada dan tidak ada sinyal carrier infra merah yang berkisar antara 30KHz sampai 40 KHz. Pada komunikasi data serial, kondisi idle (tidak ada transmisi data) adalah merupakan logika ‘0’, sedangkan pada komunikasi infra merah kondisi idle adalah kondisi tidak adanya sinyal carrier. Hal ini ditujukan agar tidak terjadi pemborosan daya pada saat tidak terjadi transmisi data.
2.2.1        Sistem Transmisi Infra Merah
Semua remote kontrol menggunakan transmisi sinyal infra merah yang dimodulasi dengan sinyal carrier dengan frekuensi tertentu yaitu pada frekuensi 30KHz sampai 40KHz. Sinyal yang dipancarkan oleh pengirim diterima oleh penerima infra merah dan kemudian didecodekan sebagai sebuah paket data biner. Pada transmisi infra merah terdapat dua terminologi yang sangat penting yaitu : ‘space’ yang menyatakan tidak ada sinyal carrier dan ‘pulse’ yang menyatakan ada sinyal carrier seperti pada gambar di bawah ini 




Gambar 2.3 Space dan pulse
Untuk transmisi data biasanya sinyal ditransmisikan dalam bentuk pulsa-pulsa. Ketika sebuah tombol ditekan pada remote kontrol maka IR akan mentransmitkan sebuah sinyal yang akan dideteksi sebagai urutan data biner. Led infra merah adalah jenis dioda yang memencarkan cahaya infra merah, aplikasi sederhana penggunaan led infra merah ini adalah pada remote TV. Led infra merah pada dasarnya adalah dioda PN silicon biasa yang dikemas dalam kotak transparan. Sinar infra merah dihasilkan dari pertemuan Arsenida Galium pada led infra merah yang diberikan tegangan listrik. Led infra merah merupakan salah satu komponen elektronika yang akan mengantar arus jika dialiri bias maju. Led infra merah terbuat dari bahan Arsenida gelium atau Fosfida Galium (GaAS atau Gap), dan ditempatkan dalam suatu wadah yang tembus pandang. Untuk membedakan antara katoda dan anodanya dapat dilihat dari bentuk elektrodanya yang besar adalah katoda. Material yang digunakan dalam konstruksi led akan menentukan jenis cahaya yang diradiasikan. Apakah cahaya tampak atau cahaya tidak tampak. Sebagai contoh material GaAlAs menghasilkan cahaya infra merah (cahaya tidak tampak), sedangkan GaAsP menghasilkan cahaya tampak merah. Pada sistem ada dua jenis led yang digunakan yaitu sebagai indikator dan juga sebagai komponen pengirim cahaya infra merah. Berikut rangkaian pengirim infra merah:

Gambar 2.4 Rangkaian pengirim infra merah








2.2.2        Sistem Penerima Infra Merah
Sinar infra merah yang dipancarkan oleh pemancar infra merah tentunya mempunyai aturan tertentu agar data yang dipancarkan dapat diterima dengan baik di penerima. Oleh karena itu baik di pengirim infra merah maupun penerima infra merah harus mempunyai aturan yang sama dalam mentransmisikan (bagian pengirim) dan menerima sinyal tersebut kemudian mendekodekannya kembali menjadi data biner (bagian penerima). Komponen yang dapat menerima infra merah ini merupakan komponen yang peka cahaya yang dapat berupa dioda (photodioda) atau transistor (phototransistor). Komponen ini akan merubah energi cahaya, dalam hal ini energi cahaya infra merah, menjadi pulsa-pulsa sinyal listrik. Komponen ini harus mampu mengumpulkan sinyal infra merah sebanyak mungkin sehingga pulsapulsa sinyal listrik yang dihasilkan kualitasnya cukup baik. Pada perangkat ini detektor cahaya yang digunakan adalah komponen TSOP4838, dimana pada komponen ini sudah terdapat filter. Jadi detektor ini akan bekerja dengan baik jika terdapat frekuensi 38KHz.




Gambar 2.5 Detector cahaya TSOP4838

Pada prakteknya sinyal infra merah yang diterima intensitasnya sangat kecil sehingga perlu dikuatkan. Kekuatan sinar dan sudut datang merupakan faktor penting dalam keberhasilan transmisi data melalui infra merah selain filter dan penguatan pada bagian penerimanya. Selain itu agar tidak terganggu oleh sinyal cahaya lain maka sinyal listrik yang dihasilkan oleh sensor infra merah harus difilter pada frekuensi sinyal carrier yaitu pada 30KHz sampai 40KHz. Selanjutnya baik photodioda maupun phototransistor disebut sebagai photodetector. Dalam penerimaan infra merah, sinyal ini merupakan sinyal infra merah yang termodulasi. Pemodulasian sinyal data dengan sinyal carrier dengan frekuensi tertentu akan dapat memperjauh transmisi data sinyal infra merah. Semakin besar area penerimaan maka sudut penerimaannya juga semakin besar. Kelemahan area penerimaan yang semakin besar ini adalah noise yang dihasilkan juga semakin besar pula. Suatu penerima pada sistem komunikasi cahaya harus memenuhi syarat antara lain:
1)   Sensitivitas yang tinggi. Karena detektor cahaya digunakan pada suatu panjang gelombang tertentu, maka sensitivitas tertinggi terdapat pada daerah panjang gelombang yang dimaksud.
2)   Respon waktu yang cepat, hal ini dimaksudkan agar sistem dapat dioperasikan pada kecepatan tinggi yang akan meningkatkan efisiensi sistem komunikasi.
3)   Noise internal yang dibangkitkan detektor harus sekecil mungkin.
4)   Harga yang murah dan juga mempunyai keandalan yang tinggi

2.3              Format data Sony
Format data yang dipakai untuk setiap pembuat peralatan remote kontrol berbeda-beda,  misalkan  remote  kontrol  buatan  SONY,  Philips,  Panasonic,  dan lain-lain.  Dalam  baba  ini  format  data  yang  akan  dibahas  adalah  format  data menurut SONY dan NEC, karena remote kontrol yang menggunakan format ini mudah didapatkan  di toko-toko  di Indonesia.  Format NEC sering dipakai pada peralatan VCD produk Cina, Singapura, dan sekitarnya.

Format data remote kontrol menurut NEC digambarkan sebagai berikut :




Gambar 2.6 Format Data Remote Kontrol NEC

Data dikrim dalam bentuk paket data, dimana dalam data tersebut terdapat starting bit atau disebut juga header,  urutan data pulsa 0’ dan pulsa 1 serta spasi antar paket / antar frame. Berikut adalah gambar format data menurut SONY:
·                Pengiriman Data
Pertama – tama, remote memberikan data inisialisasi untuk menyamakan data agar data dapat dikirim dari remote universal Sony. Model pengiriman datanya digambarkan dalam 1 frame, yang didalamnya terdapat 1 header dan 12 bit data.
 
Gambar 2.8 Protokol inframerah remote Sony

·                Penerimaan Data
Pada penerima data, dipisahkan data pembawa dan paket data 12 bit yang diterima. Setelah paket data diterima, paket data serial tersebut diubah menjadi data paralel. Kemudian, data paralel tersebut diolah oleh mikrokontroler agar dapat mengeluarkan output.

Gambar 2.9 Format Data Remote Kontrol SONY

Data yang dikirim tidak langsung dimodulasikan dengan gelombang infra merah  akan  tetapi  dicampur  dulu  dengan  sinyal  pembawa  (carrier  frequency) dengan frekuensi sebesar 40 kHz (38 kHz untuk typa tertentu).Starting bit / header diwakili dengan adanya pulsa selebar 2.4 ms. Logika 0’ diwakili dengan 0.6 ms tidak ada pulsa dan 0.6 ms ada pulsa Logika 1’ diwakili dengan 0.6 ms tidak ada pulsa dan 1.2 ms ada pulsa.
Gabungan  dari urutan  logika  0’ dan logika 1 dalam  satu frame akan membentuk data yang dikirimkan. Dalam hal ini format SONY mengirimkan 12 bit data, sedangkan NEC 32 bit data.
Kode  SONY  dapat  mengalamati  64  jenis  peralatan  yang  diwakili  oleh kode alamat (address bits) dan masing-masing peralatan dapat menggunakan maksimal 64 perintah yang diwakili oleh kode perintah (command bits).
Beberapa perbedaan antara format SONY dengan format NEC yaitu: definisi pulsa leader/header/startbit, logika 0’ dan logika 1. panjang data dalam satu frame SONY = 12 bit, NEC = 32 bit .bila tombol remote ditekan terus menerus, untuk format SONY akan selalu  mengulang  frame-frame  baru  secara  lengkap,  namun  untuk format  NEC,  frame  pertama  dikirim  lengkap  dan selanjutnya  hanya dikirimkan frame tanda pengulangan saja (repeat code).

2.3.1        Prinsip – prinsip Dasar Remote TV Sony
Prinsip Dasar dari Remote TV Sony adalah menggunakan frekuensi carrier sekitar 36-40kHz. Untuk membangkitkan sinyal dengan frekuensi 40kHz tidak sulit tetapi untuk menerima sinyal dengan frekuensi 40 kHz itu membutuhkan filters dengan menggunakan sensor IR, sehingga penguatan sinyal, dan menghilangkan sinyal carrier data yang diterima benar-benar valid. Remote yang digunakan dalam hal ini adalah remote TV Sony. Format data dari remote Sony terdiri dari 12 bits data. Data yang dikirimkan pertama kali adalah header selanjutnya baru data.
Format data:

Gambar 2.10 Pengiriman data 12 bit dimulai dari LSB - MSB
Remote Sony ini memiliki karakteristik yaitu memiliki periode (1T)=550μs. Untuk remote Sony memiliki header high 4T dan low 1T, untuk logic 1 memiliki pulsa high sepanjang 2T dan low 1T, dan untuk logic 0 memiliki pulsa high 1T dan low 1T. Ini merupakan format aslinya sedangkan jika mengamati sinyal yang dikirimkan remote melalui IR modul kebalikannya karena pada IR modul ada inverternya. Berikut contoh bentuk gambar pulsa dari header, logic 1 dan logic 0 dari remote TV Sony yang sebenarnya ( belum melalui gerbang inverter ).

Gambar 2.11 Pulsa remote control Sony

2.3.2   Cara kerja remote TV Sony
Cara kerja Remote TV erat kaitannya dengan saluran TV. Apakah televisi tersebut dalam keadaan ON atau OFF, maupun dalam perpindaan saluran televisi pada penekanan tombol, dan adapun fungsi – fungsi tombol beserta data yang dikirimkan dari Remote TV Sony ke Rangkaian Penerima ( Receiver ), data yang dikirimkan dapat dilihat dari tabel fungsi– fungsi dan data yang dikirimkan oleh remote TV Sony, dan ternyata data yang dikirimkan berbeda -beda, hal ini di rancang untuk membedakan tombol yang satu dengan tombol yang lainnya.





Tabel 2.2 Fungsi – fungsi tombol dan Data
Dari tabel ini dapat di baca bahwa setiap penekanan tombol dari RemoteTV Sony akan mengirimkan data sesuai tombol yang ditekan. Data tersebut dikirimkan ke penerima dengan melalui Sinyal IR maka penerima dapat mendeteksi tombol apa yang ditekan, dan data yang ada pada tabel tombol ini sudah dibuktikan dan di simulasikan pada led peraga, dan ternyata terbukti.








2.4           Seven Segment
Seven Segment adalah suatu segmen- segmen yang digunakan menampilkan angka. Seven segment Seven segment merupakan display visual yang umum digunakan dalam dunia digital. Seven segment sering dijumpai pada jam digital, penujuk antrian, diplay angka digital dan termometer digital. Penggunaan secara umum adalah untuk menampilkan informasi secara visual mengenai data-data yang sedang diolah oleh suatu rangkaian digital.

Seven segment ini tersusun atas 7 batang  LED yang disusun membentuk angka 8 yang penyusunnya menggunakan diberikan lebel dari ‘a’ sampai ‘g’  dan satu lagi untuk dot point (DP). Setiap segmen ini terdiri dari 1 atau 2 Light Emitting Diode ( LED ). salah satu terminal LED dihubungkan menjadi satu sebagai kaki common.
Gambar 2.11. Seven Segment Display



Jenis-jenis Seven Segment :
1.      Common Anoda
Semua anoda dari LED dalam seven segmen disatukan secara parallel dan semua itu dihubungkan ke VCC, dan kemudian LED dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena dihubungkan ke VCC, maka COMMON ANODA ini berada pada kondisi AKTIF LOW (led akan menyala/aktif bila diberi logika 0).
2.      Common Katoda
Merupakan kebalikan dari Common Anoda.  Disini semua katoda disatukan secara parallel dan dihubungkan ke GROUND. Karena seluruh katoda dihubungkan ke GROUND, maka COMMON KATODA ini berada pada kondisi AKTIF HIGH (led akan menyala/aktif bila diberi logika 1). 

(a)                                            (b)
Gambar 2.12. Susunan LED Sevent Segment Common Cathode (a) dan Common Anode (b)
 

2.5         Dekoder 7447
Untuk memudahkan penggunaan seven segment, umumnya digunakan sebuah decoder ( mengubah/ mengkoversi input bilangan biner menjadi desimal) atau seven segment driver yang akan mengatur aktif tidaknya led-led dalam seven segment sesuai dengan nilai biner yang diberikan.

Dekoder BCD ke seven segment digunakan untuk menerima masukan BCD 4-bit dan memberikan keluaran yang melewatkan arus melalui segmen untuk menampilkan angka desimal. Jenis dekoder BCD ke seven segment ada dua macam yaitu dekoder yang berfungsi untuk menyalakan sevent segment mode common anoda dan dekoder yang berfungsi untuk menyalakan seven segment mode common katoda.

Gambar 2.13 Konfigurasi pin decoder 7447






BAB III
PERANCANGAN DAN REALISASI

Dalam bab 3 ini, penulis hanya akan membahas Perancangan dan Realisasi Pemograman dan Hardware Skor dan Babak dengan Kendali Remot TV Sony “.
3.1 Perancangan dan Realisasi
3.1.1 Nama Subsistem         :

3.1.2 Fungsi Subsistem        :



Pemograman dan Hardware Skor dan Babak dengan Kendali Remot TV Sony
Membuat rangkaian skematik, layout PCB, dan peletakkan komponen PCB serta memprogramkan skor dan babak



3.1.3 Perancangan Skor dan Babak
Berdasarkan pengamatan kami, lapangan futsal sekarang khususnya lapangan futsal untuk penyewaan tampilan skornya masih manual yaitu menggunakan gabus untuk menggantikan skornya. Dan untuk mengontrol skornya, banyak lapangan futsal menggunakan tombol manual yang masih menggunakan kabel sehingga penggunaannya tidak efisien dan boros biaya, bahkan jika ada menggunakan remot, remotnya susah dicari dipasaran sehingga jika terjadi kerusakan konsumen harus membeli ke tempat khusus yang menjual remot tersebut. Tampilan yang kami inginkan adalah menggunakan seven segmen berukuran besar yaitu ukurannya 4 inci supaya penonton dapat melihat dari kejauhan skor yang dihasilkan dalam pertandingan. Seven segmen yang digunakan adalah common anoda sehingga membutuhkan dekoder untuk seven segmen common anoda yang dapat mengubah bilangan biner menjadi bilangan desimal.


3.1.3.1 Diagram Blok Skor dan Babak
Untuk merancang skor dan babak, terlebih dahulu kita membuat diagram bloknya, Dibawah ini adalah diagram blok skor dan babak :
Gambar 3.4 Diagram Blok Skor dan Babak

Berikut ini adalah penjelasan dari diagram blok diatas :
1. Remot TV Sony :
Sebagai input dan pemancar infra red untuk mengirim data (program) berdasarkan tombol yang ditekan ke rangkaian receiver.
2. Receiver Infra Merah :
Untuk menerima data yang dipancarkan oleh remot yang kemudian akan diinisialisasi oleh mikrokontroler.
3. Mikrokontroler :
Sebagai pengolah data dari transmitter remot ke receiver yang kemudian hasil penekanan tombol remot akan ditampilkan pada display yang berupa seven segmen.
4. Dekoder :
Mengubah bilangan biner ke bilangan decimal.
5. Output ( Seven Segmen) :
Outputnya berupa seven segmen yang dapat menampilkan angka pada skor dan babak secara up and down counter.
3.1.3.2 Pembuatan Rangkaian Skematik Skor dan Babak
Setelah kita membuat blok diagram skor dan babak, maka kita membuat rangkaian skematik skor dan babak pada software elektronika seperti proteus, eagle, dan lain-lain. Dibawah ini adalah rangkaiaian skematik skor dan babak yang telah dihubungkan dengan mikrokontroler dan modul receiver: 

Gambar 3.5 Rangkaian Skematik Skor dan Babak

Setelah kita membuat rangkaian skematiknya maka kita membuat layout jalur dan komponen PCB.
Gambar 3.6 Layout Jalur PCB

Gambar 3.7 Layout Komponen PCB



Gambar 3.8 Layout Jalur PCB




Gambar 3.9 Layou komponen PCB




3.1.3.3 Pembuatan Disain PCB
Berikut ini adalah tahapan – tahapan membuat disain PCB :
A.     Menempelkan Layout pada PCB
1.         Potong PCB sesuai dengan ukuran layout PCB yang dibuat, kemudian haluskan sisi tepi PCB dan bersihkan PCB.
2.          Cetaklah layout pada plastic transparan atau kertas foto.
3.         Sebelum layout tersebut ditempelkan pada PCB, bersihkan dahulu PCB dengan amplas halus agar kotoran – kotoran seperti lemak – lemak pada PCB hilang sambil dibilas dengan air.
4.         Cuci dengan air bersih PCB yang telah dibersihkan tersebut dan keringkanlah PCB tersebut.
5.         Tempelkan layout tersebut pada PCB sesuai dengan ukuran layout tersebut.
6.         Sebelum dipanaskan atau disetrika, layout yang menempel pada PCB tersebut lapisi atau tutupkan dengan kertas yang tidak terlalu tipis dan tidak terlalu tebal agar layout plastic transparan tersebut tidak meleleh pada saat disetrika.
7.         Setrikalah atau panaskanlah layout yang sudah dilapisi atau ditutupkan dengan kertas sampai kurang lebih 10 menit atau sampai semua layout tersebut menempel pada PCB.
8.         Apabila layout tersebut belum menempel setrikalah lebih lama lagi sambil menekan dengan kuat. Jika tidak semua yang menempel pada PCB, tebalkanlah jalur – jalur atau pad – pad tersebut dengan spidol permanen.
9.         Borlah pad – pad tersebut sesuai dengan ukuran mata bor untuk masing – masing pad.
B.           Menyiapkan larutan Etching
1.         Siapkanlah bubuk Ferry Chlorida.
2.         Campurkanlah air dengan bubuk Ferry Chlorida tersebut dalam suatu wadah dengan perbandingan  air dan bubuk etching adalah 7:3. Gunakanlah air hangat agar hasil lebih maksimal.
C.           Mengetching PCB
1.                  Taruhlah PCB yang sudah ditempelkan layout pada larutan etching.
2.                  Goyangkanlah perlahan – lahan wadah yang berisi larutan etching dan PCB sampai bagian yang tidak dihitamkan tembaganya akan hilang.
3.                  Jangan terlalu lama mengetching sehingga menyebabkan jalur-jalur dan pad-padnya putus.
D.          Membersihkan PCB dari larutan Etching
1.                  Setelah PCB di etching, bersihkanlah PCB dengan amplas halus sambil dibilas dengan air.
2.                  Setelah bersih atau kelihatan warna tembaganya, amplas bagian pinggir PCB dengan amplas kasar sampai pinggir PCB tersebut halus dan rata.
3.                  Keringkanlah PCB tersebut sampai benar – benar kering.
4.                  Ceklah dengan multimeter apakah terjadi short circuit atau open circuit pada track dan padnya.
E.            Melapisi dengan Timah
1.                  Pastikan PCB dalam Keadaan kering dan bersih pada jalurnya.
2.                  Lapisi jalur PCB dengan timah yaitu dengan cara terlebih dahulu oleskan Lotfet pada jalur PCB, setelah itu lapisi dengan timah dengan cara timah dilelehkan dengan solder sambil melekatkannya pada jalur PCB tersebut, usahakan dilapisi dengan rapi dan tidak terlalu tipis dan tebal.
3.                  Setelah dilapisi dengan timah, cuci bersih PCB dan keringkan PCB sampai bekas Lotfet hilang.
F.             Proses menyolder
1.                  Bersihkan bagian – bagian yang akan di solder baik itu PCB dan kaki komponen elektronika dengan amplas halus.
2.                  Masukkan kaki komponen pada lubang PCB dan bengkokkan jika perlu sehingga terdapat pengait mekanis untuk menjaga posisi komponen.
3.                  Letakanlah bagian dari ujung solder ke sisi yang lebar pada PCB sehingga penyaluran panas terjadi melalui permukaan yang paling luas.
4.                  Berikanlah timah pada titik solderan dan jumlah timah yang dilebur pada titik solderan tidak harus sama pada pad PCB.
5.                  Setelah jumlah timah yang meleleh di rasa cukup, singkirkan timah dari titik solderan. Tahan pada titik solderan sampai timah meresap pada semua bagian solderan. Setelah itu tarik ujung solder dari titik solderan dan biarkan beberapa saat untuk proses pendinginan.
G.          Memasang komponen
Setelah di solder pasanglah IC dan seven segment pada socket masing-masing. Kemudian ujilah alat tersebut.
3.1.4 Realisasi
3.1.4.1 Flow Chart Program
Setelah penulis membuat hardwarenya maka kita membuat programnya, untuk membuat program terlebih dahulu penulis membuat flow chart programnya, Berikut adalah flow chart programnya :



Gambar 3.10 Flowchart Program
Pertama – tama, remot mengirimkan data dalam satu frame ( header + 12 bit data ) bersama sinyal carrier. Receiver akan menghilangkan sinyal carrier sehingga data remot yang masuk yang dikodekan dalam bentuk biner 12 bit. Mikrokontroler akan mengubah 12 bit data menjadi 8 bit data karena mikon hanya dapat menerima 8 bit data. 8 bit data tersebut adalah data remot sony, 8 bit data tersebut dikodekan menjadi hexa dan diubah menjadi desimal untuk menampilkan angka desimal pada seven segmen. Tombol remot diprogram untuk membuat counter up and down pada skor dan babak yang berupa angka pada seven segmen.
3.1.4.2 Listing Program
#include <mega16.h>    // memanggil ic atmega 16
#include <stdio.h>     // memanggil library standar I/O
#include <delay.h>     // memanggil library delay

#define ir PIND.2      // ir sama saja PIND.2

#define skor1   PORTA  // skor1 sama saja  PORTA   
#define skor2   PORTB  // skor2 sama saja  PORTB
#define babak1   PORTC // babak1 sama saja  PORTC



//===================SUARA==================================
unsigned int st=0x7E,lng=0x07,ply=0xA0,stp=0xA3;
unsigned char mp3[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
//=========================================================

//==========================================================                                          
//===================== INISIALISASI============================
//==========================================================
unsigned int x,i,a,wkt;
int ir_data;
char dat[12];         //array string = menampung data remot 12 bit
int data[12];
unsigned int skor_2,skor_1,babak,waktu_m,waktu_p;
unsigned char puluhan_1,satuan_1,puluhan_2,satuan_2;
unsigned int puluhan,satuan;
unsigned char skor1_p,skor1_s,skor2_p,skor2_s,menit_pp,menit_sp,menit_pm,menit_sm;
unsigned char angka_satuan[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
unsigned char angka_puluhan[10]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90};
unsigned int angka[10]={0,1,2,3,4,5,6,7,8,9};
//==========================================================                                          
//==========================================================

//==========================================================                                          
//==================== DAFTAR SUB PROGRAM=======================
//==========================================================
void read_ir();
void score();
void set_waktu();
//==========================================================                                          
//==========================================================

//==========================================================                                          
//===================== BACA DATA REMOTE =======================
//==========================================================
void read_ir()
{

     while(1)
      {
        x=0; 
        while(ir);                    // tahan selama ir=1
        while(!ir){x++;}            // KLO ir == 0 x nambah teruh
        if(x>3200 && x<3500)break;  // x diantara 3200 sampe 3500 seselai dari while
      }
     
      for(i=0;i<=11;i++)
      {
          x=0;
          while(ir);//tahan selama 0
          while(!ir){x++;}     
          data[i] = x;
          if(data[i]>=700&&data[i]<=900)dat[i] = 0;// klo data x diantara 700 - 900 logic 0 dimasukin di nilai arrray data
          else if(data[i]>=1600&&data[i]<=1800)dat[i] = 1;// klo data x diantara 1600 - 1800 logic 1 dimasukin di nilai arrray dat
      } 
     
      //===============data combine==========
     
      ir_data=0;
      for(i=0;i<=11;i++)
      {
        ir_data<<=1;                // memasukan data array dari data[i] jadi bentuk biner contoh dari 0,1,1,1,0,0,0,0 jadi 01110000
        ir_data|=dat[11-i];        // ir_data = ir data | dat[i]
      }                 
}
//==========================================================                                           
//==========================================================

//==========================================================                                          
//===================== MENAMPILKAN SKOR =======================
//==========================================================
void score()
{
    if((ir_data==0x90)&&(skor_1<100)){skor_1++;delay_ms(300);}  //prog++        buat nambah skor 1
    if((ir_data==0x91)&&(skor_1>0)){skor_1--;delay_ms(300);}  //prog--                buat kurang skor 1
    if((ir_data==0x92)&&(skor_2<100)){skor_2++; delay_ms(300);} //vol++          buat nambah skor 2
    if((ir_data==0x93)&&(skor_2>0)){skor_2--; delay_ms(300);}   //vol--                 buat kurang skor 2
    if((ir_data==0xF4)&&(babak<10)){babak++; delay_ms(300);}
 // ++                   buat nambah babak
    if((ir_data==0xF5)&&(babak>0)){babak--; delay_ms(300);}  
//  --                     buat nambah babak 
    if(ir_data==0xFC){set_waktu();delay_ms(300); goto trs;}
//                                     select buat masuk ke menu set waktu
    if(skor_1>=100){skor_1=0;}                                                                       // klo udah 99 balik lagi ke 0
    if(skor_2>=100){skor_2=0;}                                                                        // klo udah 99 balik lagi ke 0
    if(babak>=10){babak=0;}                                                                             // klo udah 99 balik lagi ke 0   
   
//============== tampil ke sevent segment============================
// cara kejanya
// 1. angka masuk pertama misal 1
// 2. di tambah terus sampe puluhan
// 3. angka puluhan di bagi 10 hasilnya buat data di puluhan(1,2)
// 4  angka satuannya si bagi 10 tapi di ambil sisanya misal 22/10 hasilnya 2 dan sisanya 2.
// 5. trus data dri puluhan si masukin ke array
// 6. misal puluhan angka_puluhan[puluhan], data di puluhan di dalam kurung 2 jadi datanya 0x20 liat di atas urutan datanya
// 7. misal satuan angka_satuan[satuan], data di puluhan di dalam kurung 2 jadi datanya 0x02 liat di atas urutan datanya
// 8. data puluhan sama satuan di tambah hasilnya di masukin ke sko1,sko2,sama babak 

    puluhan_1=skor_1/10;                                                                                   
    satuan_1=skor_1%10;
    skor1_p=angka_puluhan[puluhan_1];
    skor1_s=angka_satuan[satuan_1];
    
    puluhan_2=skor_2/10;
    satuan_2=skor_2%10;
    skor2_p=angka_puluhan[puluhan_2];
    skor2_s=angka_satuan[satuan_2];         
   
    skor1=skor1_p+skor1_s; 
    skor2=skor2_p+skor2_s; 
    babak1=angka_satuan[babak];
   
        delay_ms(300);
        if(puluhan_1>0){wkt=2500;} else  {wkt=1600;}
                
        if(skor_1>=1){printf("%c%c%c%d%d%d%d%d%c",st,lng,ply,mp3[0],mp3[0],mp3[0],mp3[puluhan_1],mp3[satuan_1],st);}
        else
        {printf("%c%c%c%d%d%d%d%d%c",st,lng,ply,mp3[0],mp3[0],mp3[0],mp3[1],mp3[3],st);}  
       
        delay_ms(wkt);  
        
         if(skor_2>=1){printf("%c%c%c%d%d%d%d%d%c",st,lng,ply,mp3[0],mp3[0],mp3[0],mp3[puluhan_2],mp3[satuan_2],st);}
        else
        {printf("%c%c%c%d%d%d%d%d%c",st,lng,ply,mp3[0],mp3[0],mp3[0],mp3[1],mp3[3],st);}
          delay_ms(wkt); 
     trs:
   
//==========================================================
}
//==========================================================                                          
//==========================================================

//==========================================================                                           
//===================== SET WAKTU JAM DAN MENIT ==================
//==========================================================
void set_waktu()
{ 
    PORTA=PORTB=0xFF;
    delay_ms(200);
    PORTA=PORTB=0x00;
    delay_ms(200);
    PORTA=PORTB=0xFF;
    delay_ms(200);
    PORTA=PORTB=0x00;
    delay_ms(200);   
   skor1=menit_pm+menit_sm;    // buat nampilin jam awal aps di menu awal
   skor2=menit_pp+menit_sp;      // buat nampilin menit awal aps di menu awal
    while(1)
    {
    read_ir();
     if(ir_data==0x97)// A/B   buat set jam
    {      PORTA=0xFF;
            delay_ms(200);
            PORTA=0x00;
            delay_ms(200);
            PORTA=0xFF;
            delay_ms(200);
            PORTA=0x00;
            delay_ms(200);
            while(1)
            {  
               
                read_ir();     
                 if(a<2)
                 {
                    if(ir_data==0x80){waktu_m=(waktu_m*10)+angka[1]; delay_ms(300);a++;}
                    if(ir_data==0x81){waktu_m=(waktu_m*10)+angka[2]; delay_ms(300);a++;}
                    if(ir_data==0x82){waktu_m=(waktu_m*10)+angka[3]; delay_ms(300);a++;}
                    if(ir_data==0x83){waktu_m=(waktu_m*10)+angka[4]; delay_ms(300);a++;}
                    if(ir_data==0x84){waktu_m=(waktu_m*10)+angka[5]; delay_ms(300);a++;}
                    if(ir_data==0x85){waktu_m=(waktu_m*10)+angka[6]; delay_ms(300);a++;}
                    if(ir_data==0x86){waktu_m=(waktu_m*10)+angka[7]; delay_ms(300);a++;}
                    if(ir_data==0x87){waktu_m=(waktu_m*10)+angka[8]; delay_ms(300);a++;}
                    if(ir_data==0x88){waktu_m=(waktu_m*10)+angka[9]; delay_ms(300);a++;}
                    if(ir_data==0x89){waktu_m=(waktu_m*10)+angka[0]; delay_ms(300);a++;}
                }   
                   
 if(ir_data==0xA5){waktu_m=00;a=0;}  //TV
 if(ir_data==0x95){ // SLEEP
 a=0;
 PORTA=0xFF;
 delay_ms(200);
 PORTA=0x00;
 delay_ms(200);
 PORTA=0xFF;
 delay_ms(200);
 PORTA=0x00;
 delay_ms(200); 
                                            skor1=menit_pm+menit_sm;
                                            skor2=menit_pp+menit_sp;
                                            break;
                                            } 
puluhan=(waktu_m/10)%10;
satuan=waktu_m%10; 
menit_pm=angka_puluhan[puluhan];
menit_sm=angka_satuan[satuan];
skor1=menit_pm+menit_sm;
                     
            }
    }
    else
     if(ir_data==0xB6)// SLEEP   buat set menit
    {     
           
            PORTB=0xFF;
            delay_ms(200);
            PORTB=0x00;
            delay_ms(200);
            PORTB=0xFF;
            delay_ms(200);
            PORTB=0x00;
            delay_ms(200);
            while(1)
            {  
                read_ir();
                if(a<2)
                {     
                    if(ir_data==0x80){waktu_p=(waktu_p*10)+angka[1]; delay_ms(300);a++;}
                    if(ir_data==0x81){waktu_p=(waktu_p*10)+angka[2]; delay_ms(300);a++;}
                    if(ir_data==0x82){waktu_p=(waktu_p*10)+angka[3]; delay_ms(300);a++;}
                    if(ir_data==0x83){waktu_p=(waktu_p*10)+angka[4]; delay_ms(300);a++;}
                    if(ir_data==0x84){waktu_p=(waktu_p*10)+angka[5]; delay_ms(300);a++;}
                    if(ir_data==0x85){waktu_p=(waktu_p*10)+angka[6]; delay_ms(300);a++;}
                    if(ir_data==0x86){waktu_p=(waktu_p*10)+angka[7]; delay_ms(300);a++;}
                    if(ir_data==0x87){waktu_p=(waktu_p*10)+angka[8]; delay_ms(300);a++;}
                    if(ir_data==0x88){waktu_p=(waktu_p*10)+angka[9]; delay_ms(300);a++;}
                    if(ir_data==0x89){waktu_p=(waktu_p*10)+angka[0]; delay_ms(300);a++;}
                   
                }
                if(ir_data==0xA5){a=0;waktu_p=00;}  // TV
                if(ir_data==0x95){ // power
                                            a=0;
                                            PORTB=0xFF;
                                            delay_ms(200);
                                            PORTB=0x00;
                                            delay_ms(200);
                                            PORTB=0xFF;
                                            delay_ms(200);
                                            PORTB=0x00;
                                            delay_ms(200);
                                            skor1=menit_pm+menit_sm;
                                            skor2=menit_pp+menit_sp;
                                            break;
                                            }
                puluhan=(waktu_p/10)%10;
                satuan=waktu_p%10;
                menit_pp=angka_puluhan[puluhan];
                menit_sp=angka_satuan[satuan];
                skor2=menit_pp+menit_sp;      
            }
    }
    else
    if(ir_data==0xFC)//select//  kirim data                                                                                                                
    {
        PORTD.3=0;delay_ms(100);PORTD.3=1;delay_ms(100);
        printf("%c%c",waktu_m,waktu_p);delay_ms(500);
    }
    else
    if(ir_data==0x95) // keluar ke menu dan kembali ke menu skor biara
    {
    PORTA=PORTB=0xFF;
    delay_ms(200);
    PORTA=PORTB=0x00;
    delay_ms(200);
    PORTA=PORTB=0xFF;
    delay_ms(200);
    PORTA=PORTB=0x00;
    delay_ms(200);     
  
    ir_data=0;break;}
  }
    PORTA=PORTB=0xFF;
    delay_ms(200);
    PORTA=PORTB=0x00;
    delay_ms(200);
    PORTA=PORTB=0xFF;
    delay_ms(200);
    PORTA=PORTB=0x00;
    delay_ms(200);
}
//==========================================================                                          
//==========================================================

void main(void)
{
PORTA=0x00; // NILAI AWAL KELUARANNYA 00
DDRA=0xFF;   // MENANDAKAN KLO PORTA ITU OUT KLO 0X00 BERARTI INPUT

PORTB=0x00; // NILAI AWAL KELUARANNYA 00
DDRB=0xFF;  // MENANDAKAN KLO PORTB ITU OUT KLO 0X00 BERARTI INPUT

PORTC=0x00; // NILAI AWAL KELUARANNYA 00
DDRC=0xFF;  // MENANDAKAN KLO PORTC ITU OUT KLO 0X00 BERARTI INPUT

PORTD=0x0C; // NILAI AWAL KELUARANNYA PORTD.3 =1
DDRD=0x08;  // MENANDAKAN KLO PORTD ITU OUT DI PORTD.3

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;

UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
                     
ACSR=0x80;
SFIOR=0x00;

ADCSRA=0x00;

SPCR=0x00;

TWCR=0x00;
PORTD.3=0;
delay_ms(100);


while (1)
      {
        PORTA=PORTB=PORTC=0xFF;
        read_ir();// Place your code here 
       
        if(ir_data==0x95)  // KLO TEKAN POWER YG BAWAH BARU NYALA
        {  
            PORTA=PORTB=PORTC=0x00; 
            delay_ms(200); 
            PORTD.3=0;
            printf("%c%c%c%d%d%d%d%d%c",st,lng,ply,mp3[0],mp3[0],mp3[0],mp3[1],mp3[1],st);
            PORTD.3=0;
            delay_ms(6500); 
            PORTD.3=1;
                       
            set_waktu(); 
            delay_ms(12200);
            printf("%c%c%c%d%d%d%d%d%c",st,lng,ply,mp3[0],mp3[0],mp3[0],mp3[1],mp3[2],st);  
           
            delay_ms(3000);
            while(1)
            {
                score();
                read_ir();
                if(ir_data==0x95) // KLO TEKAN POWER YG BAWAH BARU MATI
                {
                    PORTD.3=0;
                    delay_ms(100);
                    PORTD.3=1;
                    skor_1=skor_2=waktu_m=waktu_p=babak=0; // HAPUS DATA SEMUA INISIALISASI
                    printf("%c%c",waktu_m,waktu_p);  // KIRIM DATA KE MIKON SEBELAH DATANYA 0 BIAR RESET KE AWAL 
                    printf("%c%c%c%d%d%d%d%d%c",st,lng,stp,mp3[0],mp3[0],mp3[0],mp3[0],mp3[0],st);
                    PORTA=PORTB=PORTC=0xFF;
                    delay_ms(300);
                    break;
                }
            }
        }  
      }
}













3.2     Perancangan Alat dan Realisasi
3.2.1 Nama alat                          :


3.2.2 Fungsi alat                        :





3.2.3 Cara Kerja                       :
Rancang Bangun Papan Skor Futsal Berbasis Mikrokontroler dengan Kendali Remot Multifungsi
Alat ini berfungsi sebgai media display ( tampilan) skor, babak, dan waktu pada pertandingan futsal. Papan skor ini juga berfungsi sebagai pengingat waktu pertandingan futsal akan berakhir.
Remot tv sony akan mengirimkan data ke infrared receiver. Data yang diirimkan tidak langsung dimodulasikan dengan gelombang infra merah akan tetapi dicampur dahulu dengan sinyal pembawa dengan frekuensi sebesar 38kHz. Kemudian infrared receiver akan menghilangkan sinyal pembawa sehingga hanya sisa pulsa data saja dan bisa langsung dihubungkan ke mikrokontroler. Mikrokontroler atmega 16 akan mengolah data remot yag masuk agar fungsi tombol – tombol remot sesuai dengan data remot sony. Setelah inisialisasi berhasil oleh mikrokontroler, tombol remot akan berjalan sesuai dengan program yang diinginkan, seperti ketika tombol power ditekan maka seven segmen pada mikrokontroler master akan menyala dan mengeluarkan suara. Skor dapat bersuara sesuai dengan tombol – tombol remot tertentu yang terlebih dahulu diprogram. Kemudian mikrokontroler master akan mengirim data ke mikrokontroler slave 1 melalui komunikasi serial untuk menjalankan timer berdasarkan tombol remot tertentu yang telah di program. Timer dapat bersuara sebagai tanda pertandingan akan dimulai dan pengingat detik – detik waktu pertandingan akan habis.

3.2.4  Spesifikasi Alat
Spesifikasi Fisik
·      Perangkat Input          : Remot tv sony
                                       
·      Perangkat Output       : Seven segment, led,  dan                      speaker.
·      Tombol operasi
-                 Remote                  : 0~9, -, power, sleep, A/B, prog + dan -, Vol + dan -
·      Tampilan                     : 9 buah sevent segment 4 inci dan 2  led 5 mm
·      Sensor                         : Infrared dengan jarak pancar 12 meter
·      Berat                           : 6,4 Kg
·      Ukuran                        : 65 cm x 11, 5 cm x 54,5 cm
·      Jarak Pandang            : 20m


Spesifikasi Kelistrikan  
·           Tegangan input        : 220 ± ( 0,05% + 1) VAC                     
·           Arus input                : 0,939 ± ( 0,2% + 2) A
·           Range suhu kerja      : Suhu Ruang (25°C)
·           Daya                         : 11,45 ± 24,42%

3.2.5 Desain alat                   
          Tampak Depan              : 
Gambar 3.1 Disain Alat Tampak Depan 







                                                 
Tampak Samping          :
Gambar 3.2 Disain Alat Tampak Samping










3.2.6 Diagram Blok Alat
Gambar 3.3 Diagram Blok Alat


Sebagaimana terlihat pada blok diagram diatas, data diterima oleh IR receiver pada minimum sistem ATMEGA 16 melalui media cahaya dari transmitter remote control. Data yang diterima dari transmitter pada remote ini akan ditangkap oleh receiver infrared, lalu masuk ke mikrokontroller ATMEGA 16 melalui port D.2. Jika data sinyal yang dikirimkan dari remote (Transmitter) dapat diterima dengan baik, maka sinyal akan ditangkap oleh receiver yang kemudian sinyal data diinisialisasikan di mikrokontroller ATMEGA 16. Mikrokontroller Atmega 16 akan mengolah data serial tersebut dan memberikan hasil serupa pada tampilan di seven segment dan menghasilkan suara sesuai dengan setting program di mikrokontroller Atmega 16.





3.2.7   Cara Kerja Alat
Transmitter / Remot Control
Setelah program di download ke dalam mikrokontroller ATMEGA 16, maka remote control memancarkan cahaya infrared yang dimodulasi dengan frekuensi 38-42KHz. Hasil modulasi dikodekan dengan menggunakan sistem pulse coded dimana logika 0 ataupun 1 ditentukan dengan lebar pulsa yang diterima setelah proses demodulasi cahaya infrared oleh bagian receiver. Hasil dari pengkodean akan diperoleh kode-kode hexa yang mewakili hasil penekanan tombol-tombol dari remote control. Beberapa option yang dapat dipilih melalui remote control ini, yaitu seperti misalnya dengan memilih option skor group a yaitu dengan menekan tombol program + dan -, dan untuk mengatur skor group b yaitu dengan menekan tombol Ch + dan -.


Gambar 3.2  Pulses Coded
Modul Receiver
Jika transmitter mengirimkan sinyal on dan off maka pada receiver juga menerima sinyal on dan off. Tetapi receiver hanya mendeteksi ada sinyal carrier atau tidak. Jika ada data carrier maka pulsa yang dikirimkan adalah high sebaliknya jika tidak ada carrier maka pulsa yang dikirimkan adalah low. Sinyal carrier sebesar 38 kHz yang diterima oleh receiver akan hilang. Salah satu contoh aplikasi dari penggunaan infra red adalah pada TV/VCR remote control. Selanjutnya Mikrokontroller ATMEGA16 akan menginisialisasi data dari remote, dimana receiver dihubungkan ke PIND.2.

Modul Display
Modul display yang berupa rangkaian seven segment ini menggunakan decoder 74LS47 common anoda yang mengkodekan bilangan 4 bit dari sebuah inputan menjadi output 7 bit yang diumpankan pada 7’segment common anoda.
Modul WT9501M03
Modul WT9501M03 menggunakan mode serial untuk mengontrol suara yang akan diproses oleh sebuah Mikrokontroler atau PC Serial.  Dan dengan mode serial kita bisa menjalankan track lagu2/suara nya baik secara berurutan maupun secara random/acak. Modul suara WT9501 meminta syarat dalam komunikasi serial nya yaitu berupa protokol data yang harus dipenuhi supaya modul ini bekerja dengan baik, seperti apa itu protokol data yang disyaratkan oleh modul ini, perhatikan gambar di bawah ini:
Tabel 3.1 Protokol Data Modul Suara
SC
DT
OC
FNTT
FNT
FNH
FTS
FNO
EC
7E
07
XX
XX
XX
XX
XX
XX
7E
Ket :
SC          : Start Code
DT         : Data Length
OC         : Operation Code
FNTT     : Folder Name Ten Thousands
FNT       : Folder Name Thousands
FNH      : Folder Name Hundreds
FTS        : Folder Name Teens
FNO      : Folder Name One
EC         : End Code

Gambar tabel di atas merupakan model protokol data yang diminta oleh modul suara ini. Kita harus penuhi syarat tersebut dalam membangun komunikasi antara mikrokontroler dan modul suara WT9501. Dalam pengiriman perintah-perintah serial nya harus mengikuti tabel di atas. Data kita kirim diawali dengan : "Start Code",Lalu  diikuti "Data Lenght "-"OpCode" "Nomor Track Puluhan Ribu" - "Nomor Track Ribuan" - "Nomor Track Ratusan" - "Nomor Track Puluhan" - "Nomor Track Satuan". Dan ditutup dengan : "End Code".
Modul Mikrokontroler
Pada alat ini menggunakan inputan yang berasal dari tombol pada remote control. Pada remote control terdapat sebuah sensor inframerah transmitter yang berfungsi untuk mengirimkan data sinyal ke sensor inframerah receiver yang terhubung ke pin D2 pada mikrokontroller atmega 16. Selanjutnya data sinyal diolah di dalam mikrokontroller yang telah terprogram sehingga dapat menampilkan data sesuai dengan tombol yang dipilih melalui seven segment.

Tanda detik pada timer ini ditunjukan oleh nyala Led indikator (port c) yang akan berkedip setiap detiknya. Proses kerjanya adalah ketika tombol power remot ditekan, seven segment akan menyala dan mengeluarkan angka 0 sambil mengeluarkan suara. Suaranya yaitu :” Waktu pertandingan futsal akan segera dimulai . Skor awal 0 0”. Skor akan bersuara berdasarkan tombol yang ditekan dari kiri ke kanan sampai hitungan ke 10, misalnya : “ nol satu, satu nol, dan seterusnya”. Sedangkan pada timernya diatur dengan menekan tombol A/B untuk mengeset jam dan tombol sleep untuk mengeset menit kemudian tekan tombol power dan select untuk mengirim datanya ke mikrokontroler slave dengan komunikasi serial. Dan Suara yang telah diprogram akan dipanggil oleh mikrokontroler berdasarkan waku yang telah diprogram. Timernya akan bersuara seperti : “ waktu sisa pertandingan tinggal 30 menit lagi, “ waktu sisa pertandingan tinggal 10 menit lagi, “ waktu sisa pertandingan tinggal 5 menit lagi, “ waktu sisa pertandingan sudah habis, terimakasih”

BAB IV
PEMBAHASAN

4.1 Pengujian
4.1.1 Deskripsi Pengujian Sistem
  1. Tujuan Pengujian        : Mengetahui apakah minimum sistem dan seluruh                                          perangkat komponen berfungsi dan bekerja sesuai                                           dengan yang diinginkan
  2. Target pengujian         : Program bekerja sesuai dengan yang diinginkan.
                                       Memperoleh data hasil pengujian Arus pada                                                 display sevent segment.
Tabel 4.1.  Daftar Peralatan Pengujian Alat
Nama Alat
Merk/Type
Jumlah
Sevent segment
-
9 buah
Remote
Sony RM870
1 buah
Minsys
Mikrokontroller Atmega 16 dan AT89S51
@1 buah
Multimeter
-
1 buah
Kabel penghubung
-
secukupnya




4.1.2 Pengujian Sensor
4.1.2.1 Deskripsi Pengujian Sensor
Sensitifitas sensor infrared ditentukan oleh nilai optimum deteksi sensor. Semakin jauh jarak deteksi sensor,sensitifitas sensor semakin kecil. Nilai optimum deteksi sensor sangat ditentukan oleh jarak antara sensor infrared dengan LED infared yang digunakan. Sebelum dilakukan pengujian untuk mengetahui jarak deteksi maksimum, perlu dilakukan opmtimalisasi terhadap rancangan sensor yang sudah dibuat. Optimalisasi ini bertujuan untuk mengetahui jarak optimum antara sensor infared dengan LED Infrared agar sensitifitas sensor semakin tinggi. Selain itu sekaligus pengujian  alat ini dilandasi keinginan mencoba untuk melihat seperti apa keluaran yang dihasilkan rangkaian yang telah dibuat.
·           Tujuan Pengujian
a.    Untuk mengetahui apakah sensor bekerja dengan baik.
b.    Untuk mengetahui apakah program yang diberikan telah sesuai dengan yang diinginkan.
c.    Untuk mengetahui apakah komunikasi data via infrared dapat bekerja dengan baik
d.    Untuk mendapatkan data-data yang akurat dari rangkaian.
4.1.2.2 Pengujian rangkaian pengendali (remote control)
                                                                                  
Pengujian pada remote control ditujukan agar perangkat lunak dan perangkat keras dapat bekerja dengan benar untuk mengirimkan data sesuai dengan tombol yang ditekan dan dapat diterima oleh rangkaian penerima. Remote control yang digunakan adalah remote control jenis Sony RM 870.


Gambar 4.1 Remote control Sony RM 870

4.1.2.3  Pengujian LED Infra merah
Dalam mendapatkan LED infra merah digunakan untuk menghasilkan gelombang infra merah sebagai media transmisi data. Infra merah adalah frekuensi radiasi yang bekerja di bawah tingkat sensitivitas mata manusia. Pengujian terhadap LED ini tidak sama dengan LED biasa karena nyala LED tidak dapat dilihat oleh mata manusia.
Untuk melakukan pengujian nyala atau tidaknya LED infra merah digunakan kamera digital. Pada layar kamera dapat dilihat nyala LED infra merah yaitu berupa sinar merah ketika tombol pada remote control ditekan.


Gambar 4.2 Sinar infra merah ketika tombol ditekan

4.1.2 Prosedur Pengujian
·      Mempersiapan minimum system mikrokontroller Atmega 16, modul Sevent segment, transmitter, modul receiver dan baterai
·      Mendownload program ke dalam mikrokontroller dengan program khusus untuk transmisi serial
·      Menghubungkan suplai dengan mikrokontroller
·      Menekan tombol pada modul transmitter sesuai dengan instruksi program
·      Melihat display pada sevent segment.
·      Mengukur kelistrikan pada alat dan komponen.






4.1.3 Data Hasil Pengujian Alat
Tabel 4.2 Data hasil pengujian remote
Tombol Transmitter
(remote)
Tampilan/ Fungsi Pada Sevent Segment
1
Tampilkan angka 1
2
Tampilkan angka 2
3
Tampilkan angka 3
4
Tampilkan angka 4
5
Tampilkan angka 5
6
Tampilkan angka 6
7
Tampilkan angka 7
8
Tampilkan angka 8
9
Tampilkan angka 9
0
Tampilkan angka 0
Power
Menghidupkan dan Mematikan Seven Segment
Prog + dan Prog -
Up & Down counter Skor Group A
CH + dan CH -
Up & Down Counter Skor Group B
+ dan -
Up & Down Counter Babak
A/B
Set Jam
Sleep
Set Menit


Tabel 4.3 Data hasil pengujian jarak yang dapat ditempuh remot
Jarak Deteksi Sensor
(m)
Output Sensor
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
10
0
11
0
12
0










Tabel 4.4 Data hasil pengukuran Kelistrikan
Alat atau Komponen yang diukur
Kelistrikan
Tegangan input alat
12,19 V
Arus input alat
0,939 A
Daya alat
11,45 W
Arus input seven segmen
63 mA
Tegangan input mikrokontroler
5 V
Tegangan input IR Receiver
5 V
Tegangan input speaker mini
5 V
Tegangan input seven segmen
12,19 V
Arus input per segmen pada seven segmen
9 mA
Tegangan input remot tv sony
3 V












4.2 Analisa Data
4.2.1 Sensor Infrared
Sensiifitas sensor infrared sangat bergantung pada jarak antara sensor infrared dengan LED infrared. Sensor infrared bekerja bedasarkan panas yang dihasilkan oleh LED infra merah. Sensor inframerah tidak akan mendeteksi sinyal yang dikirimkan jika terhalang oleh benda yang tidak tembus pandang, dalam hal ini adalah dinding atau tembok. Pada rangkaian ini ditemukan bahwa data akan terkirim bila keadaan infra merah pengirim (transmitter) dengan infra merah penerima (receiver) saling berhadapan dan data akan tampil pada seven segment bila ada penekanan tombol pada remote sebagai input
Tegangan yang dihasilkan oleh output modul penerima infra merah merupakan tegangan logik karena yang diterima adalah pulsa yang merupakan logik 1 dan logik 0. Jika logik 1 adalah 5 Volt, sedangkan untuk logik 0 adalah 0.5 Volt. Penerimaan ini tergantung dari program yang dibuat.

4.2.3 Kelistrikan
Pada tabel 4.4, ketidakpastian hasil pengukuran belum dicantumkan di dalam tabel tersebut. Setiap pengukuran harus dijamin kehandalan hasilnya dan hal ini dapat dilihat dari ketidakpastiannya. Dari multimeter yang digunakan memiliki kepresisian tegangannya sebesar 0,05% + 1 dan arusnya sebesar 0,2% + 2. Sehingga pada tegangan tinggal ditambah ± 0,05% + 1 dan arusnya ditambah ± 0,2% + 2.






BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan uraian diatas, dapat disimpulkan bahwa:
·         Modul mikrokontroller AT89S51 dapat diaplikasikan sebagai pengontrol kinerja scoring board dan sebagai pengolah data hasil inputan dari remot tv universal seperti Sony
·         Adanya kesinkronan antara modul seven segment dan receiver pada remot dimana angka yang ditampilkan sesuai berdasarkan push button yang ditekan pada remot.
·         Bisa mengatur Skor up dan down count.

5.2 Saran
  • Sebelum alat dijalankan maka sebaiknya cek terlebih dahulu komponen yang ada, apakah telah siap secara baik atau belum sehingga apabila terjadi yang tak diinginkan tidak merusak komponen tersebut.
  • Peletakan (layout) modul receiver infra merah dengan posisi lurus dan ditonjolkan pada tampilan hardware (box) agar penggunaan remote dapat berkomunikasi dengan baik dari jarak jauh sekalipun.











DAFTAR PUSTAKA

Najakhi, Fajar. 2010. “Teori Remote Control Infra Merah / Infrared LED Controller” <http://beritafajar.blogspot.com/2010/12/teori-remote-control-infra-merah.html>. [12 Mei 2014]

Supriyanto, Joko. 2009.Infra merah di Remote TV” <http://www.mansaba.sch.id/web_saba/science-/180-infra-merah-di-remote-tv.html>. [12 Mei 2014]


Sutanto, Budhy. 2011. “Timer dan Counter dalam MCS51” <http://guru.technosains.com/timer_mcs51.html>. [24 Mei 2014]
Sam Pambudi, Wahyu. 2008. “Penerima Remote SONY dengan Atmega 32” <http://wahyusp.files.wordpress.com/2008/08/penerima-remote-sony-dengan-atmega32.pdf>.  [1 Juni 2014]











CARA PENGOPERASIAN ALAT
Dalam pengoperasian alat papan skor yaitu :
  1. Pastikan supply/adaptor sudah dipasang dengan benar.
  2. Tekan tombol power untuk menyalakan seven segment pada papan skor.
  3. Tekan tombol power – kemudian tekan tombol A/B maka seven segment yang disebelah kiri akan berkedap-kedip – Masukkan angka dengan menekan tombol angka untuk mengetset jam pertandingan futsal yang diinginkan – tekan tombol power kembali – dan terakhir tekan tombol select maka secara otomatis jam yang disetting tadi akan muncul di bagian seven segment timer.
  4. Tekan tombol power – kemudian tekan tombol Sleep maka seven segment yang disebelah kanan akan berkedap-kedip – Masukkan angka dengan menekan tombol angka untuk mengetset menit pertandingan futsal yang diinginkan – tekan tombol power kembali – dan terakhir tekan tombol select maka secara otomatis menit yang disetting tadi akan muncul di bagian seven segment timer.
  5. Tekan tombol prog + atau prog – untuk mengatur skor group A secara up and down counter.
  6. Tekan tombol CH + atau CH - untuk mengatur skor group B secara up and down counter.
  7. Tekan tombol + atau – untuk mengatur jumlah babak.
  8. Tekan tombol power lagi untuk mematikan sistem.