BAB III PERANCANGAN ALAT 3.1 Perancangan Blok Diagram Dalam perancangan alat sangat diperlukan blok diagram sebagai acuan dan cara kerja penulis untuk memetakan pekerjaan yang akan dibuat, dalam hal ini penulis buat blok diagram perancangan sebagai berikut : Gambar 3.1 Blok diagram 17
18 3.2 Perancangan Alat dengan Simulasi Proteus Langkah pertama sebelum kita membuat alat yang akan dibuat, akan lebih baik disimulasi ka dahulu dengan bantuan software, Hal ini untuk mengurangi tingkat kesalahan rangkaian dan program yang kan dibuat. Proteus merupakan software yang tepatuntuk mensimulasikan rangkaian mikrokontroler atmega16 dan software ini juga dapat menjalankan (debug) program yang akan dibuat dalam bahasa C. Gambar 3.2 Tampilan awal Proteus Langkah awal untuk menjalankan program ini, setelah meng-click button OK, membuat rangkaian yang ingin dibuat, ini adalah tampilan untuk memilih komponen yang ingin digunakan.
19 Gambar 3.3 Tampilan pemilihan Komponen Rangkaian yang akan dibuat seperti gambar dibawah ini: Gambar 3.4 Rangkaian Jadi simluasi alat. 3.3 Pengujian Simulasi Rangakaian dengan Program Untuk Pengujian rangkaian, dapat dengan cara membuat program menghidupkan dua led yang hidup dan padam secara bergantian, seperti flip-flop Contoh Program flip-flop seperti ini:2
20 Gambar 3.5 Program LED kedip Flip-flop Setelah melakukan compile, program tersebut dapat dijalankan denngan program proteus dengan cara: Melakukan klik kanan Atmega16, > click Edit Properties Setelah muncul form edit komponen, kemudian melakukan setting seperti ini: Gambar 3.6 Tampilan setting proteus
21 Kemudian penulis menekan tombol OK Penulis menjalankan program dengan menekan tombol play pada pojok kiri bawah proteus. Setelah melakukan penulis melakukan uji coba, dan mengetahui hasil sesuai dengan program yang dibuat, yaitu dua led, hidup dan padam secara bergantian, Dapat dikatakan rangkaian dibuat dapat diprogram. 3.4 Pembuatan Layout PCB Untuk membuat rangakaian alat yang dibuat, maka dibutuhkan komponen dan alat-alat pendukung seperti dibawah ini: Tabel 3.1 Daftar komponen No Nama Komponen dan alat pendukung QTX 1 Atmega 16 1 2 Soket IC pin 40 1 3 Resistor 220 Ohm ¼ watt 19 4 Resistor 10k ohm = ¼ watt 6 5 LED 3mm warna Merah 6 6 LED 3mm warna Hijau 6 7 LED 3mm Warna Kuning 6 8 Pin Header 10 pin 10 9 Adaptor power suply 7,5 v 1A 1
22 10 Conector DC 1 11 L7805 1 12 Elco 100uf 16 v 1 13 Taktil Switch 1 14 PCB Polos 1 15 Ferit Clorit 1 bungkus 16 Pcb Drill (Bor kecil ) + mata bor 1 17 Plastik transparent 1 3.5 Design PCB Untuk Menghasilkan Layout pcb yang bagus maka dapat didesign dengan software computer yaitu Cadsoft eagle, rangakain dari alat ini adalah : Rangkaian IC regulator : Gambar 3.7 Rangakain Sistem minimum Atmega16
23 Gambar 3.8 Wiring diagram Pembuatan Layout : Gambar 3.9 Tampilan perencanaan PCB
24 Gambar 3.10 Hasil Print lay out 3.6 Proses lay out gambar ke pcb: 1. Hasil design layout eagle yang telah dibuat, diprint dengan kertas plastic transparant dan menggunakan printer laser jet. Berikut gambar nya : Gambar 3.11 Hasil PCB
25 2. Teknik yang digunakan yaitu teknik sablon ke PCB, 3. Hasil print diatas disablon dengan menggunakan strika. 4. Setelah beberapa lama distrika hasil layout tinta hitamnya akan pindah ke PCB. Dan lakukan koreksi terhadap jalur yang putus dan yang nyambung 5. Proses selanjutnya Etching PCB yaitu melarutkan tembaga yang tidak tertutup tinta toner dengan ferit cloride (FeCl3). 6. Campur ferit cloride dengan air dan masukan pcb yang sudah disablon, aduk secara menyearah sampai tembaga yang tidak tertutup tinta menghilang (habis). 7. Hasil Setelah Proses etching pcb dapat diihat seperti gambar dibawah ini. 8. Langkah selanjutnya pengeboran PCB dengan mini drill dengan mata bor 0.8mm 9. Setelah proses pengeboran maka komponen dapat dipasang dan disolder sesuai dengan gambar layout yang didesain dengan eagle. 3.7 Pembuatan Program : a. Perancangan Flowchart:
26 START Kondisi Awal Led Tiang 1 s/d 6 hidup berurutan LED Hijau untuk semua tiang hidup Scanning Tombol Function tiangg1(a,b,c) Function tiangg2(a,b,c) Function tiangg3(a,b,c) s6ledhijau=a; s6ledkuning=b; s6ledmerah=c; s3ledhijau=a; s3ledkuning=b; s3ledmerah=c; s6ledhijau=a; s6ledkuning=b; s6ledmerah=c; s3ledhijau=a; s3ledkuning=b; s3ledmerah=c; s1ledhijau=a; s1ledkuning=b; s1ledmerah=c; s4ledhijau=a; s4ledkuning=b; s4ledmerah=c; if PINB.4 or PINB.5 ==1 YES tiangg1(0,0,1); tiangg2(1,0,0); tiangg3(1,0,0); NO LOOPING While() if PINB.2 or PINB.1==1 YES tiangg1(0,0,1); tiangg2(1,0,0); tiangg3(1,0,0); NO if PINB.0 or PINB.3 YES tiangg1(0,0,1); tiangg2(1,0,0); tiangg3(1,0,0); NO Gambar 3.12 Flow Chart Dari flowchart dapat dilihat alur program yang dibuat: Pada saat start maka kondisi awal outputnya Led Tiang 1 s/d 6 hidup berurutan, untuk satu tiang ada 3 led yaitu warna hijau, kuning, merah. Lalu led hijau untuk setiap tiang hidup dan led warna kuning dan merah padam, yang merupakan indikator bahwa kereta siap untuk dijalankan.
27 Scanning Tombol merupakan hasil looping while () jika salah satu tombol ditekan maka akan akan mengeluarkan output seperti apa. If PINB.4 or Pin.5 ==1 artinya jika tombol satu ditekan (diberi aktif high) maka outpunya seperti ini: Gambar 3.13 Gambar Program Maksudnya: Jika yes maka fungsi tiang1 diberi parameter(0,0,1) tiangg2(1,0,0) dan tiangg3(1,0,0), yang mana isi dari fungsi tiangg1 yaitu: Gambar 3.14 Gambar Program
28 Artinya : parameter sesuai parameter yang diberi pada fungsi tiangg1, nilai a = 0, b = 0,c = 1 Maka s6 yaitu side B dan s3 yaitu side A Side B > led hijau padam, led kuning padam, led merah hidup Side A dan B sama. Jadi status led nya sama seperti side B. Begitu seterusnya fungsi tiangg2 dan tiangg3 sama seperti diatas alur program nya. Maka untuk point 1,tiang 1 kereta selanjutnya tidak boleh jalan karena masih dalam kondisi ada kereta yang lewat,setelah tiang 1 led berwarna kuning menyala dan yang lain padam, kereta yang selanjutnya akan bersiap siap, Untuk alur flowchartnya pada display led seperti ini; Gambar 3.15 Gambar Program Maksud dari program tersebut adalah : Tiang 1 (led hijau padam, led kuning hidup, led merah padam) Tiang 2 (led hijau hidup, led kuning padam, led merah hidup) Tiang 3 (led hijau hidup, led kuning padam, led merah padam) Tiang 4 (led hijau hidup, led kuning padam, led merah padam) Tiang 5 (led hijau hidup, led kuning padam, led merah padam) Tiang 6 (led hijau hidup, led kuning padam, led merah padam)
29 Berikut adalah kondisi disaat tombol dua (terhubung ke PORTB.1 nya mikro) maka tiang 1 Led kuning hidup, tiang 2 Led merah hidup, tiang 3,4,5,6 led hijaunya nyala. Langkah selanjutnya adalah : Pembuatan Program bahasa C dengan Codevision avr : Langkah awal pembuatan project baru pada Codevision avr yaitu: 1. Jalan kan Program Codevision Avr dan akan muncul gambar seperti ini Gambar 3.16 Gambar Program 2. Lalu click menu file NEW project tekan OK dan Tekan Yes 3. Pilih AVR Chip Type seperti
30 Gambar 3.17 Gambar Program : 4. Lalu tekan OK, dan akan mucul setting untuk crystal yang digunakan dan settingan fitur lainya. 5. Menu Chip > pilih Chip : Atmega16, Clock 8 Mhz Gambar 3.18 Gambar Program 6. Atur Port yang akan digunakan sesuai flowcahart baik itu sebagai output maupun input:
31 Gambar 3.19 Gambar Program 7. Lalu click menu progam genarate, save & exit Gambar 3.20 Gambar Program
32 8. Save Project di tempat yang diinginkan dengan nama yang sama dan click Save. 9. Maka akan mucul tampilan seperti ini: Gambar 3.21 Gambar Program Penulisan Program : Sesuai dengan rancangan sistim minimum dan flowchart yang dibuat, PORT A, PORT C dan PORT D digunakan sebagai Output, dan PORT B digunakan sebagai input, Penulisan programnya dapat ditulis seperti dibawah ini: Gambar 3.22 Gambar Program
33 Penulisan define Define berfungsi sebagai alias untuk setting port yang digunakan agar mempermudah dalam penulisan program dan lebih tersusun dan teratur. Gambar 3.23 Gambar Program Program diatas misal untuk : #define s1ledhijau PORTD.6 artinya : PORTD.6 dapat digantikan dengan nama s1ledhijau. Dapat digunakan untuk: s1ledhijau=1; == sama artinya PORTD.6 diberi data logika High (1) sehingga Led akan Hidup fungsi array
34 pembuatan fungsi array pada bahasa C dapat mempermudah dalam pemprograman, Structur array function: Void nama_function(tipe data nama_variable1, tipe data nama_variable2, dst...){ sintax_progress} contohnya seperti gambar : Gambar 3.24 Gambar Program Pemanggilan fungsi array diatas contoh fungsi tiang 1 yaitu seperti ini : Gambar 3.25 Gambar Program Artinya: Fungsi tiang1 dipanggil jump tiang1 dengan data variabel (0,0,1) void tiang1(int a,int b,int c){ s1ledhijau=a; s1ledkuning=b;
35 s1ledmerah=c;} Maka nilai variable a = 0, b=0, dan c =1, dan diteruskan s1ledhijau =1; // led hijau hidup s1ledkuning=0; // led kuning padam s1ledmerah=0; // led merah Padam fungsi If Struktu IF sebagai berikut: If (#statemen) { #argument; }; Contoh: Gambar 3.26 Gambar Program Artinya if(pinb.1==1)// jika PORTB.1 diberi data logika 1 (High) maka tiang1(0,1,0);tiang2(0,0,1);tiang3(1,0,0); // Tiang1 (led kuning hidup); tiang2 (led merah hidup // Tiang tiang3 (led hijau hidup) tiang4 (1,0,0);tiang5(1,0,0);tiang6(1,0,0); // Tiang4 (led hijau hidup); tiang5 (led hijau hidup // Tiang tiang6(led hijau hidup)}
Gambar 3.27 Gambar simulator sinyal kereta api 36