Spesifikasi Sistem Implementasi PERANCANGAN SISTEM

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