TUGAS AKHIR
PERANCANGAN
PROPELLER CLOCK
DIGITAL
BERBASIS MIKROKONTROLER
Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana (S-1) pada Departemen Teknik Elektro
Oleh:
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
MEDAN
LEMBAR PENGESAHAN TUGAS AKHIR
PERANCANGAN PROPELLER CLOCK DIGITAL BERBASIS MIKROKONTROLER
Oleh:
1. Ketua Penguji : Ir. Kasmir Tanjung, M.T. ……….. ROBIN
080402011
Tugas Akhir ini diajukan untuk melengkapi salah satu syarat untuk mememperoleh gelar Sarjana Teknik pada
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA MEDAN
Sidang pada tanggal 22 bulan April tahun 2015 di depan Penguji:
2. Anggota Penguji : Rahmad Fauzi, S.T., M.T. ……….. Disetujui oleh:
Pembimbing,
Ir. T. Ahri Bahriun, M.Sc NIP : 194905241985031001
Diketahui oleh:
Ketua Departemen Teknik Elektro FT USU,
i
ABSTRAK
Seiring perkembangan zaman, banyak cara untuk menampilkan waktu, tidak
terbatas hanya pada jam analog atau jam digital yang sering dijual di pasaran. Salah
satu contohnya adalah propeller clock, dimana prinsip dari jam ini adalah dengan
memutar sebaris LED yang dipasang berderet di atas sebuah papan PCB dengan
kecepatan tinggi sehingga menghasilkan suatu efek persistence of vision dimana mata
kita seolah-olah melihat gambaran dari suatu jam.
KATA PENGANTAR
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas rahmat
dan karunia yang dilimpahkan-Nya sehingga penulis dapat menyelesaikan tugas akhir
ini.
Terima kasih kepada kedua orang tua dan dan sanak saudara lainnya yang
telah membesarkan, mendidik, dan memberikan dorongan baik moril maupun materiil
sehingga penulis mempu menyelesaikan tugas akhir ini.
Selama masa perkuliahan sampai selesainya tugas akhir ini, banyak pihak
yang telah membantu penulis dalam berbagai hal. Oleh karena itu dengan setulus hati
penulis menyampaikan ungkapan terima kasih yang sebesar-besarnya kepada:
1. Bapak Ir. T. Ahri Bahriun, M.Sc selaku dosen pembimbing atas segala
bimbingan, ilmu, motivasi, dan nasihat selama mengerjakan tugas akhir
ini.
2. Bapak Ir. Surya Tarmizi Kasim, M.Si selaku Ketua Departemen Teknik
Elektro FT-USU dan Bapak Rahmat Fauzi, S.T, M.T selaku Sekretaris
Departemen Teknik Elektro FT-USU.
3. Seluruh staf pengajar Departemen Teknik Elektro FT-USU yang telah
memberikan ilmu kepada penulis semasa kuliah dan juga seluruh
karyawan di Departemen Teknik Elektro FT-USU.
4. Teman-teman dekat semasa kuliah, Budiman Chandra, Denny, Yuyanto,
iii
5. Dwi Budi Prasetyo yang telah banyak membantu penulis dalam
menyelesaikan tugas akhir ini.
6. Teman-teman UKM Robotik Sikonek USU yang telah berbaik hati
meminjamkan ruangan dan peralatannya selama penulis menyelesaikan
tugas akhir ini.
7. Teman-teman anggota laboratorium sistem pengaturan dan komputer,
Teguh, Reza, Arif, dan yang lainnya.
8. Rekan-rekan mahasiswa di departemen teknik elektro yang menjadi teman
belajar selama masa perkuliahan.
9. Berbagai pihak-pihak lainnya yang tidak dapat penulis sebutkan
satu-persatu.
Akhir kata, tugas akhir ini masih jauh dari sempurna karena masih banyak
terdapat kesalahan dan kekurangan. Saran dan kritik dari pembaca sangat penulis
harapkan agar dapat lebih baik ke depannya.
Medan, April 2015
DAFTAR ISI
ABSTRAK ... i
KATA PENGANTAR... ii
DAFTAR ISI ... iv
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... ix
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 1
1.3 Tujuan Penulisan ... 1
1.4 Batasan Masalah ... 2
1.5 Metodologi Penelitian ... 2
1.6 Sistematika Penulisan ... 3
BAB II DASAR TEORI ... 5
2.1 Persistence of Vision ... 5
2.2 Mikrokontroler ... 5
2.2.1 Mikrokontroler AVR ATMega8 ... 6
2.2.2 Konfigurasi Pena ATMega8 ... 10
2.2.3 Arsitektur Mikrokontroler ATMega8 ... 11
2.2.4 Peta Memori ATMega8 ... 12
2.2.4.1 Memori Program ... 13
2.2.4.2 Memori Data (SRAM) ... 13
2.2.4.3 Memori Data EEPROM ... 14
2.2.5 Serial Peripheral Interface (SPI) ... 15
2.2.6 Interupsi ... 15
v
2.4 LED Infrared... 17
2.5 Dioda Foto ... 18
2.6 Motor DC ... 18
2.7 CodeVision AVR ... 20
BAB III PERANCANGAN SISTEM ... 22
3.1 Spesifikasi Sistem ... 22
3.2 Perancangan Perangkat Keras ... 23
3.2.1 Mikrokontroler ATMega8 ... 24
3.2.2 RTC (Real Time Clock) DS 1307... 26
3.2.3 Push Button dan LED ... 27
3.2.4 Sensor Optik ... 29
3.2.5 Rangkaian Regulator Tegangan ... 30
3.2.6 Rangkaian Switching untuk ISP ( In System Programming) ... 34
3.3 Perancangan Perangkat Lunak ... 35
3.3.1 Sistem Perangkat Lunak secara Umum ... 36
3.3.2 Membaca Masukan dari Push Button ... 38
3.3.3 Konversi Karakter ke Tampilan LED ... 38
3.3.4 Interupsi Eksternal ... 39
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 40
4.1 Implementasi ... 40
4.2 Pengujian... 41
4.2.1 Pengujian Catudaya Sistem ... 41
4.2.2 Pengujian Konsumsi Arus ... 42
4.2.3 Pengujian Sistem Minimum ... 43
4.2.4 Pengujian Sensor Optik ... 45
4.2.5 Pengujian Penampilan Karakter ... 46
4.2.6 Pengujian Sistem secara Keseluruhan ... 47
4.2.7 Pengujian Pengaruh Perubahan Tegangan Penggerak Motor terhadap Tampilan Karakter ... 48
5.1 Kesimpulan ... 50
5.2 Saran ... 50
DAFTAR PUSTAKA ... 52
LAMPIRAN A ... 53
vii
DAFTAR GAMBAR
Gambar 2.1 Diagram Blok Mikrokontroler AVR ATMega8... 9
Gambar 2.2 Konfigurasi Pena ATMega8...10
Gambar 2.3 Arsitektur Mikrokontroler ATMega8………. 12
Gambar 2.4 Peta Memori Program ATMega8………... 13
Gambar 2.5 Peta Memori data ATMega8……….. 14
Gambar 2.6 Susunan Pena RTC DS1307………... 16
Gambar 2.7 Simbol LED Inframerah………. 17
Gambar 2.8 Simbol Dioda Foto……….. 18
Gambar 2.9 Motor D.C Sederhana………. 19
Gambar 3.1 Blok Diagram Keseluruhan Sistem………. 23
Gambar 3.2 Hubungan RTC DS 1307 dengan Mikrokontroler……….. 27
Gambar 3.3 Hubungan Push Button dan LED dengan Mikrokontroler………. 28
Gambar 3.4 Rangkaian Sensor Optik………. 29
Gambar 3.5 Rangkaian Regulator Tegangan LM 7805……….. 34
Gambar 3.6 Rangkaian Switching……… 35
Gambar 3.7 Diagram Alir dari Perangkat Lunak……… 37
Gambar 4.1 Hasil Pengujian Catudaya Sistem……… 42
Gambar 4.2 Hasil Pengujian Konsumsi Arus………..43
Gambar 4.3 Hasil Pengujian Sistem Minimum……….. 44
Gambar 4.4 Hasil Pengujian Sensor Optik………. 45
Gambar 4.6 Hasil Pengujian Sistem secara Keseluruhan………... 47
Gambar 4.7 Hasil Pengujian Pengaruh Perubahan Tegangan Penggerak Motor
ix
DAFTAR TABEL
ABSTRAK
Seiring perkembangan zaman, banyak cara untuk menampilkan waktu, tidak
terbatas hanya pada jam analog atau jam digital yang sering dijual di pasaran. Salah
satu contohnya adalah propeller clock, dimana prinsip dari jam ini adalah dengan
memutar sebaris LED yang dipasang berderet di atas sebuah papan PCB dengan
kecepatan tinggi sehingga menghasilkan suatu efek persistence of vision dimana mata
kita seolah-olah melihat gambaran dari suatu jam.
1 BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Berbagai jenis jam telah dijual di pasaran dengan berbagai bentuk, ukuran,
dan cara penampilannya, tetapi masih sangat jarang ditemui jam yang menampilkan
waktu dengan menerapkan prinsip persistence of vision dimana waktu ditampilkan
dengan memutar sebaris LED dengan kecepatan yang cukup tinggi sehingga mata
manusia tidak dapat mengikutinya dan seolah-olah melihat tampilan karakter yang
melayang di udara.
1.2 Rumusan Masalah
Dari latar belakang masalah diatas, timbul permasalahan bagaimana cara
untuk menerapkan prinsip tersebut ke dalam sistem sehingga sistem yang dirancang
dapat menampilkan waktu dengan baik. Oleh karena itu, dalam tugas akhir ini penulis
akan merancang suatu sistem yang menggunakan prinsip tersebut untuk menampilkan
waktu.
1.3 Tujuan Penulisan
Tugas akhir ini bertujuan untuk merancang suatu alat yang dapat
menampilkan waktu secara digital hanya dengan menggunakan sebaris LED yang
1.4 Batasan Masalah
Agar pembahasan dalam Tugas Akhir ini tidak terlalu luas dan menyimpang,
maka perlu diberikan batasan-batasan sebagai berikut :
1. Tidak membahas mengenai motor yang digunakan dan spesifikasinya.
2. Hanya menampilkan waktu secara digital.
3. Pengaturan waktu hanya dapat dilakukan ketika rangkaian dalam keadaan
diam.
4. Tidak membahas mengenai sensor optik secara mendalam.
5. Tundaan waktu yang digunakan didapat dengan metode trial and error.
6. Sistem yang dirancang tidak dimaksudkan untuk digunakan dalam waktu
yang lama.
1.5 Metodologi Penelitian
Adapun metodologi yang digunakan secara garis besar dapat dibagi menjadi
empat tahap, yaitu :
1. Pemilihan komponen, yaitu memilih jenis motor, mikrokontroler, dan
komponen-komponen elektronik lainnya yang sesuai dengan kebutuhan.
2. Perancangan perangkat keras, yaitu membangun rangkaian seefisien dan
seefektif mungkin dan menghasilkan rangkaian yang dapat bekerja sesuai
keinginan.
3. Perancangan perangkat lunak, yaitu penulisan kode program yang akan
ditanamkan ke dalam mikrokontroler sehingga rangkaian dapat bekerja sesuai
3
4. Pengujian dan perbaikan, yaitu menguji rangkaian yang telah dibuat dan
memperbaikinya jika terdapat kesalahan.
1.6 Sistematika Penulisan
Tugas akhir ini ditulis dengan sistematika penulisan sebagai berikut :
BAB I : PENDAHULUAN
Bab ini membahas secara umum tentang latar belakang penulisan,
rumusan masalah, tujuan penulisan, batasan masalah, metodologi
penulisan, dan sistematika penulisan dari tugas akhir.
BAB II : DASAR TEORI
Bab ini membahas secara umum tentang teori-teori dasar mengenai
persistence of vision, propeller clock, mikrokontroler, dan
komponen-komponen yang digunakan dalam rangkaian.
BAB III : PERANCANGAN SISTEM
Bab ini membahas tentang perancangan perangkat keras yaitu dengan
membuat rangkaian di atas papan PCB dan perancangan perangkat
lunak yaitu dengan membuat kode program dari sistem yang dirancang
dalam tugas akhir ini.
BAB IV : IMPLEMENTASI DAN PENGUJIAN
Bab ini membahas tentang implementasi dan pengujian dari sistem
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari hasil pengujian dan saran untuk
5 BAB II DASAR TEORI
2.1 Persistence of Vision
Persistence of Vision adalah kemampuan mata untuk tetap melihat gambaran
dari suatu objek untuk sepersekian detik setelah objek menghilang dari pandangan.
Gambaran dari suatu objek tetap tertinggal di retina meskipun kita telah selesai
melihatnya. Mata dan otak kita sebenarnya mempertahankan kesan visual untuk
sekitar 1/30 detik.
Prinsip dari persistence of vision digunakan dalam membuat gambar bergerak
dan animasi. Film dibuat dari sejumlah gambar terpisah, ditayangkan pada layar
dengan kecepatan 24 gambar per detik. Ketika kita menontoh sebuah film, setiap
gambar masih tertinggal di retina untuk waktu yang cukup lama sehingga bergabung
dengan gambar berikutnya, dan kita akan mendapatkan ilusi berupa gambar bergerak.
Jika kita mengasumsikan bahwa kecepatan penampilan minimum agar mata
kita dapat melihat efek persistence of vision adalah sebanyak 16 tampilan setiap detik,
maka jika prinsip tersebut diterapkan pada propeller clock, kecepatan minimum
motor yang digunakan agar dapat menghasilkan efek persistence of vision dimana
satu tampilan dihasilkan setiap satu putaran adalah sebesar 16 x 60 = 960 rpm.
2.2 Mikrokontroler
Mikrokontroler adalah suatu chip dengan kepadatan yang sangat tinggi,
satu keping, biasanya terdiri dari CPU (Central Proccesssing Unit), RAM (Random
Acess Memory), EEPROM/ EPROM/ PROM/ ROM, EEPROM/ EPROM/ PROM/
ROM, I/O, Timer dan lain sebagainya. Rata-rata mikrokontroler memiliki instruksi
manipulasi bit, akses ke I/O secara langsung dan mudah, dan proses interupsi yang
cepat dan efisien.
Mikrokontroler sekarang ini sudah banyak dapat kita temui dalam berbagai
peralatan elektronik, misalnya peralatan yang terdapat di rumah, seperti telepon
digital, microwave oven, televisi, dan masih banyak lagi. Mikrokontroler juga dapat
kita gunakan untuk berbagai aplikasi misalnya untuk pengendalian suatu alat, otomasi
dalam industri dan lain – lain. Keuntungan menggunakan mikrokontroler adalah
harganya murah, dapat diprogram berulang kali, dan dapat diprogram sesuai dengan
keinginan kita.
2.2.1 Mikrokontroler AVR ATMega8
Mikrokontroler AVR adalah mikrokontroler RISC 8 bit berdasarkan aristektur
Harvard, yang dibuat oleh Atmel pada tahun 1996. AVR memiliki keunggulan
dibandingkan dengan mikrokontroler lain, keunggulan AVR yaitu AVR memiliki
kecepatan eksekusi program yang lebih cepat, karena sebagian besar instruksi
dieksekusi dalam 1 siklus clock, lebih cepat dibandingkan MCS51 yang
membutuhkan 12 siklus clock untuk mengeksekusi 1 instruksi. Mikrokontroler
ATMega8 memiliki fitur yang cukup lengkap. Selain itu, mikrokontroler ATMega8
juga beredar di pasaran sehingga lebih mudah didapatkan.
7
1. Performa tinggi dengan konsumsi daya yang rendah.
2. Arsitektur RISC yang meliputi:
a. 130 kode instruksi yang hampir semuanya hanya membutuhkan
satu clock untuk dieksekusi.
b. 32 x 8 buah register kerja kegunaan umum
c. Pengoperasian full statik.
d. Kecepatan mengeksekusi sampai dengan 16 mega instruksi per
detik pada kecepatan clock 16 MHz.
e. Terdapat rangkaian pengali dua siklus di dalam chip.
3. Memori non-volatile dengan daya tahan yang tinggi.
a. Memori flash sebesar 8 Kbyte.
b. EEPROM 512 Byte.
c. SRAM internal 1 Kbyte.
d. Dapat dihapus-tulis sebanyak 10.000 kali untuk memori flash dan
100.000 kali untuk EEPROM.
e. Dapat menyimpan data selama 20 tahun pada suhu 85˚C atau 100
tahun pada suhu 25˚C.
f. Penguncian program untuk keamanan perangkat lunak.
4. Fitur-fitur periferal:
a. 2 buah timer/counter 8 bit.
b. 1 buah timer/counter 16 bit.
c. Real Time Counter dengan osilator tersendiri.
e. 6 buah kanal ADC dengan akurasi 10 bit.
f. TWI.
g. USART.
h. SPI.
i. Watchdog timer yang dapat diprogram.
j. Komparator analog.
5. Fitur-fitur khusus mikrokontroler:
a. Power-on reset dan brown-out detection.
b. Osilator RC internal yang terkalibrasi.
c. Sumber interupsi eksternal dan internal.
d. 5 buah modus sleep.
6. 23 jalur I/O yang dapat diprogram.
7. Tegangan pengoperasian yaitu antara 4,5 – 5,5 Volt.
8. Kecepatan antara 0 – 16 MHz.
Adapun diagram blok dari mikrokontroler ATMega8 dapat dilihat pada
9
2.2.2 Konfigurasi Pena ATMega8
Konfigurasi Pena ATMega8 untuk kemasan PDIP (Plastic Dual In-line
Package) 28 pena dapat dilihat pada Gambar 2.2.
Gambar 2.2 Konfigurasi Pena ATMega8
Adapun fungsi dari masing-masing pena ATMega8 adalah sebagai berikut:
1. VCC merupakan pena yang berfungsi sebagai masukan catu daya.
2. GND merupakan pena Ground
3. Port B (PB7..0) merupakan pena input/output dua arah dengan resistor pull-up
internal dan pena dengan fungsi khusus seperti
XTAL1/XTAL2/TOSC1/TOSC2.
4. Port C (PC6..0) merupakan pena input/output dua arah dengan resistor pull-up
internal.
5. Port D (PD7..0) merupakan pena input/output dua arah dengan resistor pull-up
11
6. RESET merupakan pena yang digunakan untuk me-reset mikrokontroler.
7. AVCC merupakan pena masukan tegangan untuk ADC.
8. AREF merupakan pena masukan tegangan referensi ADC.
2.2.3 Arsitektur Mikrokontroler ATMega8
ATMega8 menggunakan arsitektur Harvard dengan memisahkan antara
memori dan bus untuk program dan data untuk memaksimalkan kemampuan dan
kecepatan. Instruksi dalam memori program dieksekusi dengan pipelining single level
dimana ketika satu instruksi dieksekusi, instruksi berikutnya diambil dari memori
program. Konsep ini mengakibatkan instruksi dieksekusi setiap siklus clock. CPU
terdiri dari 32x8 bit general purpose register yang dapat diakses dengan cepat dalam
satu siklus clock, yang mengakibatkan operasi Arithmetic Logic Unit (ALU) dapat
dilakukan dalam satu siklus. Pada operasi ALU, dua operand berasal dari register,
kemudian operasi dieksekusi dan hasilnya disimpan kembali pada register dalam satu
siklus clock. Operasi aritmetik dan logika pada ALU akan mengubah bit-bit yang
terdapat pada Status Register (SREG). Arsitektur Mikrokontroler ATMega8 dapat
Gambar 2.3 Arsitektur Mikrokontroler ATMega8
2.2.4 Peta Memori ATMega8
ATMega8 memiliki dua memori utama, yaitu memori program dan memori
data. Memori program terletak pada In-System Reprogrammable Flash Program
Memory sedangkan memori data terbagi dua, yaitu memori data SRAM dan memori
13
2.2.4.1 Memori Program
ATMega8 memiliki 8Kbyte On-chip In-System Reprogrammable Flash
Memory untuk menyimpan program. Instruksi ATMega8 semuanya memiliki format
16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash dibagi
kedalam dua bagian, yaitu bagian program boot dan aplikasi seperti terlihat pada
Gambar 2.4. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai
yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.
Gambar 2.4 Peta Memori Program ATMega8
2.2.4.2 Memori Data (SRAM)
Memori data AVR ATMega8 terbagi menjadi 3 bagian, yaitu 32 register
menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O
menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan
register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur
mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan
sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk
SRAM internal. Peta dari memori data ATMega8 dapat dilihat pada Gambar 2.5.
Gambar 2.5 Peta Memori data ATMega8
2.2.4.3 Memori Data EEPROM
ATMega8 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat
15
pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain
memori EEPROM bersifat non-volatile. Alamat EEPROM mulai dari $000 sampai
$511
2.2.5 Serial Peripheral Interface (SPI)
SPI pada ATMega8 digunakan untuk komunikasi serial dua arah antara
pengirim dan penerima. Dalam SPI, pengirim dan penerima memiliki sumber
penabuh yang sama. Hal ini membutuhkan jalur penabuh tambahan antara pengirim
dan penerima tetapi memungkinkan tingkat transmisi data yang lebih tinggi. SPI
dapat dilihat sebagai sebuah register geser 16-bit sinkron dengan setengah 8-bit
berada di bagian pengirim dan setengah 8-bit lainnya berada di bagian penerima.
Pengirim dianggap sebagai master karena memberikan sumber penabuh sinkronisasi
antara pengirim dengan penerima sementara penerima ditunjuk sebagai slave.
2.2.6 Interupsi
Eksekusi program yang normal adalah mengikuti urutan instruksi dari
program. Namun ada kalanya eksekusi tersebut terputus untuk menanggapi interupsi
yang memiliki prioritas lebih tinggi yang berasal dari dalam maupun dari luar
mikrokontroler. Ketika interupsi terjadi, mikrokontroler sementara harus
menghentikan operasi normal dan melakukan tindakan-tindakan khusus yang disebut
rutin layanan interupsi. Setelah interupsi selesai dilakukan maka mikrokontroler akan
kembali mengeksekusi program normal yang terputus. ATMega8 dilengkapi dengan
19 buah sumber interupsi dimana tiga diantaranya merupakan sumber interupsi
2.3 RTC (Real Time Clock) DS1307
RTC (Real Time Clock) DS1307 adalah IC yang dibuat oleh perusahaan
Dallas Semiconductor. DS1307 merupakan suatu IC yang dapat digunakan untuk
menyimpan informasi waktu yang meliputi detik, menit, jam, hari, tanggal, bulan,
dan tahun. Pengaksesan data dilakukan dengan sistem serial sehingga hanya
membutuhkan dua jalur untuk berkomunikasi yaitu jalur clock untuk membawa
informasi data penabuh dan jalur data yang membawa data. Susunan kaki-kaki dari
DS1307 dapat dilihat pada Gambar 2.6.
Gambar 2.6 Susunan Pena RTC DS1307
Fungsi dari masing-masing pena DS1307 adalah sebagai berikut:
1. X1 dan X2 adalah pena yang dihubungkan dengan Kristal 32,768 KHz.
2. VBAT adalah pena yang dihubungkan dengan tegangan baterai +3V.
3. GND adalah pena yang dihubungkan dengan ground.
4. SDA adalah pena yang difungsikan sebagai jalur data.
5. SCL adalah pena yang difungsikan sebagai jalur clock.
6. SQW/OUT adalah pena yang digunakan sebagai keluaran sinyal kotak.
17
Untuk berkomunikasi dengan mikrokontroler ATMega8, RTC DS1307
menggunakan jenis komunikasi I2C.
2.4 LED Infrared
LED Infrared (LED inframerah) adalah suatu jenis dioda yang terbuat dari
bahan Gallium (Ga), Arsen (As), dan fosfor (P) yang apabila diberi tegangan maju
maka arus majunya akan membangkitkan cahaya pada pertemuan PN-nya. Tegangan
maju antara anoda-katoda berkisar antara 1,5 V – 2 V, sedangkan arus majunya
berkisar antara 5 mA – 20 mA. Cahaya yang dibangkitkan oleh LED Inframerah
adalah infra merah yang tidak dapat dilihat oleh mata. Led inframerah memancarkan
cahaya pada spektrum inframerah dengan panjang gelombang λ=940 nm. Spektrum
cahaya inframerah ini mempunyai level panas yang paling tinggi diantara sinar-sinar
yang lain walaupun tidak tampak oleh mata dan mempunyai efek fotolistrik yang
terkuat . Energi yang dihasilkan oleh LED inframerah tidak seluruhnya diubah
menjadi bentuk energi cahaya atau foton melainkan dalam bentuk panas sebagian.
Simbol dari LED inframerah dapat dilihat pada Gambar 2.7.
2.5 Dioda Foto
Dioda foto adalah jenis
dengan diode biasa, kompone
listrik. Cahaya yang dapat dideteksi oleh diode foto ini mulai dari cahaya
serta beberapa peralatan di bidang medis. Simbol dari dioda foto dapat dilihat pada
Gambar 2.8.
Gambar 2.8 Simbol Dioda Foto
2.6 Motor DC
Motor listrik merupakan perangkat elektromagnetis yang mengubah energi
listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk, misalnya
memutar impeller pompa, fan atau blower, menggerakan kompresor, mengangkat
bahan,dll. Motor listrik digunakan juga di rumah (mixer, bor listrik, fan angin) dan di
industri. Motor listrik kadangkala disebut “kuda kerja” nya industri sebab
diperkirakan bahwa motor-motor menggunakan sekitar 70% beban listrik total di
industri.
Motor DC memerlukan suplai tegangan yang searah pada kumparan medan
19
(bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang
berputar). Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet,
maka akan timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah
putaran, sehingga merupakan tegangan bolak-balik. Prinsip kerja dari arus searah
adalah membalik phasa tegangan dari gelombang yang mempunyai nilai positif
dengan menggunakan komutator, dengan demikian arus yang berbalik arah dengan
kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling
sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara
kutub-kutub magnet permanen.
Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh
komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu
lilitan pada gambar di atas disebut angker dinamo. Angker dinamo adalah sebutan
untuk komponen yang berputar di antara medan magnet. Secara sederhana, motor DC
dapat digambarkan seperti pada Gambar 2.9.
2.7 CodeVision AVR
CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman
mikrokontroler keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang
telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan program
generator.
Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya,
Compiler C yang digunakan hampir mengimplementasikan semua komponen standar
yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis
operator, dan library fungsi standar berikut penamaannya). Tetapi walaupun
demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk
mikrokontroler ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur
AVR tempat program C tersebut ditanamkan (embedded).
Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi
matematik, manipulasi string, pengaksesan memori dan sebagainya),
CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat
dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan
dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah
fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock),
sensor suhu, SPI (Serial Peripheral Interface) dan lain sebagainya.
Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga
21
dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah
mengintegrasikan perangkat lunak downloader yang bersifat In System Programmer
yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi ke dalam
sistem memori mikrokontroler AVR yang sedang diprogram.
Selain itu, CodeVisionAVR juga menyediakan sebuah fitur yang dinamakan
dengan Code Generator atau CodeWizardAVR. Secara praktis, fitur ini sangat
bermanfaat membentuk sebuah kerangka program (template), dan juga memberi
kemudahan bagi programmer dalam peng-inisialisasian register-register yang
terdapat pada mikrokontroler AVR yang sedang diprogram. Dinamakan Code
Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode
program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR
selesai dilakukan. Secara teknis, penggunaan fitur ini pada dasarnya hampir sama
dengan application wizard pada bahasa-bahasa pemrograman visual untuk komputer
22 BAB III
PERANCANGAN SISTEM
3.1 Spesifikasi Sistem
Sistem ini dirancang dengan menggunakan sebuah mikrokontroler untuk
mengendalikan sistem. Sistem yang dirancang menggunakan LED yang disusun
secara berurutan dan diputar dengan menggunakan sebuah motor DC untuk
menampilkan tampilan waktu dengan menerapkan prinsip persistence of vision.
Sistem ini memiliki sebuah switch yang digunakan untuk menyalakan sistem, 3 buah
push button yang digunakan untuk mengatur waktu, sebuah RTC (Real Time Clock)
untuk menyediakan informasi waktu, sebuah regulator tegangan, sebuah sensor optik
dengan menggunakan LED dan dioda foto untuk sinkronisasi, sebuah konektor untuk
pemrograman secara ISP (In system Programming), dan LED untuk menampilkan
waktu secara digital.
LED yang digunakan sebanyak 10 buah LED yang terdiri dari 2 buah LED
pada kedua bagian tepi yang selalu selalu berada dalam keadaan menyala sebagai
bingkai dan 8 buah LED yang penyalaannya diatur oleh mikrokontroler. Waktu
ditampilkan dalam format 6 digit yang terdiri 2 digit jam, 2 digit menit dan 2 digit
detik dengan menggunakan tanda titik dua sebagai pemisah. Format waktu yang
digunakan adalah 24 jam.
Tiga buah push button digunakan untuk mengendalikan waktu. Satu buah
23
setiap penekanan, satu buah push button yang digunakan untuk menambah cacah
digit menit sebanyak satu untuk setiap penekanan, dan satu buah push button yang
digunakan untuk membuat nol digit detik ketika ditekan. Secara umum, diagram blok
dari keseluruhan sistem dapat dilihat pada Gambar 3.1.
Gambar 3.1 Blok Diagram Keseluruhan Sistem
3.2 Perancangan Perangkat Keras
Perancangan perangkat keras meliputi pemilihan komponen yang digunakan
sesuai dengan yang dibutuhkan, perakitan sistem, dan peletakan komponen agar
sistem dapat berada dalam keadaan yang seimbang dan dapat berputar dengan baik.
Dalam perancangan perangkat keras ada beberapa hal yang harus diperhatikan
antara lain:
1. Keseimbangan sistem dimana sistem yang dirancang harus dibuat seseimbang
mungkin untuk mengurangi getaran yang timbul ketika sistem berputar. Agar
Mikrokontroler
ATMega8 RTC
DS1307
3 buah
push button
Sensor optik
sistem dapat seimbang, peletakan komponen-komponen yang digunakan harus
diatur agar kedua sisi memiliki berat yang sama.
2. Kecepatan putaran motor dimana sudut yang ditempuh oleh LED ketika
menyala dipengaruhi oleh kecepatan putaran motor. Semakin cepat putaran
motor maka besar sudut yang dilalui oleh LED juga akan semakin besar
sehingga tampilan yang dihasilkan akan semakin melebar. Kecepatan putaran
motor dipengaruhi oleh beberapa faktor antara lain jenis dari motor itu sendiri
dan juga tegangan yang diberikan. Pada sistem ini, kecepatan putaran dari
motor yang digunakan harus lebih besar dari 960 rpm agar dapat memberikan
efek persistence of vision.
3. Jarak antara sensor optik dengan permukaan pantulan dimana semakin jauh
jarak antara LED inframerah dengan permukaan pantulan maka cahaya yang
dihasilkan oleh LED inframerah menjadi lebih menyebar dan perbedaan
intensitas cahaya yang dipantulkan oleh permukaan pantulan dan diterima
oleh dioda foto menjadi kecil. Oleh karena itu jarak antara sensor optik
dengan permukaan pantulan diusahakan sekecil mungkin sehingga terdapat
perbedaan yang jelas antara intensitas cahaya yang diterima oleh dioda foto
ketika sensor optik melewati permukaan putih dengan intensitas cahaya yang
diterima oleh dioda foto ketika sensor optik melewati permukaan hitam.
3.2.1 Mikrokontroler ATMega8
Sistem yang dirancang menggunakan mikrokontroler jenis ATMega8.
25
disediakan, kapasitas memori, dan ukuran kemasan. Adapun jumlah saluran I/O yang
digunakan dalam sistem ini adalah sebanyak 11 buah ( 3 buah masukan dari push
button dan 8 buah keluaran ke LED ). Mikrokontroler ATMega8 juga telah memiliki
osilator internal dan unit interupsi eksternal sehingga fasilitas yang disediakan telah
cukup untuk sistem yang akan dibuat. Sementara dari segi ukuran, mikrokontroler
ATMega 8 memiliki ukuran yang cukup kecil dimana pada sistem yang akan
dirancang diharapkan dapat dibuat seringan mungkin sehingga memperkecil beban
pada motor DC. Selain itu, mikrokontroler ATMega8 juga mudah diperoleh dan
cukup murah. Atas pertimbangan diatas maka diputuskan menggunakan
mikrokontroler jenis ATMega8.
Sistem yang dirancang menggunakan osilator internal. Karena sistem yang
dirancang ditujukan untuk bekerja dari sejak sistem dinyalakan hingga sistem
dimatikan maka tidak diperlukan fungsi reset sehingga pena reset disambungkan
langsung dengan Vcc.
Adapun bandar-bandar I/O yang digunakan dalam sistem dapat dilihat pada
Tabel 3.1 Daftar PORT/Bandar yang Digunakan
Port/Bandar Bit Fungsi
B 3-5
MOSI, MISO, dan SCK pada ISP (In System
Programming)
B 0-7 Keluaran ke 8 buah LED
C 4 Pena SDA dari RTC DS1307
C 5 Pena SCL dari RTC DS1307
D 2 Masukan untuk interupsi dari sensor optik
D 5-7 Masukan dari push button
3.2.2 RTC (Real Time Clock) DS 1307
Untuk menyediakan dan menyimpan informasi waktu dari sistem yang
dirancang maka diperlukan sebuah RTC (Real Time Clock). Pada tugas akhir ini
dipilih RTC jenis DS 1307 karena cukup mudah diperoleh dan dirasa paling cocok
untuk digunakan dalam sistem yang dirancang.
Hubungan RTC DS 1307 dengan mikrokontroler ATMega8 menggunakan
27
Gambar 3.2 Hubungan RTC DS 1307 dengan Mikrokontroler
Komunikasi I2C antar device menggunakan resistor pull-up yaitu R1 dan R2
pada pena SDA dan SCL dengan nilai resistansi 10K yang mengacu pada datasheet.
Pena SDA pada RTC dihubungkan ke PORTC.4 pada mikrokontroler dan pena SCL
dihubungkan ke PORTC.5. Pena X1 dan X2 dihubungkan dengan kristal quartz
32,768 KHz. VBAT dihubungkan dengan sumber tegangan baterai 3 V.
3.2.3 Push Button dan LED
Sistem yang dirancang menggunakan 3 buah push button dan 10 buah LED
dimana 2 buah LED dihubungkan langsung dengan Vcc dengan menggunakan
resistor 220 Ω dan 8 buah LED yang terhubung langsung dengan mikrokontroler
dengan menggunakan metode katoda bersama seperti yang ditunjukkan pada Gambar
Gambar 3.3 Hubungan Push Button dan LED dengan Mikrokontroler
Seperti yang terlihat pada Gambar 3.3, ketiga push button dihubungkan
dengan PORTD.5-7 dan ground dengan alasan agar ketika push button ditekan maka
tegangan di pena dapat dipastikan berada pada 0 V. Push button tidak dihubungkan
dengan resistor karena mikrokontroler telah memiliki resistor pull-up internal
sehingga dapat menghemat komponen dan rangkaian yang dirancang lebih ringan,
sementara untuk debouncing dapat dilakukan pada program.
LED 1 dan LED 10 dihubungkan dengan resistor 220 Ω untuk membatasi arus
yang melalui kedua LED tersebut. Sementara LED 2 sampai dengan LED 9
dihubungkan langsung dengan PORTB.0-7 pada mikrokontroler karena arus
maksimum yang dapat disediakan oleh mikrokontroler yaitu sebesar 40 mA yang
29
masih berada dalam batas kerja LED sedangkan pemilihan metode katoda bersama
adalah agar LED dapat dihubungkan tanpa menggunakan resistor dimana jika
menggunakan metode anoda bersama maka diperlukan resistor yang terhubung
dengan setiap LED sehingga rangkaian akan menjadi lebih berat dan boros komponen.
3.2.4 Sensor Optik
Untuk sinkronisasi sistem, maka diperlukan suatu rangkaian sensor optik yang
akan membangkitkan sinyal interupsi setiap kali rangkaian melewati suatu posisi
tertentu. Dalam tugas akhir ini, digunakan LED Inframerah dan dioda foto sebagai
sensor optik. LED inframerah dan dioda foto dipasang berdampingan dimana dioda
foto membaca cahaya pantulan dari LED inframerah. Pada permukaan pantulan akan
dibuat sebuah garis hitam sehingga pada saat rangkaian melewati posisi tersebut
intensitas cahaya yang diterima oleh dioda foto akan berubah dan menghasilkan
sinyal interupsi pada mikrokontroler. Adapun rangkaian sensor optik yang digunakan
dapat dilihat seperti pada Gambar 3.4.
Seperti terlihat pada gambar, LED inframerah IR LED 1 dan dioda foto
PHOTODIODE 1 akan menghasilkan tegangan pada katoda dari dioda foto yang
nilainya berubah-ubah sesuai dengan warna dari permukaan pantulan. Sebuah trimpot
RV1 digunakan untuk mengatur kepekaan transistor terhadap perubahan warna
sehingga sistem dapat bekerja baik dalam kondisi terang maupun kondisi gelap.
Sebuah transistor NPN Q1 dengan jenis BC 547 digunakan untuk menguatkan arus
yang akan menjadi masukan dari interupsi menuju pena INT0 pada mikrokontroler.
3.2.5 Rangkaian Regulator Tegangan
Sistem dirancang dengan menggunakan catu daya dari baterai dengan
tegangan 9V sementara komponen-komponen yang digunakan bekerja dengan catu
daya 5V. Oleh karena itu dibutuhkan suatu regulator tegangan yang dapat
menghasilkan tegangan keluaran yang stabil sebesar 5V. Untuk menentukan jenis
regulator tegangan yang akan dipilih maka terlebih dahulu kita menghitung jumlah
arus yang harus dapat disuplai oleh regulator tegangan dengan mengasumsikan
kondisi dimana setiap komponen mengkonsumsi arus sampai pada batas maksimum
yang memungkinkan.
Dari datasheet mikrokontroler ATMega 8, diketahui bahwa kebutuhan arus
untuk mikrokontroler adalah maksimum sebesar 300 mA, sementara arus maksimum
yang dapat disediakan untuk keluaran setiap pena yaitu sebesar 40 mA. Pada kondisi
dimana semua LED yang terhubung dengan mikrokontroler yaitu LED 2 sampai LED
31
sebesar 8 x 40 mA = 320 mA. Sementara RTC DS1307 telah memiliki catudaya
tersendiri sehingga tidak mengkonsumsi arus.
Untuk kebutuhan arus dari kedua buah LED yang terhubung dengan Vcc yaitu
LED 1 dan LED 10 dengan tegangan jatuh pada LED sebesar 2 V berdasarkan
pengukuran dengan voltmeter maka arus yang mengalir pada LED 1 adalah:
ILED 1 =
Vcc−VLED 1
R7
ILED 1 = 5−2 220
ILED 1 = 3 220
ILED 1≈ 0,0136 A ≈ 14 mA
Karena R7 = R8 maka:
ILED 10 = ILED 1
ILED 10 = 14 mA
Maka arus yang mengalir pada kedua buah LED tersebut adalah sebesar 2 x
14 mA = 28 mA.
Arus maksimum yang mengalir melalui R1 dan R2 yaitu pada saat pena SDA
dan pena SCL berada pada logika rendah yaitu:
IR1 = IR2 = Vcc
= 5
10K
= 0,5 mA
Sehingga jumlah arus maksimum yang melalui R1 dan R2 yaitu 0,5mA +
0,5mA = 1mA.
Untuk rangkaian sensor optik, arus yang mengalir pada LED inframerah IR
LED 1 adalah sebesar:
IIR LED 1 =
Sementara arus maksimum yang mengalir melalui R5 pada saat transistor Q1
saturasi dengan tegangan jatuh pada dioda foto PHOTODIODE 1 sebesar 1,6 V yang
didapat melalui pengukuran adalah:
33
IR5= 0,34 mA
Sedangkan arus maksimum yang mengalir pada kolektor transistor Q1 yaitu
ketika transistor berada dalam keadaan saturasi adalah:
IC = Vcc−0
R6
IC = 5−0
1K
IC = 5mA
Maka arus maksimal yang dibutuhkan oleh rangkaian sensor optik adalah
sebesar 14 mA + 0,34 mA + 5 mA = 19,34 mA. Dengan demikian total arus
maksimum yang harus dapat disediakan oleh regulator tegangan adalah:
Kebutuhan untuk mikrokontroler : 300 mA
Kebutuhan untuk output 8 buah LED : 320 mA
Kebutuhan untuk 2 buah LED : 28 mA
Kebutuhan untuk pena SDA dan SCL : 1 mA
Kebutuhan untuk sensor optik : 19,34 mA
Total : 668,34 mA
Berdasarkan perhitungan diatas, maka diperoleh kesimpulan bahwa rangkaian
regulator tegangan harus dapat menyediakan arus minimal 668,34 mA. Oleh karena
itu dipilih regulator tegangan LM 7805 yang dapat meregulasi tegangan menjadi 5 V
dengan tegangan masukan antara 7 V sampai dengan 25 V serta menyediakan arus
Gambar 3.5 Rangkaian Regulator Tegangan LM 7805
Nilai dari C1 adalah 0,33 uF sedangkan C2 adalah sebesar 0,1 uF yang
mengacu pada datasheet dari LM 7805.
3.2.6 Rangkaian Switching untuk ISP ( In System Programming)
Pada sistem ini, PORTB.3-5 digunakan untuk 2 fungsi yaitu untuk
menyalakan LED 5-7 dan keperluan ISP (In System Programming). Pada saat
pemrograman, hubungan antara mikrokontroler dengan LED harus terputus karena
jika pemrograman dilakukan dengan keadaan LED masih terhubung maka arus yang
mengalir melalui programmer akan terbagi menjadi dua yaitu menuju mikrokontroler
dan menuju LED sehingga dapat menimbulkan masalah. Untuk menghindari masalah
tersebut maka diperlukan sebuah rangkaian switching yang dapat memutuskan
hubungan dengan LED pada saat dilakukan pemrograman. Pada sistem ini digunakan
suatu komponen yang terdiri dari 4 buah switch dimana 3 buah diantaranya
dihubungkan antara PORTB.3-5 dengan LED 5-7 untuk keperluan tersebut sementara
35
1 buah yang dihubungkan antara PORTB.2 dengan LED 4 tidak digunakan. Adapun
rangkaian switching yang digunakan dapat dilihat pada Gambar 3.6.
Gambar 3.6 Rangkaian Switching
3.3 Perancangan Perangkat Lunak
Pada dasarnya, setiap mikrokontroler memiliki set instruksi. Kumpulan dari
set instruksi ini dapat dirancang untuk melakukan tugas tertentu yang disebut
perangkat lunak / program dari sistem. Tanpa perangkat lunak, sistem yang dirancang
tidak akan dapat bekerja.
Dalam tugas akhir ini, program ditulis dengan menggunakan bahasa
pemrograman C dengan menggunakan CodeVision AVR.
3.3.1 Sistem Perangkat Lunak secara Umum
Secara sederhana, sistem ini berfungsi untuk menampilkan waktu secara
digital berdasarkan informasi yang diambil dari RTC. Tiga buah push button
digunakan untuk mengatur waktu sementara sensor optik digunakan untuk
membangkitkan sinyal interupsi setiap kali rangkaian melewati posisi yang telah
ditentukan. Sinyal interupsi inilah yang digunakan sebagai acuan untuk menentukan
kapan LED harus dinyalakan. Flowchart dari program yang akan dibuat dapat dilihat
37
Interupsi dari sensor optik
Tentukan nilai setiap digit
i=0 Ambil data dari
RTC
i<8 ?
Tampilkan data kolom berikutnya
Tunda 250 µs
Apakah masih ada kolom berikutnya ?
RET
Ya
Tidak
Ya
Tidak
Increment i
3.3.2 Membaca Masukan dari Push Button
Pembacaan masukan dari push button dilakukan dengan metode polling
dimana mikrokontroler akan terus-menerus bertanya apakah ada tombol yang ditekan.
Jika tombol pertama PB1 ditekan maka mikrokontroler akan mengambil data waktu
dari RTC dan kemudian menaikkan cacah pada jam sebanyak satu dan mengirimkan
data yang telah diperbaharui kembali ke RTC. Jika tombol kedua PB2 ditekan maka
mikrokontroler akan mengambil data waktu dari RTC dan kemudian menaikkan
cacah pada menit sebanyak satu dan mengirimkan data yang telah diperbaharui
kembali ke RTC. Jika tombol ketiga PB3 ditekan maka mikrokontroler akan
mengambil data waktu dari RTC dan mengirimkan kembali data dengan membuat
bagian detik menjadi nol.
3.3.3 Konversi Karakter ke Tampilan LED
Untuk menampilkan tampilan waktu dengan menggunakan LED maka
diperlukan program untuk menentukan kapan masing-masing LED harus menyala
agar dapat menampilkan karakter yang diinginkan. Karakter yang akan ditampilkan
berjumlah 11 buah yaitu dari angka 0 sampai dengan 9 dan lambang titik dua Proses
konversi dilakukan dengan membuat suatu tipe data array yang berisi kumpulan nilai
heksadesimal dari setiap karakter yang akan dikirimkan ke PORT B untuk
39
3.3.4 Interupsi Eksternal
Interupsi eksternal digunakan untuk menentukan kapan LED mulai
dinyalakan. Ketika rangkaian sensor optik melalui posisi yang telah ditentukan, sinyal
interupsi akan memulai proses interupsi menuju ke pena INT 0 pada mikrokontroler.
Setelah mikrokontroler mendapatkan sinyal interupsi, maka mikrokontroler akan
mengambil data waktu dari RTC. Informasi waktu dari RTC akan dipisah menjadi 6
40 BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Perancangan sistem diimplementasikan pada perangkat keras dan perangkat
lunak. Perangkat keras diimplementasikan pada papan PCB yang terdiri dari beberapa
bagian, yaitu regulator tegangan, mikrokontroler, RTC, sensor optik, push button, dan
LED. Perangkat lunak diimplementasikan dengan menggunakan bahasa C dengan
menggunakan CodeVision AVR sebagai compiler dan programmer ISP untuk
menanamkan program ke dalam mikrokontroler. Hasil integrasi dari perangkat keras
dan perangkat lunak kemudian dilakukan pengujian.
Adapun tahapan-tahapan dalam implementasi adalah sebagai berikut:
1. Membuat rangkaian pada papan PCB.
2. Meng-install aplikasi-aplikasi yang dibutuhkan seperti CodeVision AVR dan
PROGISP. Sistem operasi yang digunakan adalah Windows 7 Ultimate
3. Menulis program dalam bahasa C dengan CodeVision AVR.
4. Meng-compile program yang dibuat sehingga menghasilkan file HEX.
5. Menanam file HEX ke dalam mikrokontroler ATMega 8 dengan
menggunakan programmer dengan aplikasi PROGISP.
41
4.2 Pengujian
Pengujian dilakukan untuk mengetahui apakah sistem telah bekerja sesuai
dengan yang diharapkan atau tidak. Pengujian dilakukan terdiri dari beberapa tahapan
yaitu pengujian pada setiap bagian untuk mengetahui apakah setiap bagian telah
berfungsi dengan baik dan pengujian sistem secara keseluruhan.
4.2.1 Pengujian Catudaya Sistem
Pengujian catudaya rangkaian bertujuan untuk mengetahui apakah tegangan
yang dihasilkan oleh regulator tegangan LM 7805 telah sesuai dengan tegangan kerja
sistem yaitu 5 V. Pengujian ini cukup penting karena jika tegangan yang dihasilkan
oleh regulator tegangan lebih besar daripada tegangan kerja sistem maka dapat
mengakibatkan kerusakan pada sistem.
Pengujian dilakukan dengan menggunakan multimeter digital. Probe positif
(merah) dari multimeter dihubungkan dengan pena 3 dari regulator 7805 sedangkan
probe negative (hitam) dihubungkan dengan pena 2 dari regulator 7805. Hasil
pengujian ditunjukkan pada Gambar 4.1.
Dari hasil pengujian tersebut tampak bahwa tegangan keluaran yang
dihasilkan oleh regulator tegangan adalah 4,94 V dimana nilai tegangan ini telah
Gambar 4.1 Hasil Pengujian Catudaya Sistem
4.2.2 Pengujian Konsumsi Arus
Pengujian konsumsi arus bertujuan untuk mengetahui berapa besar arus yang
dikonsumsi oleh sistem dan melihat apakah arus yang dikonsumsi oleh sistem lebih
kecil dari batas maksimum arus yang dapat disuplai oleh regulator tegangan LM7805
yaitu sebesar 1A karena jika arus yang dikonsumsi oleh sistem melebihi 1A maka
regulator tegangan LM7805 dapat menjadi rusak.
Pengujian ini dilakukan dengan menuliskan program untuk menyalakan
ketujuh buah LED yaitu LED 3 sampai dengan LED 9 dan mengukur besarnya
konsumsi arus pada baterai BAT 2. Hasil dari pengujian ini ditunjukkan pada Gambar
43
Gambar 4.2 Hasil Pengujian Konsumsi Arus
Dari hasil pengujian tersebut dapat dilihat bahwa arus yang dikonsumsi oleh
sistem yaitu sebesar 0,05 A = 50 mA. Nilai ini jauh dibawah batas arus yang dapat
disediakan oleh regulator tegangan LM7805 sehingga tidak ada masalah.
4.2.3 Pengujian Sistem Minimum
Sistem minimum merupakan rangkaian paling sederhana dari sistem
mikrokontroler dengan tujuan agar pemrograman mikrokontroler dapat dilakukan
secara ISP (In System Programming). Pengujian ini bertujuan untuk melihat apakah
mikrokontroler pada sistem yang dirancang dapat diprogram secara ISP atau tidak
mikrokontroler harus dilakukan dengan melepaskan IC mikrokontroler dari sistem
untuk diprogram dengan programmer khusus. Hal ini dapat mengakibatkan patahnya
pena mikrokontroler yang diakibatkan proses pencabutan dan pemasangan kembali
IC mikrokontroler setiap kali kita ingin memrogram ulang.
Pengujian ini dilakukan dengan menghubungkan programmer ISP dengan
sistem. Perangkat lunak yang digunakan adalah PROGISP. Hasil dari pengujian dapat
dilihat pada Gambar 4.3.
45
Dari hasil pengujian, didapatkan bahwa programmer dapat menghapus dan
menulis kembali program pada mikrokontroler yang artinya mikrokontroler telah
dapat diprogram secara ISP.
4.2.4 Pengujian Sensor Optik
Pengujian ini bertujuan untuk mengetahui apakah sensor optik dapat bekerja
dengan baik dan menghasilkan interupsi setiap kali sistem melewati posisi tertentu.
Pengujian ini dilakukan dengan membuat program untuk menyalakan semua LED
selama 200 mikrodetik dan mematikannya kembali setiap kali terjadi interupsi. Hasil
dari pengujian ini dapat dilihat pada Gambar 4.4.
Gambar 4.4 Hasil Pengujian Sensor Optik
Dari hasil pengujian tersebut terlihat bahwa sensor optik telah bekerja dengan
4.2.5 Pengujian Penampilan Karakter
Pengujian ini bertujuan untuk melihat apakah sistem dapat menampilkan
karakter dengan baik atau tidak. Pengujian dilakukan dengan menulis program untuk
menampilkan karakter 12:34:56 secara berurutan kemudian mencari tahu tundaan
waktu antara penyalaan LED sehingga karakter yang dihasilkan dapat dilihat dan
dibaca dengan baik. Hasil pengujian ini dapat dilihat pada Gambar 4.5.
Gambar 4.5 Hasil Pengujian Penampilan Karakter
Dari pengujian yang dilakukan didapat bahwa hasil terbaik yaitu dengan
menggunakan resolusi 7x7 yaitu dengan menggunakan 7 kolom dimana 5 kolom
digunakan untuk menampilkan karakter dan 1 kolom di bagian kiri dan kanan yang
berfungsi untuk mematikan LED dan memberi jarak antara karakter dan
47
LED 2 tidak digunakan dikarenakan bagian bawah dari karakter yang ditampilkan
menjadi terlalu sempit sehingga karakter menjadi lebih susah dibaca.
4.2.6 Pengujian Sistem secara Keseluruhan
Pengujian sistem secara keseluruhan dilakukan dengan menanamkan program
pada sistem dan melihat apakah seluruh sistem dapat bekerja sesuai dengan yang
diharapkan. Hasil dari pengujian ini dapat dilihat pada Gambar 4.6.
Gambar 4.6 Hasil Pengujian Sistem secara Keseluruhan
Dari hasil pengujian secara keseluruhan, didapat bahwa sistem telah bekerja
sesuai dengan yang diharapkan dan dapat menampilkan waktu dengan baik. Kita juga
dapat menghitung kecepatan motor pada saat pengujian dilakukan dimana dari hasil
pengujian terlihat bahwa 8 buah karakter dapat ditampilkan dalam setengah putaran.
Setiap karakter terdiri dari 7 buah kolom dan setiap kolom ditampilkan dalam waktu
250µs sehingga waktu yang dibutuhkan untuk satu putaran adalah 2 x 8 x 7 x 250µs =
4.2.7 Pengujian Pengaruh Perubahan Tegangan Penggerak Motor terhadap Tampilan Karakter
Pengujian ini dilakukan dengan mengukur tegangan yang diberikan kepada
motor ketika motor dalam keadaan berputar. Tegangan akan diturunkan secara
bertahap dan melihat perubahan yang terjadi terhadap karakter yang ditampilkan.
Gambar 4.7 (a) sampai dengan (d) memperlihatkan tampilan dari jam untuk tegangan
penggerak motor DC sesuai dengan yang diperlihatkan oleh multimeter digital.
49
(c) (d)
Gambar 4.7 Hasil Pengujian Pengaruh Perubahan Tegangan Penggerak Motor terhadap Tampilan Karakter
Dari hasil pengujian diatas terlihat bahwa semakin kecil tegangan yang
50 BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan perancangan dan pengujian pada sistem, maka dapat
diambil kesimpulan sebagai berikut:
1. Sistem yang dibuat sudah berhasil untuk menampilkan waktu dengan baik.
2. Hasil terbaik dari penampilan karakter yaitu dengan hanya menggunakan 7
buah LED yaitu LED 3 sampai dengan LED 9.
3. Semakin kecil tegangan yang diberikan kepada motor maka karakter yang
ditampilkan akan semakin menyempit.
4. Sistem yang dibuat dapat menyimpan informasi waktu pada RTC sehingga
informasi waktu tetap dapat diperbaharui walaupun sistem tidak diberi
catudaya.
5. Sistem membutuhkan penahan agar putaran menjadi lebih stabil.
6. Sistem tidak dapat digunakan untuk waktu yang lama dikarenakan motor
menjadi terlalu panas dan dikhawatirkan dapat menjadi rusak.
5.2 Saran
Agar sistem dapat dikembangkan menjadi lebih baik, maka terdapat beberapa
51
1. Tampilan yang dihasilkan dapat berupa jam analog atau dapat dipilih antara
tampilan analog dengan tampilan digital.
2. Sistem yang dibuat diharapkan menggunakan satu buah sumber catudaya baik
untuk motor dan rangkaian sehingga tidak memerlukan baterai.
3. Sistem yang dibuat sebaiknya dapat diatur tanpa menghentikan putaran
terlebih dahulu, misalnya dengan menggunakan remote control.
4. Sistem yang dibuat diharapkan memiliki fungsi-fungsi tambahan lainnya
misalnya alarm.
5. Sistem yang dibuat sebaiknya dapat digunakan untuk waktu yang lama yaitu
DAFTAR PUSTAKA
1. Andrianto, Heri. 2008. Pemrograman Mikrokontroler AVR ATmega16
Menggunakan Bahasa C (CodeVisionAVR). Bandung: Informatika.
2. Bejo, Agus. 2008. C & AVR, Rahasia Kemudahan Bahasa C dalam
Mikrokontroler ATMega8535. Yogyakarta: Graha Ilmu.
3. Budiharto, Widodo. 2005. Perancangan Sistem dan Aplikasi Mikrokontroler.
Edisi Pertama. Jakarta: Erlangga.
4. Tarigan, Pernantin. 2011. Sistem Tertanam. Yogyakarta: Graha Ilmu.
5. Wardhana, Lingga. 2006. Belajar Sendiri Mikrokontroler AVR seri
ATMEGA8535. Yogyakarta: Andi.
6. Winoto, Ardi. 2010. Mikrokontroler AVR ATMega 8/32/16/8535 dan
Pemrogramannya dengan Bahasa C pada WinAVR. Bandung: Informatika
LAMPIRAN B
KODE PROGRAM SISTEM YANG DIRANCANG
/***************************************************** This program was produced by the
CodeWizardAVR V1.25.3 Standard Automatic Program Generator
Project : propeller clock Version :
#include <mega8.h> #include <delay.h>
// I2C Bus functions #asm
.equ __i2c_port=0x15 ;PORTC .equ __sda_bit=4
.equ __scl_bit=5 #endasm
#include <i2c.h>
// DS1307 Real Time Clock functions #include <ds1307.h>
55
};
57
} }
void main(void) {
// Declare your local variables here
// Input/Output Ports initialization // Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00;
DDRB=0xFF;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0xF0;
DDRD=0x00;
// External Interrupt(s) initialization // INT0: On
// INT0 Mode: Falling Edge // INT1: Off
GICR|=0x40; MCUCR=0x02; GIFR=0x40;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// I2C Bus initialization i2c_init();
// DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: Off // SQW/OUT pin state: 0
rtc_init(0,0,0);
// Global enable interrupts #asm("sei")