PERSETUJUAN
Yang bertanda tangan di bawah ini, Dosen Pembimbing Tugas Akhir menyatakan bahwa laporan tugas akhir dari:
DIAN HAPRIYANTO NST NIM: 082408034
Dengan judul:
PERANCANGAN DAN PEMBUATAN SISTEM PENGONTROLAN
RUANGAN MENGGUNAKAN REMOTE TV BERBASIS
MIKROKONTROLER ATMega8535 SECARA SOFTWARE
telah selesai diperiksa dan dinyatakan selesai, serta dapat diajukan dalam sidang pertanggungjawaban laporan tugas akhir.
Diluluskan di Medan, Juni 2011
Ketua Program Studi Dosen Pembimbing
D3 Fisika Instrumentasi Tugas Akhir
Dr. Susilawati, M.Si Drs. Herli Ginting, M.S.
PERNYATAAN
PERANCANGAN DAN PEMBUATAN SISTEM PENGONTROLAN RUANGAN MENGGUNAKAN REMOTE TV BERBASIS MIKROKONTROLER ATMega8535 SECARA SOFTWARE
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juni 2011
PENGHARGAAN
Alhamdulillahirobbil’alamin,
Segala puji dan syukur bagi Allah Subhanahuwata’ala yang telah melimpahkan barokah, rahmat, hidayah-Nya dan menganugerahkan kemudahan serta kelancaran sehingga penulis dapat menyelesaikan penulisan tugas proyek ini sesuia waktu yang telah ditetapkan. Sholawat dan salam semoga senantiasa tercurahkan kepada Rasulullah Sallallahu’alaihiwassalam sang pembawa petunjuk dan selalu menjadi inspirasi dan teladan bagi penulis
Tugas Akhir ini disusun untuk melengkapi persyaratan dalam mencapai gelar Ahli Madya pada Program Studi Diploma Tiga (III) Fisika Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
Adapun judul Tugas Proyek ini adalah
“PERANCANGAN DAN PEMBUATAN SISTEM PENGONTROLAN
RUANGAN MENGGUNAKAN REMOTE TV BERBASIS
MIKROKONTROLER ATMega8535 SECARA SOFTWARE”.
Penulis menyadari bahwa tersusunnya Tugas Akhir ini dari Do’a, perhatian, bimbingan, motivasi dan dukungan berbagai pihak, sehingga dengan keikhlasan dan kerendahan hati pada kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Kedua orang tua penulis Ayahanda Husin Nasution dan Ibunda Sri
Ummiyati Lbs serta saudara kandung yang telah memberikan bantuan moril
maupun materil, semangat dan do’a yang begitu besar kepada penulis.
2. Ibu Dr. Susilawati, M.Si, selaku Ketua Program Studi Fisika Instrumentasi Fakultas Matematika Dan Ilmu Pengetahuan Alam.
3. Bapak Drs. Perdinan Sinuhaji, M.S, selaku Sekretaris Program Studi Fisika Instrumentasi Fakultas Matematika Dan Ilmu Pengetahuan Alam.
4. Bapak Drs. Herli Ginting, M.S, selaku dosen pembimbing, yang telah banyak membantu dan mendukung penulis dalam menyelesaikan Tugas Akhir ini.
5. Seluruh Dosen dan Karyawan Program Studi Diploma Tiga (III) Fisika Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
7. Rekan satu team Alvris Pratama yang telah sama-sama berjuang sehingga dapat menyelesaikan Tugas Akhir ini dengan tepat waktu.
8. Rekan – rekan seperjuangan Keluarga Besar Fiska Instrumentasi dan UKMI AL-FALAK yang telah membantu dan mendukung penulis dalam menyelesaikan Tugas Akhir ini.
9. Sirma Novita Nasrah, yang telah banyak memberikan motivasi, semangat dan dukungan sehingga Tugas Akhir ini terselesaikan.
Penulis menyadari sepenuhnya bahwa dalam pembuatan Tugas Akhir ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat ny membangun dalam penyempurnaan Tugas Proyek ini.
Semoga laporan ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.
Amin Yaa Rabbal’alamin
Medan, Juni 2011 Hormat Kami,
ABSTRAK
Sistem pengontrolan ruangan menggunakan remote TV berbasis mikrokontroler ATMega 8535 dirancang dengan menggunakan prinsip-prinsip elektronika seperti, sistem mikrokontroler dan pemograman. Sistem mikrokontroler digunakan pada remote kontrol yang mengirim infra merah (sebagai transmitter) pada infra merah modul (sebagai receiver), sistem pemograman digunakan pada mikrokontroler ATMega 8535 untuk pengendalian ON/OFF peralatan listrik. Untuk sistem pengontrol ruangan yang di kontrol adalah lampu AC dan motor DC (kipas).
Pada sistem ini menggunakan 4 buah relay yang berfungsi sebagai saklar. Dimana relay ini memisahkan rangkaian kontrol dengan pengontrol ruangan yang akan di kontrol.
Dalam Tugas Akhir ini di implementasi sebuah remote kontrol menggunakan media infra merah.Remote kontrol yang digunakan pada system ini menggunakan sebuah mikrokontroler ATMega 8535.IR (Infra Red) remote kontrol yang digunakan pada Tugas Akhir ini adalah remote TV sony dengan type SNY-870. Sebagai penerima infra merah dari remote TV menggunakan sensor TSOP 1738.
DAFTAR ISI
DAFTAR GAMBAR………...………...ix
DAFTAR TABEL………...……….x
BAB I PENDAHULUAN 1.1. Latar Belakang……….………1
1.2. Rumusan Masalah………...2
1.3. Tujuan………...2
1.4. Batasan Masalah………..2
1.5. Metologi Penulisan……….….3
1.6. Sistematika Penulisan……….3
BAB II LANDASAN TEORI 2.1. Remote Kontrol……….…..5
2.1.1. Rangkaian Receiver………...………....6
2.1.2. Remote Kontrol TV Sony………...8
2.1.3. Prinsip-Prinsip Dasar Remote TV Sony……….9
2.1.4. Cara Kerja Remote Sony………...10
2.2. Mikrokontroler ATMega8535……….10
2.3. Konfigurasi Pin ATMega8535………....15
2.4. Peta Memory ATMega8535………....16
2.4.1. Program Memory………...16
2.4.2. Data Memory………17
2.4.3. EEPROM Data Memory………...18
2.4.4. Status Register………..19
2.5. Sensor TSOP 1738………...20
2.6. LCD (Liquid Crystal Display) 2x16………..….21
2.7. Bahasa Pemograman ATMega8535………..…….23
2.8.3. Tipe data………...25
2.8.4. Header………....27
2.8.5. Operator Aritmatika……….28
2.8.6. Operator Pembanding………...29
2.8.7. Operator Logika………...29
2.8.8. Operator Bitwise………...31
2.8.9. Operator Penugasan dan Operator Majemuk………....………...32
2.8.10. Operator Penambahan dan Pengurangan………..33
2.8.11. Peryataan If dn If Bersarang………..……….34
2.8.12. Peryataan Switch………..35
2.8.13. Peryataan While………36
2.8.14. Peryataan Do..While………....37
2.8.15. Peryataan For………38
2.9. Software ATMega8535 Editor dan Simulator………..39
2.9.1. Software ATMega8535 Editor………..……….39
2.9.2. Software Downloader………...…………...39
2.10. Software Desain PCB (Printed Circuit Board) Eagle 4.13r………40
BAB III PERANCANGAN ALAT DAN PROGRAM 3.1 Perancangan Alat………..42
3.1.1. Diagram Blok Rangkaian………42
3.1.2. Rangkaian Power Supply………44
3.1.3. Rangkaian Mikrokontroler ATMega8535………44
3.1.4. Rangkaian LCD (Liquid Crystal Disply) 2x16………45
3.1.5. Rangkaian Sensor TSOP 1738………...46
3.1.6. Perancangan Perangkat Lunak……….…..46
3.2 Program………..50
3.2.1. Pemograman Rangkaian Penerima………50
3.2.2. Pemograman Rangkaian LCD………51
BAB IV PENGUJIAN RANGKAIAN DAN ANALISA PROGRAM 4.1. Pengujian Rangkaian………...……….52
4.1.1. Pengujian Sistem Remote Kontrol……….52
4.1.2. Pengujian Rangkaian Power Supply………..53
4.2. Analisa Program………..……….55
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan………63 5.2. Saran………...63
DAFTAR PUSTAKA………..……..65
LAMPIRAN A : Gambar Alat
DAFTAR GAMBAR
Gambar 2. 1 Rangkaian Receiver Remote………...…….7
Gambar 2. 2 Pulse Coded………...……….8
Gambar 2. 3 Space Coded………..……….8
Gambar 2. 4 Shift Coded………...………..9
Gambar 2. 5 Pulsa Remote Sony………..………10
Gambar 2. 6 Blok Diagram ATMega8535……….………….…………...13
Gambar 2. 7 Konfigurasi Pin ATMega8535……….………..15
Gambar 2. 8 Peta Memori Program……….………17
Gambar 2. 9 Peta Memori Data………..………..18
Gambar 2. 10 EEPROM Data Memori………18
Gambar 2. 11 Status Register ATMega8535………..19
Gambar 2. 12 Sensor TSOP 1738………..………..20
Gambar 2. 13 LCD 2x16………...22
Gambar 2. 14 Tampilan Code Vision AVR………..39
Gambar 2. 15 Tampilan Ponyprog2000………..40
Gambar 2. 16 Tampilan Software EAGLE 4.13r………..40
Gambar 3. 1 Diagram Blok………..……….42
Gambar 3. 2 Rangkaian Power Supply………...44
Gambar 3. 3 Rangkaian Skematik Minimum Mikrokontroler ATMega8535…………45
Gambar 3. 4 Rangkaian LCD………...45
Gambar 3. 5 Rangkaian Sensor TSOP 1738………..46
DAFTAR TABEL
Tabel 2. 1 Tipe Data……….27
Tabel 2. 2 OperatorAritmatika……….29
Tabel 2. 3 Operator Pembanding………..30
Tabel 2. 4 Operator Logika………...30
Tabel 2. 5 Operator Bitwise………..32
Tabel 2. 6 Operator Penugasan……….33
Tabel 2. 7 Operator Majemuk………...33
Tabel 2. 8 Operator Penambahan dan Pengurangan……….34
ABSTRAK
Sistem pengontrolan ruangan menggunakan remote TV berbasis mikrokontroler ATMega 8535 dirancang dengan menggunakan prinsip-prinsip elektronika seperti, sistem mikrokontroler dan pemograman. Sistem mikrokontroler digunakan pada remote kontrol yang mengirim infra merah (sebagai transmitter) pada infra merah modul (sebagai receiver), sistem pemograman digunakan pada mikrokontroler ATMega 8535 untuk pengendalian ON/OFF peralatan listrik. Untuk sistem pengontrol ruangan yang di kontrol adalah lampu AC dan motor DC (kipas).
Pada sistem ini menggunakan 4 buah relay yang berfungsi sebagai saklar. Dimana relay ini memisahkan rangkaian kontrol dengan pengontrol ruangan yang akan di kontrol.
Dalam Tugas Akhir ini di implementasi sebuah remote kontrol menggunakan media infra merah.Remote kontrol yang digunakan pada system ini menggunakan sebuah mikrokontroler ATMega 8535.IR (Infra Red) remote kontrol yang digunakan pada Tugas Akhir ini adalah remote TV sony dengan type SNY-870. Sebagai penerima infra merah dari remote TV menggunakan sensor TSOP 1738.
BAB I
PENDAHULUAN
1.1. Latar belakang
Pada saat ini pengendalian lampu masih dilakukan dengan cara manual, caranya
dengan menekan saklar ON / OFF. Cara ini dinilai tidak sesuai lagi dengan zaman
yang sudah serba elektronik dan memiliki beberapa kelemahan, antara lain
pengendalian ON / OFF peralatan tidak bisa dilakukan dari jarak jauh, sehingga
pengguna harus lansung menekan saklar ON / OFF pada tempat saklar tersebut
berada. Disamping itu juga peralatan yang dikendalikan lebih dari satu buah, dan jarak
masing-masing perlatan berjauhan karena ruangan yang sangat besar, maka ini tentu
saja tidak menghemat waktu dan tenaga manusia, sehingga pencegahan penggunaan
peralatan pengendalian lampu dan oleh pihak yang tidak berwenang tidak dapat
dilakukan.
Berdasarkan masalah yang dikemukakan di atas, penulis ingin merancang
sistem pengendalian peralatan listrik menggunakan remote kontrol dalam
pengendalian ON / OFF daya listrik berbasis ATMega 8535. Jika menggunakan
remote kontrol ini akan membantu kita mempermudah menghidupkan lampu ruangan,
karena pada remote kontrol ini menggunakan sinar infra merah yang mempunyai jarak
tembus yang jauh asal tidak ada yang menghalangi antara pemancar infra merah dan
1.2. Rumusan Masalah
Berdasarkan hal tersebut diatas maka timbul permasalahan yaitu:
Bagaimana merencanakan dan membuat suatu alat yang dapat membaca
kode-kode dari remote kontrol TV?
Bagaimana merencanakan dan membuat suatu alat dengan kode-kode dari
remote kontrol yang dapat menghidupkan ataupun mematikan peralatan rumah
tangga pada ruang utama rumah.
1.3. Tujuan
Tujuan yang ingin dicapai adalah untuk membuat suatu sistem yang dapat
dikontrol dengan menggunakan remote kontrol TV pada peralatan listrik di ruang
utama rumah. Dengan menggunakan sistem pengontrolan ini diharapkan dapat lebih
mengoptimalkan fungsi dari remote kontrol TV.
1.4. Batasan Masalah
Agar permasalahan tidak terlalu luas, maka penulis membatasi hanya pada
hal-hal berikut:
a. Alat yang dibuat berbasis mikrokontroler.
b. Remote kontrol yang digunakan adalah remote kontrol TV buatan China yang
umum dijual dipasaran.
d. Sensor TSOP 1738 dapat mendeteksi sinyal remote kontrol televisi pada jarak
lebih kurang 3 meter secara lurus atau sejajar.
e. Bahasa pemograman yang digunakan adalah bahasa C
1.5. Metodologi Penulisan
Adapun metode penulisan yang digunakan dalam menyusun dan menganalisa
tugas akhir ini adalah:
Studi literatur yang berhubungan dengan perancanangan dan pembuatan alat ini.
Perencanaan dan pembuatan alat
Merencanakan peralatan yang telah dirancang baik software maupun hardware.
Pengujian alat
Peralatan yang telah dibuat kemudian diuji apakah telah sesuai yang telah
direncanakan.
1.6. Sistematika Penulisan
Sistematika penulisan dalam tugas akhir ini terdiri dari 5 bab, yaitu:
BAB I : PENDAHULUAN
Berisi latar belakang permasalahan, batasan masalah, tujuan
pembahasan, metodologi pembahasan, sistematika penulisan
BAB II : LANDASAN TEORI
Membahas tentang teori, remote kontrol, mikrokontroller,
hardware, software dan teori dasar alat-alat pendukung lainnya.
BAB III : PERANCANGAN SISTEM
Membahas tentang perencanaan dan pembuatan sistem secara
keseluruhan.
BAB IV : PENGUJIAN RANGKAIAN
Berisi tentang uji coba alat yang telah dibuat, pengoperasian
dan spesifikasi alat.
BAB V : PENUTUP
Merupakan kesimpulan dari pembahasan pada bab-bab
BAB II
LANDASAN TEORI
Landasan teori sangat membantu untuk dapat memahami suatu sistem. Selain dari
pada itu dapat juga dijadikan sebagai bahan acuan didalam merencanakan suatu
system. Dengan pertimbangan hal-hal tersebut, maka landasan teori merupakan bagian
yang harus dipahami untuk pembahasan selanjutnya. Pengetahuan yang mendukung
perencanaan dan realisasi alat meliputi remote kontrol, mikrokontroler ATMega 8535,
sensor TSOP 1738, LCD dan program.
2.1. Remote Kontrol
Remote TV adalah suatu pengontrol, yang fungsinya untuk merubah dan
meng-set TV yang dapat digunakan untuk merubah saluran TV seperti ingin melihat
saluran ( RCTI, SCTV, INDOSIAR, ANTV, TRANS TV, dll ). Adapun untuk
meng-set TV tersebut, seperti contoh untuk meng-set dalam VCD atau DVD,
semua itu di kontrol oleh Remote TV, yang tentunya semua itu tidak-lah
semudah yang dibayangkan, yang hanya menekan tombol Remote, dalam hal
pengerjaan Tugas Akhir ini penulis menggunakan Remote TV Sony.
Pada remote kontrol terdapat dua bagian yang utama yaitu : bagian transmiter
mikroprosesor, mikrokontroler jauh lebih unggul karena terdapat berbagai alasan,
diantaranya :
1. Tersedianya I/O
I/O dalam mikrokontroler sudah tersedia sementara pada mikroprosesor
dibutuhkan IC tambahan untuk menangani I/O tersebut. IC I/O yang dimaksud adalah
PPI 8255.
2. Memori Internal
Memori merupakan media untuk menyimpan program dan data sehingga
mutlak harus ada. Mikroprosesor belum memiliki memori internal sehingga
memerlukan IC memori eksternal. Dengan kelebihan-kelebihan di atas, ditambah
dengan harganya yang relatif murah sehingga banyak penggemar elektronika yang
kemudian beralih kemikrokontroler. Namun demikian, meski memiliki berbagai
kelemahan, mikroprosesor tetap digunakan sebagai dasar dalam mempelajari
mikrokontroler. Inti kerja dari keduanya adalah sama, yakni sebagai pengendali suatu
sistem.
Mikrokontroler merupakan komputer di dalam chip yang digunakan untuk
mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas
biaya. Secara harfiahnya bisa disebut “pengendali kecil“ dimana sebuah sistem
seperti IC TTL dan CMOS dapat direduksi / diperkecil dan akhirnya terpusat serta
dikendalikan oleh mikrokontroler ini. Dengan menggunakan mikrokontroler ini maka:
1. Sistem elektronik akan menjadi lebih ringkas.
2. Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari
sistem adalah perangkat lunak yang mudah dimodifikasi.
3. Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak.
Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen
IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan
tinggi atau sekedar menambah jumlah saluran input dan output (I/O). dengan
kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer
karena mikrokontroler sudah mengandung beberapa bagian yang langsung
bisa dimanfaatkan, misalnya port paralel, port serial, komparator,
konversi digital ke analog (DAC), konversi analog ke digital (ADC), dan
sebagainya hanya menggunakan Minimum System yang tidak rumit atau
kompleks.
Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya
mikroprosesor sebagai otak komputer. Namun mikrokontroler memiliki nilai tambah
karena didalamnya sudah terdapat memori dan sistem input/output dalam suatu
kemasan IC. Mikrokontroler AVR (Alf and Vegard’s RISC processor) standar
memiliki arsitektur 8-bit, dimana semua instruksi dikemas dalam kode 16- bit dan
sebagian besar instruksi dieksekusi dalam satu siklus clock. Berbeda dengan instruksi
MCS-51 yang membutuhkan 12 siklus clock karena memiliki arsitektur CISC (seperti
Dari gambar tersebut dapat dilihat bahwa ATMega 8535 memiliki bagian
sebagai berikut :
1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, Port D.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. Watchdog Timer dengan osilator internal.
6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.
8. Unit interupsi internal dan eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
11. Antarmuka komparator analog..
12. Port USART untuk komunikasi serial.
Kapabiltas detail dari ATMega 8535 adalah sebagai berikut :
1. Sistem mikroprosesor 8 bit bebrbasis RISC dengan kecepatan maksimal 16
MHz.
2. Kapabiltas memori flash 8 Kb, SRAM sebesar 512 byte, dan EEPROM
(Electrically Erasable Programmable Read Only Memory) sebesar 512
byte.
3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.
Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Timer/Counter, Komparator Analog, dan SPI
Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
TWI, Komparator Analog, dan Timer Oscilator
Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Komparator Analog, Interupsi Iksternal dan komunikasi serial USART
Reset merupakan pin yang digunakan untuk mereset mikrokontroler
XTAL1 dan XTAL2 merupakan pin masukkan clock eksternal (osilator
menggunakan kristal, biasanya dengan frekuensi 11,0592 MHz).
2.4. Peta Memori ATMega8535
ATMega8535 memiliki dua jenis memori yaitu Program Memory dan Data
Memory ditambah satu fitur tambahan yaitu EEPROM Memory untuk penyimpan
data.
2.4.1. Program Memory
ATMEGA 8535 memiliki On-Chip In-System Reprogrammable Flash Memory
untuk menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi
dua bagian, yaitu Boot Flash Section dan Application Flash Section. Boot Flash
Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus
ini mengeluarkan logika low atau high pada outputnya, maka mikrokontroler dapat
langsung mendeteksinya.
2.6. Liquid Crystal Display (LCD) 2x16
Kegunaan LCD banyak sekali dalam perancangan suatu system dengan
menggunakan mikrokontroler. LCD (Liquid Crystal Display) dapat berfungsi untuk
menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu
pada aplikasi mikrokontroler. Pada praktek proyek ini, LCD yang digunakan adalah
LCD 16 x 2 yang artinya lebar display 2 baris 16 kolom dengan 16 Pin konektor.
Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain:
VCC (Pin 1)
Merupakan sumber tegangan +5V.
GND 0V (Pin 2)
Merupakan sambungan ground.
VEE (Pin 3)
Merupakan input tegangan Kontras LCD.
RS Register Select (Pin 4)
Merupakan Register pilihan 0 = Register Perintah, 1 = Register Data.
R/W (Pin 5)
2.7. Bahasa Pemograman ATMega8535
Pemrograman mikrokontroler ATmega8535 dapat menggunakan low level
Language (assembly) dan high level language (C, Basic, Pascal, JAVA,dll)
tergantung compiler yang digunakan (Widodo Budiharto, 2006). Bahasa Assembler
mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu
jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai
pemrograman keseluruhan mikrokontroler jenis mikrokontroler AVR. Namun
bahasa assembler relatif lebih sulit dipelajari dari pada bahasa C.
Untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama
serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan
dibanding bahasa assembler yaitu independent terhadap hardware serta lebih mudah
untuk menangani project yang besar. Bahasa C memiliki keuntungan- keuntungan
yang dimiliki bahasa assembler (bahasa mesin), hampir semua operasi yang dapat
dilakukan oleh bahasa mesin, dapat dilakukan dengan bahasa C dengan penyusunan
program yang lebih sederhana dan mudah. Bahasa C terletak diantara bahasa
pemrograman tingkat tinggi dan assembly (Agus Bejo,2007).
2.8. Dasar Pemrograman ATMega8535 dengan Bahasa C
2.8.1. Pendahuluan
C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa
mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat
program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin,
sebab setiap perintahnya sangat bergantung pada jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada
tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam
bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan
program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu
jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C
yaitu berupa standar ANSI ( American National Standar Institut) yang dijadikan acuan
oleh para pembuat kompiler.
2.8.2. Pengenal Pada Bahasa C
Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk
menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus.
Pemberian pengenal pada program harus memenuhi syarat-syarat di bawah ini:
1. Karakter pertama tidak menggunakan angka;
2. Karakter kedua berupa huruf, angka, garis bawah,;
3. Tidak menggunakan spasi;
4. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap
berbeda;
5. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator
Contoh menggunakan pengenal yang diperbolehkan:
1. Nama
2. _nama
3. Nama2
4. Nama_pengenal
Contoh penggunaan pengenal yang tidak diperbolehkan:
1. 2nama
2. Nama+2
3. Nama pengenal
2.8.3. Tipe Data
Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari
tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif
sedangkan signed menyebabkan nilai tipe data bernilai negatif dan memungkinkan
data bernilai positif. Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini.
Tabel 2. 1 Tipe Data
Pemodifikasi Tipe Persamaan Jangkauan Nilai
Signed char Char -128 s/d 127
Signed int Int -32.768 s/d 32.767
Signed short int Short, signed short -32.768 s/d 32.767 Signed long int Long, long int, signed
long
-2.147.483.648 s/d 2.147.483.647
Unsigned short int Unsigned short 0 s/d 65.535
Unsigned long int Unsigned long 0 s/d 4.294.967.295
Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil
program,
DDRC = 0Xff; //set PORTC sebagai output PORTB = 0x00;
DDRB = 0Xff; // set PORTB sebagai output
While(1)
PORTC = -10 (desimal) karena PORT mikrokontroler tidak dapat mengeluarkan nilai
negatif maka PORTB dan PORTC akan memiliki keluaran 0x0A tapi pada
kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut
Pada program di atas terdapat tulisan//set PORTB sebagai output yang berguna
sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari program.
Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu dengan
mengawali komentar dengan tanda “ // “ ( untuk komentar yang hanya satu baris ) dan
mengawali komentar dengan tanda “ /* “ dan mengakhiri komentar dengan tanda “ */
“.
Contoh:
// ini adalah komentar
/* ini adalah komentar
Yang lebih panjang
Dan lebih panjang lagi */
2.8.4. Header
Header digunakan untuk menginstruksikan kompiler untuk menyisipkan file
lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis
mikrokontroler yang kita gunakan (pada software Code Vision AVR). File-file yang
ber akhiran .h disebut file header.
File header yang digunakan untuk mendefinisikan jenis mikrokontroler yang
digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register
yang terdapat program difungsikan untuk jenis mikrokontroler apa yang digunakan (
pada software Code Vision AVR ).
Contoh:
2.8.5. Operator Aritmatika
Operator aritmatika digunakan untuk melakukan proses perhitungan
matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada
tabel di bawah ini:
Tabel 2. 2 Operator Aritmatika
Operator Keterangan
+ Operator untuk penjumlahan - Operator untuk pengurangan * Operator untuk perkalian / Operator untuk pembagian % Operator untuk sisa bagi
Contoh penggunaan operator aritmatika dapat dilihat di bawah ini,
#include < mega8535.h> #include <delay.h> void main (void) {
unsigned char a, b; a = 0x03;
b = 0x05;
2.8.6. Operator Pembanding
Operator pembanding digunakan untuk membandingkan 2 data atau lebih.
Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah.
Operator pembanding dapat kita lihat pada tabel di bawah ini:
Tabel 2. 3 Operator Pembanding
Operator Contoh Keterangan
= = x = = y Benar jika kedua data bernilai sama
!= x != y Bernilai benar jika kedua data tidak sama
> x > y Bernilai benar jika nilai x lebih besar dari pada y
< x < y Bernilai jika x lebih kecil dari y
>= x >= y Bernilai jika x lebih besar atau sama dengan y
<= x <= y Bernilai benar jika x lebih kecil atau sama dengan y
2.8.7. Operator Logika
Operator logika digunakan untuk membentuk logika dari dua pernyataan atau
lebih. Operator logika dapat dilihat pada tabel di bawah ini:
Tabel 2. 4 Operator Logika
Operator Keterangan && Logika AND
Contoh program:
#include < mega8535.h> #include <delay.h> void main (void) {
DDRC = 0XFF; // sebagai output DDRA = 0X00; // sebagai input while (1)
mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang
waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC
akan mengeluarkan logika 0x00.
2.8.8. Operator Bitwise
Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan
operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau
salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator
Tabel 2. 5 Operator Bitwise
Operator Keterangan
& Operasi AND level bit | Operasi OR level bit ^ Operasi XOR level bit ~ Operator NOT level bit >> Operator geser kanan << Operator geser kiri
Contoh program:
DDRC = 0xff; //portc sebagai output while (1)
2.8.9. Operator Penugasan dan Operator Majemuk
Operator ini digunakan untuk memberikan nilai atau manipulasi data sebuah
Tabel 2. 6 Operator Penugasan
Operator Keterangan
= Memberikan nilai variabel += Menambahkan nilai variabel - = Mengurangi nilai variabel *= Mengalikan nilai variabel
/= Membagi nilai variable %= Memperoleh sisa bagi
Contoh:
a += 2 ; artinya nilai variabel a berubah menjadi a = a + 2
b *= 4; artinya nilai variabel b berubah menjadi b = b * 4
selain operator penugasan di atas juga ada operator penugasan yang berkaitan dengan
operator bitwise seperti pada tabel di bawah ini:
Tabel 2. 7 Operator Majemuk
Operator Contoh Arti
&= x &= 1 Variabel x di AND kan dengan 1 |= x |= 1 Variabel x di OR kan dengan 1 ~= x ~= 1 x = ~ (1) ; x = 0xFE
2.8.10. Operator Penambahan dan Pengurangan
Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel
dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini:
Tabel 2. 8 Operator Penambahan dan Pengurangan
Operator Keterangan
++ Penambahan 1 pada variable -- Pengurangan
Contoh:
a = 1; b = 2; a ++; b --;
Penjelasan:
Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan
operator B—akan mengubah variabel b dari 2 menjadi 1.
2.8.11. Pernyataan If dan If Bersarang
Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih
pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar
maka akan di jalankan instruksi pada blok nya, sedangkan jika pernyataan tidak benar
Bentuk pernyataan IF adalah sebagai berikut:
Pernyataan ini sering disebut nested if atau if bersarang. Salah satu bentuknya adalah sebagai berikut:
2.8.12. Pernyataan Switch
Pernyataan switch digunakan untuk melakukan pengambilan keputusan
terhadap banyak kemungkinana. Bentuk pernyataan switch adalah sebagai berikut :
Switch (ekspresi) {
case nilai_1 : pernyataa_1;break; case nilai_2 : pernyataan_2;break; case niai_3 : pernyataan_3;break;
…
Defaut : pernyataan_default;break; }
Pada pernyataanswitch,masing-masing pernyataan (pernyataan_1 sampai
dengan pernyataan_default) dapat berupa satu atau beberapa perintah dan tidak perlu
berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai sama
dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama dengan
nilai_2, pernyataan_3 akan dikerjakan jika ekspresi bernilai sama dengan nilai_3 dan
seterusnya. Pernyataan_default bersifat opsional, artinya boeh dikerjakan apabila
nilai ekspresi tidak ada yang sama satupun dengan salah satu nilai_1, nilai_2, nilai_3
dan seterusnya. Setiap akhir dari pernyataan harus diakhiri dengan break, karena ini
digunakan untuk keuar dari pernyataan swich.
Contoh :
Switch (PINA)
{
case 0xFE : PORT=0x00;break; case 0xFD : PORT=0xFF;break; }
Pernyataan di atas berarti membaca port A, kemudian datanya (PINA) akan
PINA bernilai 0xFD maka data 0xFF akan dikeluarkan ke port C kemudian program keluar dari pernyataan switch.
2.8.13. Pernyatan While
Pernyataan while digunakan untuk menguangi sebuah pernyataan atau blok
kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk
pernyataan while adalah sebagai berikut :
while (kondisi) {
// sebuah pernyataan atau blok pernyataan }
Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka
tanda { dan } bias dihilangkan.
Contoh :
unsigned char a=0; …..
while (a<10) {
PORT=a; a++; }
Pernyataan di atas akan mengeluarkan data a ke port C secara berulang-ulang.
Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a mencapai 10 maka
2.8.14. Pernyataan Do..While
Pernyataan do…while hamper sama dengan pernyataan while, yaitu
pernyataan yang digunakan untuk menguangi sebuah pernyataan atau blok pernyataan
secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan
while adalah sebagai berikut :
do {
// sebuah pernyataan atau b;ok pernyataan } while (kondisi).
Yang membedakan antara pernyataan while dengan do..while adalah bahwa
pada pernyataan while pengetesan kondisi dilakukan terlebih dahulu, jika kondisi
terpenuhi maka barulah blok pernyataan dikerjakan. Sebaliknya pada pernyataan
do…while blok pernyataan dikerjakan terebih dahulu setelah itu baru diakukan
pengetesan kondisi, jika kondisi terpenuhi maka dilakukan pengulangan pernyataan
atau blok pernyataan lagi. Sehingga dengan demikian pada pernyataaan do..while blop
pernyataan pasti akan dikerjakan minimal satu kali sedangkan pada pernyataan
whilebok pernyataan beum tentu dikerjakan.
2.8.15. Pernyataan For
Pernyataan for juga digunakan untuk melakukan pengulangan sebuah
pernyataan atau blok pernyataan, tetapi berapa kali jumah pengulangannya dapat
ditentukan secara lebih spesifik. Bentuk pernyataan for adalah sebagai berikut :
for (nilai_awal ; kondisi ; perubahan) {
Nilai_awal adaah nilai inisial awa sebuah variabel yang didefenisikan terebih dahuu untuk menentukan niai variabel pertama kai sebelum penguangan.
Kondisi merupakan pernyataan pengetesan untuk mengontrol pengulangan, jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan akan diulang terus
sampai pernyataan kondisi tidak terpenuhi (salah).
Perubahan adalah pernyataan yang digunakan untuk melakukan perubahan niai variabel baik naik maupun turun setiap kali pengulangan dilakukan.
Contoh :
unsigned int a;
for ( a=1, a<10, a++) {
PORT=a; }
Pertama kali nilai a adalah 1, kemudian data a dikeluarkan ke port C.
selanjutnya data a dinaikkan (a++) jika kondisi a<10 masih terpenuhi maka data a
akan terus dikeluarkan ke port C.
2.9. Software ATMega8535 Editor dan Simulator
2.9.1. Software ATMega8535 Editor
Instruksi - instruksi yang merupakan bahasa C tersebut dituliskan pada sebuah
Penjelasan dari masing-masing blok adalah sebagai berikut:
1. Fungsi remote sony adalah penghasil clock yang akan di pancar kan mengenai
sensor TV. Clok yang dipancarkan berbeda-beda datanya sesuai dengan
tombol apa yang di tekan pada remote TV.
2. Sensor TSOP 1738, berfungsi untuk menerima kode-kode scan tombol dari
remote TV yang digunakan.
3. ATmega8535 adalah mikrokontroler CMOS 8-bit daya-rendah berbasis
arsitektur RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu
siklus clock, ATmega8535 mempunyai throughput mendekati 1 MIPS per
MHz membuat disainer sistem untuk mengoptimasi komsumsi daya versus
kecepatan proses.
4. Rangkaian driver lampu AC sebagai penggerak dari peralatan listrik (lampu)
agar dapat dikontrol oleh mikrokontroller.
5. Lampu Utama dan motor DC (kipas) digunakan sebagai beban yang akan
dikontrol oleh remote.
6. Rangkaian driver motor DC sebagai penggerak dari peralatan listrik (kipas)
agar dapat dikontrol oleh mikrokontroller.
7. LCD berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks,
remote sony, selanjutnya program akan mengecek apakah ada penekanan tombol 1
pada remote.
Jika tidak ada, program akan mengecek apakah ada penekanan tombol 2 pada
remote, jika ada lampu 2 menyala. Jika tidak ada, program akan mengecek kembali
apakah ada penekanan tombol 3 pada remote, jika ada lampu 3 menyala.
Jika tidak ada, program akan mengecek kembali apakah ada penekanan tombol
4 pada remote, jika ada lampu 4 menyala. Jika tidak ada, program akan mengecek
apakah ada penekanan tombol power, jika ada akan mati semua.
Jika tidak ada, program akan mengecek kembali apakah ada penekanan tombol
program (+) pada remote, jika ada laju motor (kipas) akan naik. Jika tidak ada,
program akan mengecek kembali apakah ada penekanan tombol program (-) pada
remote, jika ada laju motor (kipas) akan turun dan begitu seterusnya.
3.2. Program
3.2.1. Pemograman Rangkaian Penerima
// Declare your global variables here
void main(void) {
// Declare your local variables here
unsigned char count,data1,data2,data3, data4, data5, data6, data7, data8;
unsigned char data11, data12, data13, data14; unsigned char start;
int tampil;
DDRB = 0X08;
// Place your code here while ( ir == 1) {}; while ( ir == 0) {
delay_us(100);
count ++; //count = count+1 }
start = count; count = 0;
//=========================================== if ( start >= 24 && start <= 27)
3.2.2. Pemograman Rangkaian LCD 2x16
BAB IV
PENGUJIAN RANGKAIAN DAN ANALISA PROGRAM
4.1. Pengujian Rangkaian
4.1.1. Pengujian Sistem Remote Kontrol
Pengujian melalui remote dilakukan dengan cara menekan tombol-tombol
remote yang sudah ditentukan yang akan menghasilkan keluaran nyala lampu yang
berbeda-beda. Tabel di bawah adalah table dari tombol-tombol remote dengan macam
fungsinya.
Tabel 4. 1 Pengujian Remote Kontrol
Tombol
Remote
Kode
Remote
Fungsi
Tombol 1 320 Untuk menyalakan dan mematikan lampu 1
Tombol 2 321 Untuk menyalakan dan mematikan lampu 2
Tombol 3 322 Untuk menyalakan dan mematikan lampu 3
Tombol 4 323 Untuk menyalakan dan mematikan lampu 4
Tombol
“POWER”
341
Tombol
“PROGRAM”
1. 336 (+)
2. 337 (-)
1. Untuk menaikan putaran kipas
2. Untuk menurunkan putaran kipas
4.1.2. Pengujian Rangkaian Power Supply
Pengujian rangkaian power supply ini bertujuan untuk mengetahui
tegangan yang dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan
keluaran dari power supply menggunakan multimeter digital. Setelah dilakukan
pengukuran maka diperoleh besarnya tegangan keluaran sebesar 5 volt. Dengan
begitu dapat dipastikan apakah terjadi kesalahan terhadap rangkaian atau tidak.
Jika diukur, hasil dari keluaran tegangan tidak murni sebesar +9 Volt dan +12
Volt, tetapi +8.97Volt dan +12.03 Volt. Hasil tersebut dikarenakan
beberapafaktor, diantaranya kualitas dari tiap-tiap komponen yang
digunakannilainya tidak murni. Selain itu, tegangan jala-jala listrik yang
digunakan tidak stabil.
4.1.3. Pengujian Rangkaian Mikrokontroler ATMega8535
Pengujian pada rangkaian mikrokontroler ATMega8535 ini dapat dilakukan
dengan menghubungkan rangkaian ini dengan rangkaian power supply sebagai
sumber tegangan. Kaki 40 dihubungkan dengan sumber tegangan 5 volt, sedangkan
kaki 20 dihubungkan dengan ground. Kemudian tegangan pada kaki 40 diukur dengan
menggunakan Voltmeter. Dari hasil pengujian didapatkan tegangan pada kaki 40
sebesar 4,9 volt. Langkah selanjutnya adalah memberikan program sederhana pada
#include <mega8535.h> #include <delay.h> #include <stdio.h>
while (1) {
// Place your code here while ( ir == 1) {};
4.1.4. Pengujian Rangkaian Liquid Crystal Display (LCD) 2x16
Pengetesan ini bertujuan untuk mengetahui apakah LCD tersebut dapat
menampilkan pesan-pesan sesuai dengan proses yang diharapkan. Listing program
pengetesan LCD :
lcd_gotoxy(0,0);
lcd_putsf("DIAN-ALVRIS"); lcd_gotoxy(1,1);
lcd_putsf("Data Ir");
Analisa Pengujian LCD :
Setelah program pengujian LCD didownload ke modul, maka pada layar LCD akan
menghasilkan tampilan sebagai berikut :
Pada baris 1 tampil ‘ DIAN-ALVRIS ‘ dan baris 2 tampil ‘ Data Ir ’
4.2. Analisa Program
C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa
mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat
program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin,
sebab setiap perintahnya sangat bergantung pada jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada
tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam
bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan
program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu
jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C
yaitu berupa standar ANSI ( American National Standar Institut) yang dijadikan acuan
Program Keseluruhan dari sistem kontrol ruangan dengan menggunakan remote TV berbasis mikrokontroler ATMega8535 adalah sebagai berikut:
#include <mega8535.h>
// Alphanumeric LCD Module functions #asm
.equ __lcd_port=0x15 ;PORTC #endasm
#include <lcd.h>
// Declare your global variables here
void main(void) {
// Declare your local variables here
unsigned char count,data1,data2,data3, data4, data5, data6, data7, data8;
unsigned char data11, data12, data13, data14; unsigned char start;
// LCD module initialization lcd_init(16);
//================================================= data7
data7 = (( data1/5)-1)*64; data8 = (( data8/5)-1)*128;
tampil = data8 + data7 + data6 + data5 + data4 + data3 + data2 + data1;
sprintf (buf, "data ir: %-i",tampil); lcd_gotoxy(0,1);
lcd_puts(buf);
if (tampil == 320)lamp1 = 1; if (tampil == 321)lamp2 = 1; if (tampil == 322)lamp3 = 1; if (tampil == 323)lamp4 = 1; if (tampil == 341)PORTD = 0X00;
if (tampil == 336) {
OCR0 ++;
if(OCR0 == 0xff)OCR0 = 0XFF;
}
if (tampil == 337) {
OCR0 --;
if (OCR0 == 0)OCR0 = 0;
}
}
};
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Setelah dilakukan pengujian hasil perancangan alat pemanfaatan system
kontrol ruangan dengan menggunakan remote TV, dapat diambil beberapa
kesimpulan:
Sensor TSOP 1738 dapat mendeteksi sinyal remote kontrol televisi pada jaraklebih kurang 3 meter secara lurus atau sejajar.
Panjang data remote kontrol sebesar 15 bit atau 2 byte merek Sony type SNY-870
Protokol pengiriman kode remote kontrol menggunakan tipe pulse
Ada enam tombol remote kontrol yang digunakan sebagai fungsi mematikan danmenghidupkan peralatan, yaitu tombol “POWER”, “1”, “2”, “3”, “4” dan
“PROGRAM” yang masing-masing fungsinya untuk mematikan dan
menghidupkan lampu dan kipas.
5.2. Saran
Beberapa tambahan yang diperlukan dalam meningkatkan kemampuan alat
Supaya rangkaian yang digunakan tidak terganggu, sebaiknya alat ini dikemasdalam bentuk yang lebih aman dan terlindungi, sehingga penggunaannya lebih
efektif
Agar seluruh fungsi tombol dapat dimaksimalkan, maka beban yang akanDaftar Pustaka
Bejo,Agus. 2005. C & AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler ATMega8535 . Edisi Pertama. Yogyakarta: Penerbit Gava Media.
Heryanto, M.Ary dan Wisnu Adi.2008.Pemrograman Untuk Mikrokontroler ATMEGA 8535.Yogyakarta: ANDI.
Lingga, W. 2006. Belajar sendiri Pemrograman AVR ATMega8535. Yogyakarta: Andi Offset.
Malvino, A. P. 1992. Prinsip-prinsip Elektronika. Jakarta: Erlangga.
LAMPIRAN A