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
push button yang digunakan untuk menambah cacah digit jam sebanyak satu untuk
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 8 buah
LED
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. Pemilihan dilakukan dengan mempertimbangkan jumlah saluran IO, fitur-fitur yang
disediakan, kapasitas memori, dan ukuran kemasan. Adapun jumlah saluran IO 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 IO yang digunakan dalam sistem dapat dilihat pada
Tabel 3.1.
Tabel 3.1 Daftar PORTBandar yang Digunakan
PortBandar 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 komunikasi I
2
C Inter-Integrated Circuit seperti yang ditunjukkan pada Gambar 3.2.
Gambar 3.2 Hubungan RTC DS 1307 dengan Mikrokontroler
Komunikasi I
2
C 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 3.3.
VBAT 3
X1 1
X2 2
SCL 6
SDA 5
SOUT 7
U
DS1307
X1
CRYSTAL 32.768KHz
BAT1
3V SCL
SDA
R2
10K
R1
10K Vcc
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
PB0ICP1 14
PB1OC1A 15
PB2SSOC1B 16
PB3MOSIOC2 17
PB4MISO 18
PB5SCK 19
PB6TOSC1XTAL1 9
PB7TOSC2XTAL2 10
PC6RESET 1
PD0RXD 2
PD1TXD 3
PD2INT0 4
PD3INT1 5
PD4T0XCK 6
PD5T1 11
PD6AIN0 12
PD7AIN1 13
PC0ADC0 23
PC1ADC1 24
PC2ADC2 25
PC3ADC3 26
PC4ADC4SDA 27
PC5ADC5SCL 28
AREF 21
AVCC 20
U1
ATMEGA8 LED 4
LED 5 LED 6
LED 7 LED 8
LED 3 LED 2
LED 9
PB1 PB2
PB3
LED 1
LED 10
R7
220
R8
220
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.
Gambar 3.4
Rangkaian Sensor Optik
IR LED 1
R4
220
PHOTODIODE 1
R5
10K
RV1
1K
Q1
BC 547
R6
1K INT0
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
9 menyala maka konsumsi arus maksimum untuk kedelapan buah LED adalah
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:
I
LED 1
=
Vcc −V
LED 1
R7
I
LED 1
=
5 −2
220
I
LED 1
=
3 220
I
LED 1
≈ 0,0136 A ≈ 14 mA
Karena R7 = R8 maka: I
LED 10
= I
LED 1
I
LED 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:
I
R1
= I
R2
=
Vcc R1
=
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:
I
IR LED 1
=
Vcc −V
IR LED 1
R4
I
IR LED 1
=
5 −2
220
I
IR LED 1
=
3 220
I
IR LED 1
≈ 0.0136 A ≈ 14 mA 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:
I
R5
=
Vcc −V
PHOTODIODE 1
R5
I
R5
=
5 −1,6
10K
I
R5
=
3,4 10K
I
R5
= 0,34 mA Sedangkan arus maksimum yang mengalir pada kolektor transistor Q1 yaitu
ketika transistor berada dalam keadaan saturasi adalah:
I
C
=
Vcc −0
R6
I
C
=
5 −0
1K
I
C
= 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 sebesar 1 A. Rangkaian regulator tegangan LM 7805 dapat dilihat pada Gambar 3.5.
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
VI 1
VO 3
G N
D 2
U3
7805
BAT2
9V
C1
0.33uF
C2
0.1uF
SW1
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.
PB0ICP1 14
PB1OC1A 15
PB2SSOC1B 16
PB3MOSIOC2 17
PB4MISO 18
PB5SCK 19
PB6TOSC1XTAL1 9
PB7TOSC2XTAL2 10
PC6RESET 1
PD0RXD 2
PD1TXD 3
PD2INT0 4
PD3INT1 5
PD4T0XCK 6
PD5T1 11
PD6AIN0 12
PD7AIN1 13
PC0ADC0 23
PC1ADC1 24
PC2ADC2 25
PC3ADC3 26
PC4ADC4SDA 27
PC5ADC5SCL 28
AREF 21
AVCC 20
U1
ATMEGA8 LED 4
LED 5 LED 6
LED 7 1
2 3
4 8
7 6
5
SW2
SW -DIP4 MOSI
MISO SCK
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
pada Gambar 3.7.
Start
Inisialisasi data,
variabel, PORT
Apakah PB1 ditekan ?
Apakah PB2 ditekan ?
Apakah PB3 ditekan ?
Ambil data dari
RTC
Ambil data dari
RTC
Ambil data dari
RTC Naikkan cacah
jam
Naikkan cacah menit
Nolkan cacah detik
Kirim data ke RTC
Kirim data ke RTC
Kirim data ke RTC
Ya
Ya
Ya Tidak
Tidak
Tidak
Interupsi dari sensor optik
Tentukan nilai setiap digit
i=0 Ambil
data dari RTC
i8 ?
Tampilkan data kolom
berikutnya
Tunda 250 µs
Apakah masih ada kolom
berikutnya ?
RET
Ya Tidak
Ya
Tidak Increment
i
Gambar 3.7
Diagram Alir dari Perangkat Lunak
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
menyalakan LED untuk menampilkan karakter yang diinginkan.
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 digit angka yang akan dikonversi menjadi keluaran dalam menyalakan LED.
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. 6. Melakukan pengujian terhadap sistem.
4.2 Pengujian