BAB 3 PERANCANGAN SISTEM
3.1
Perancangan Perangkat Keras Sistem ini dirancang dengan pendekatan aplikasi pada ruangan tertutup yang umumnya memiliki pintu, lampu dan AC. Pada perancangan sistem ini, pendeteksian orang yang akan masuk ke ruangan tersebut dilakukan oleh rangkaian sensor infra merah dan pintu akan dibuka. Setelah orang masuk ke dalam ruangan, sistem akan menyalakan lampu dan menyalakan AC melalui remote AC apabila suhu ruangan di atas batas suhu yang telah ditentukan pada sistem.
Gambar 3.1 Diagram Blok Sistem
29
30 3.1.1
Modul FPGA FPGA tipe Spartan XCS10/XL memiliki modul-modul di dalamnya, yaitu parallel port, LED, Power Input, Push Buttons, Slide Switches, Sevensegment displays, Clocks, XCS10 PLCC, Test Point Headers, PS2, Audio, BNC, RS232, dan VGA Port. Penelitian yang dilakukan untuk sistem ini hanya menggunakan dua modul,yaitu modul Push Button dan modul Seven – segment Display. Modul Push Button digunakan sebagai masukan ke sistem secara manual apabila terjadi eror perhitungan jumlah orang yang berada di dalam ruangan untuk menambahkan atau mengurangi jumlah orang yang berada di dalam ruangan tersebut. Untuk menambahkan jumlah orang digunakan BTN1, sedangkan untuk mengurangi jumlah orang digunakan BTN2. Modul Push Button ini juga digunakan untuk mereset sistem secara keseluruhan dengan menggunakan BTN3. (Gambar3.2)
Gambar 3.2 Rangkaian Push Button pada FPGA
31 Modul Seven–segment Display digunakan sebagai keluaran dari sistem untuk menampilkan jumlah orang yang ada di dalam ruangan dan suhu ruangan yang diperoleh dari sensor suhu. Dalam satu clock hanya satu seven-segment saja yang diaktifkan, sehingga untuk menampilkan empat buah seven-segment tersebut membutuhkan empat clock. Dengan frekuensi clock yang tinggi, maka dalam satu detik tampilan seven-segment terlihat aktif semua.(Gambar 3.3)
Gambar 3.3 Rangkaian Seven-segment Display pada FPGA
32 3.1.2
Rangkaian ADC ADC yang digunakan untuk modul ini adalah tipe 0809. Penggunaan ADC 0809 ini sebagai pengubah data analog menjadi digital. Dengan mempunyai delapan jalur (channel) input yang dapat di akses dengan pemberian alamat pada ADC, dan penggunaannya cukup mudah dan ekonomis. (Gambar 3.4)
Gambar 3.4 Rangkaian ADC
ADC 0809 diaktifkan dengan sinyal clock 500 kHz yang dibangkitkan oleh LM 555. Keluaran FPGA (pin PD3 dan PD4) akan menjadi masukan bagi ADC sebagai alamat dari sensor suhu yang akan diambil datanya. Masukan dari sensor suhu merupakan analog yang berupa tegangan dan akan dikonversikan oleh ADC 0809 menjadi data digital. Setiap perubahaan alamat sensor suhu maka data berupa tujuh bit tersebut akan menjadi masukan bagi FPGA melalui pin LD2 sampai LD8, dimana pin LD8 sebagai LSB dan pin LD2 sebagai MSB. Hal ini
33 dilakukan tiga kali sesuai dengan jumlah sensor suhu yang digunakan pada sistem ini. Penggunaan VR 10k dimaksudkan untuk mengatur besarnya Vref yang diberikan pada ADC, sehingga dapat menyesuaikan perubahan output dari LM35 dengan ADC sehingga perubahan satu derajat dari LM35 di konversi oleh ADC dengan perubahan nilai output.sebesar satu dalam biner.
3.1.3
Rangkaian Motor DC Motor DC digunakan untuk menggerakan pintu geser adalah motor DC 12 V. Perubahan arah putaran motor digunakan untuk membuka dan menutup pintu yang diatur dengan perubahan kutub tegangan masukan. Perubahan kutub tersebut diatur oleh FPGA melalui relay. Relay adalah sebuah saklar elektronik yang dirancang sedemikian rupa untuk merespon terhadap sinyal HIGH maupun LOW. Berikut adalah gambar fisik hasil rangkaian dari relay motor yang dipergunakan pada penelitian ini. (Gambar 3.5 )
34
Gambar 3.5 Rangkaian Relay motor
Bila keluaran dari FPGA berupa LOW maka arus yang mengalir ke basis akan kecil, maka transistor akan cut-off sehingga motor tidak akan mendapat tegangan. Sebaliknya, bila keluaran dari FPGA berupa HIGH maka arus yang mengalir ke basis akan menjadi besar, maka transistor akan saturasi sehingga motor akan mendapat tegangan 12V. Untuk menggerakan pintu maka FPGA hanya memberikan keluaran berupa HIGH pada pin SW7 untuk membuka pintu atau pin SW8 untuk membuka pintu. Berikut ini merupakan tabel logika bagaimana sebuah motor DC akan menggerakkan pintu dari sistem yang dirancang.
35 Tabel 3.1 Logika Motor DC SW7 0 0 1 1 3.1.4
SW8 0 1 0 1
Keadaan Pintu Pintu tidak bergerak Pintu akan menutup Pintu akan membuka Error (keadaan yang tidak diinginkan)
Rangkaian Sensor Suhu Sensor suhu yang digunakan adalah IC LM 35 (Gambar 3.6). Dimana sensor suhu yang digunakan ada tiga buah, dan ditempatkan terpisah pada posisi yang berlainan..
Gambar 3.6 Rangkaian Sensor Suhu
IC LM 35 dirangkaikan dengan Operational Amplifier (Op-Amp) untuk menguatkan arus keluaran dari IC LM 35. Selain itu juga berfungsi sebagai anti bouncing dan sebagai rangkaian LPF (Low Pass Filter) yang bertujuan untuk menstabilkan tegangan dengan melewatkan sinyal tegangan rendah saja.
36 3.1.5
Rangkaian Infra Merah Transmitter infra merah diberi tegangan VDD +5 volt dari FPGA sehingga memancarkan sinar inframerah secara terus menerus. Receiver berupa photo diode akan menerima sinar inframerah dan memberikan keluaran LOW selama sinyal infra merah diterima, dan akan memberikan keluaran HIGH apabila sinyal infra merah tersebut terputus oleh suatu objek Pada Gambar 3.8 apabila foto dioda menerima sinar infra merah maka arus yang mengalir ke basis transistor C9013 menjadi besar sehingga transistor akan saturasi, dan keluaran (output) akan bernilai LOW. Sebaliknya, apabila foto dioda tidak menerima sinar infra merah maka arus yang mengalir ke basis transistor C9013 menjadi kecil sehingga transistor akan cut-off dan keluaran (output) akan bernilai HIGH
Gambar 3.7 Rangkaian Sensor Infra merah
37
3.1.6
Modul Lampu Modul lampu akan dinyalakan dan dipadamkan oleh FPGA melalui rangkaian Relay adapun cara kerja rangkaian tersebut adalah apabila masukan dari FPGA HIGH maka arus yang masuk ke basis transistor menjadi besar sehingga transistor akan saturasi. Relay tidak aktif dan lampu akan padam. Sebaliknya, apabila masukan dari FPGA LOW maka arus yang masuk ke basis transistor menjadi kecil sehingga transistor akan cut-off, relay akan aktif dan lampu akan menyala.
Gambar 3.8 Rangkaian Relay Lampu
3.1.7
Modul remote AC Modul remote AC berupa remote AC yang penggunaan tombol powernya diganti dengan relay yang dikontrol oleh FPGA dengan mengeluarkan logic HIGH. Untuk menghidupkan dan mematikan power AC maka keluaran FPGA akan berubah dari logic HIGH menjadi logic LOW kemudian HIGH kembali.
38
Gambar 3.9 Rangkaian Relay Remote AC
3.2
Perancangan Perangkat Lunak Sistem yang akan dibuat menggunakan software Xilinx Foundation Series 2.1i. dengan menggunakan bahasa pemrograman HDL (Hardware Decription Language) dan digambarkan dengan ASM (Algorithmic State Machine) Charts.
3.2.1
Program Utama Pada program utama terdapat empat proses yang jalan bersamaan yaitu PS , PS_sh, PS_lampu dan PS_ac. Proses PS adalah proses untuk mengatur pendeteksian infra merah dan pengontrolan pintu. Proses PS_sh merupakan proses untuk membaca data dari sensor suhu dan menghitung rata-rata suhu. Proses PS_lampu akan mengatur nyala dan matinya lampu. Sedangkan proses PS_ac untuk mengatur bilamana AC akan dinyalakan dan dimatikan. Setiap proses akan disimulasikan, dan proses-proses tersebut akan digabungkan setelah masing-masing proses telah berjalan cukup baik terhadap rangkaian perangkat keras.
39 3.2.1.1 Proses PS Pada proses PS terdapat beberapa state yaitu state A, state B, state C, state D, state E, state Count1, state Count2, state delay, state ttp, state bk_1, state bk_2, state plus, dan state min. Berikut ini akan dijelaskan secara rinci setiap state. State A merupakan state untuk mendeteksi ada tidaknya keberadaan orang pada sensor infra merah 1 dan sensor infra merah 3, yang akan menentukan counter akan menjumlah ataupun mengurang jumlah orang (Gambar 3.10). Bila ir1 aktif berarti adanya orang di depan pintu yang akan memasuki ruangan maka state akan berpindah ke bk_1, dan sebaliknya bila ir1 tidak aktif maka akan dilakukan pemeriksaan terhadap ir3. Bila ir3 aktif berarti adanya orang yang akan keluar dari ruangan maka state akan berpindah ke bk_2, dan sebaliknya bila tidak aktif maka dilakukan pemeriksaan selanjutnya terhadap tb_plus. Bila tb_plus aktif berarti terjadi penambahan counter jumlah orang secara manual sehingga state akan berpindah ke plus. Bila tb_plus tidak aktif maka akan dilakukan pemeriksaan terhadap tb_min. Bila tb_min aktif berarti terjadi pengurangan counter jumlah orang secara manual sehingga state akan berpindah ke min. Bila tb_min tidak aktif maka akan dilakukan pemeriksaan kembali dari awal, dan state akan berpindah ke A.
40
Gambar 3.10 ASM Chart State A Keterangan
:
Ir1
: Inframerah 1
Ir3
: Inframerah 3
Tb_plus
: Tombol penambah jumlah orang
Tb_min
: Tombol pengurang jumlah orang
State B merupakan state untuk mendeteksi kelanjutan masuknya orang ke dalam ruangan (Gambar 3.11). Bila ir2 aktif berarti orang dari luar akan memasuki ruangan, sehingga state akan berpindah ke D. Sebaliknya, bila ir2 tidak aktif maka akan dilakukan pemeriksaan terhadap ir1. Bila ir1 aktif berarti orang yang hendak memasuki ruangan masih berada pada sisi pintu luar, sehingga state
41 akan berpindah ke B. Sebaliknya, bila ir1 tidak aktif berarti orang yang berada pada sisi pintu luar membatalkan untuk memasuki ruangan sehingga state akan berpindah ke delay.
Gambar 3.11 ASM Chart State B Keterangan : Ir2
: Inframerah 2.
State C merupakan state untuk mendeteksi kelanjutan keluarnya seseorang dari ruangan (Gambar 3.12). Bila ir2 aktif berarti orang dari dalam akan keluar dari ruangan, sehingga state akan berpindah ke E. Bila ir2 tidak aktif maka akan dilakukan pemeriksaan terhadap ir1. Bila ir1 aktif berarti orang yang akan keluar dari ruangan masih berada pada sisi pintu bagian dalam, sehingga state akan berpindah ke C. Bila ir1 tidak aktif berarti orang yang berada pada sisi pintu bagian dalam membatalkan untuk keluar dari ruangan sehingga state akan berpindah ke delay.
42
Gambar 3.12 ASM Chart State C
State D merupakan state untuk mendeteksi bahwa orang yang memasuki ruangan telah berada di dalam ruangan (Gambar 3.13). Bila ir3 aktif berarti orang yang memasuki ruangan telah berada di dalam ruangan, sehingga state akan berpindah ke count1. Bila ir3 tidak aktif maka akan dilakukan pemeriksaan terhadap ir2. Bila ir2 aktif maka state akan berpindah ke D, sedangkan bila ir2 tidak aktif maka state akan berpindah ke A.
Gambar 3.13 ASM Chart State D
43 State E merupakan state untuk mendeteksi bahwa orang yang akan keluar dari ruangan telah berada diluar ruangan dengan ditandai aktifnya ir1, sehingga state akan berpindah ke count2 (Gambar 3.14). Bila ir1 tidak aktif maka akan dilakukan pemeriksaan selanjutnya terhadap ir2. bila ir2 aktif maka state akan berpindah ke E dan bila ir2 tidak aktif maka state akan berpindah ke A.
Gambar 3.14 ASM Chart State E
State count1 merupakan state untuk inisialisasi penambahan jumlah orang dalam ruangan dengan memberikan nilai 1 terhadap ce_sa dan state akan berpindah ke delay (Gambar 3.15).
Gambar 3.15 ASM Chart State count1
44 Keterangan : Ce_sa
: variabel penambah jumlah orang
State count2 merupakan state untuk inisialisasi pengurangan jumlah orang dalam ruangan dengan memberikan nilai 1 terhadap kr_sa dan state akan berpindah ke delay (Gambar 3.16).
Gambar 3.16 ASM Chart State count2 Keterangan : Kr_sa
: variabel pengurang jumlah orang
State delay merupakan state untuk menunda waktu sebelum pintu akan ditutup (Gambar 3.17). Bila ir1 atau ir3 aktif berarti adanya orang yang mendekati pintu sehingga pintu dibatalkan untuk menutup dengan state akan berpindah ke A. Bila ir1 dan ir3 tidak aktif maka akan dilakukan perhitungan hingga nilai delay=144 atau hingga tiga detik, dan state akan berpindah ke ttp.
45
Gambar 3.17 ASM Chart State delay Keterangan : Ce_del
: clock enable untuk delay.
State ttp merupakan state untuk menutup pintu (Gambar 3.18). Bila ir2 aktif berarti adanya orang yang berdiri pada pintu sehingga pintu tidak ditutup dan state akan berpindah ke ttp. Bila ir2 tidak aktif maka akan dilakukan pemeriksaan terhadap ir1 dan ir3. Bila salah satu atau keduanya aktif maka pintu tidak ditutup dan state akan berpindah ke ttp. Bila ir1 dan ir3 tidak aktif maka akan dilakukan pemeriksaan terhadap tb1. Bila tb1 tidak aktif berarti pintu dalam keadaan terbuka sehingga pintu harus ditutup dengan memberikan nilai 1 terhadap tutup dan state akan berpindah ke ttp. Bila tb1 aktif berarti pintu telah tertutup sehingga tutup=0 dan state akan berpindah ke A.
46
Gambar 3.18 ASM Chart State ttp Keterangan : Tb1
: tombol sensor pintu tertutup
Tutup : keluaran untuk menutup pintu.
State bk_1 merupakan state untuk membuka pintu bila ada orang yang akan memasuki ruangan (Gambar 3.19). Bila tb2 tidak aktif berarti pintu tidak dalam keadaan terbuka sehingga buka=1 dan state akan berpindah ke bk_1. Sebaliknya, bila tb2 aktif berarti pintu telah terbuka sehingga buka=0 dan state akan berpindah ke B.
47
Gambar 3.19 ASM Chart State bk_1 Keterangan : Tb2
: tombol sensor pintu terbuka
Buka : keluaran untuk membuka pintu
State bk_2 merupakan state untuk membuka pintu bila ada orang yang akan keluar dari ruangan (Gambar 3.20). Bila tb2 tidak aktif berarti pintu tidak dalam keadaan terbuka sehingga buka=1 dan state akan berpindah ke bk_2. Sebaliknya, bila tb2 aktif berarti pintu telah terbuka sehingga buka=0 dan state akan berpindah ke C.
Gambar 3.20 ASM Chart State bk_2
48 State plus merupakan state untuk menunda waktu pada penekanan tombol penjumlah orang secara manual (Gambar 3.21). Bila nilai del=15 maka nilai ce_sa=1, nilai ce_del=0 dan state akan berpindah ke A. Sedangkan nilai del≠15 maka nilai ce_del=1 dan state akan berpindah ke plus.
Gambar 3.21 ASM Chart State plus
State min merupakan state untuk menunda waktu pada penekanan tombol pengurang jumlah orang secara manual (Gambar 3.22). Bila nilai del=15 maka nilai ce_sa=1, nilai ce_del=0 dan state akan berpindah ke A. Sedangkan nilai del≠15 maka nilai ce_del=1 dan state akan berpindah ke min
Gambar 3.22 ASM Chart State min
49 3.2.1.2 Proses PS_sh Pada proses PS_sh terdapat beberapa state yaitu state Start_sh, state Sh01, state Sh02, state Sh03, dan state Sh04,. Pada proses ini berisi pengaturan pembacaan data suhu dari ADC yang terdiri dari tiga buah sensor, merata-ratakan nilai yang di peroleh dari ketiga sensor dengan pembulatan ke bawah dan menampilkan hasilnya ke seven segment. Berikut ini akan dijelaskan secara rinci setiap state. Pada state Start_sh ini FPGA membaca suhu dari sensor yang beralamat “00” pada ADC (Gambar 3.23). Del_sh di maksudkan sebagai delay untuk menunggu EOC (End Of Conversion) dari ADC. Setelah delay terpenuhi data akan diambil melalui perintah Ce_sh1 yang merupakan suatu proses tersendiri, yaitu dengan memindahkan nilai data_sh ke register suhu. ( suhuÅdata_sh). Kemudian state akan berpindah ke Sh01.
Gambar 3.23 ASM Chart State Start_sh
50 Keterangan : Adc_add
: pemberian alamat sensor suhu
del_sh
: delay suhu
ce_del_sh
: clock enable penambahan nilai delay
ce_sh1
: clock enable pengambilan data suhu
Pada state Sh01 ini dilanjutkan dengan membaca data dari sensor suhu pada alamat yang kedua yaitu “01”, sama seperti state sebelumnya, setelah FPGA memberikan alamat ke ADC maka dilakukan delay untuk menunggu EOC (Gambar 3.24). Setelah delay terpenuhi maka data yang diperoleh akan ditampung dengan perintah ce_sh2 yang berupa proses tersendiri yang akan menambahkan data yang diperoleh sekarang dengan data yang diperoleh sebelumnya (suhu Å suhu + data_sh). Kemudian state akan berpindah ke Sh02.
Gambar 3.24 ASM Chart State Sh01
51 Keterangan : Ce_sh2 : clock enable untuk menambahkan data yang telah di peroleh dengan data yang baru
State Sh02 ini sama dengan state sebelumnya yaitu membaca data dari sensor suhu pada alamat yang ke-tiga yaitu “10”, dilakukan delay untuk menunggu EOC (Gambar 3.25). Setelah delay terpenuhi maka data yang diperoleh akan ditampung dengan perintah ce_sh2 yang berupa proses tersendiri yang akan menambahkan data yang diperoleh
sekarang
dengan
data
yang
diperoleh
sebelumnya.(suhuÅsuhu + data_sh). Kemudian state akan berpindah ke Sh03.
Gambar 3.25 ASM Chart State Sh02
52 Pada state Sh03, data suhu yang telah dijumlahkan pada variabel suhu akan di hitung rata-ratanya dengan membandingkan nilai suhu dengan nilai tiga (Gambar 3.26). Jika nilai suhu lebih besar dari tiga maka akan di lakukan dua proses sekaligus, yaitu ce_sh3 mengurangi nilai suhu dengan 3 dan ce_rata2 menghitung berapa kali proses ini dilakukan, sehingga diperoleh rata-rata dari ketiga input sensor suhu yang di simpan pada variabel rata2_sh ( suhuÍ suhu -3, rata2_shÍ rata2_sh +1). ce_suhu akan memindah kan nilai rata2_sh ke variabel sh_skrg yang akan ditampilkan ke seven segment ( sh_skrg Í rata2_sh).
0 Gambar 3.26 ASM Chart State Sh03 Keterangan : Ce_sh3
: clock enable pengurang data dengan nilai 3
Ce_rata2
: clock enable penghitung perulangan ce_sh3
Ce_suhu
: clock enable pengambilan nilai rata2
53 State Sh04 ini berfungsi untuk mereset nilai dari rata2_sh dengan pemberian delay, kemudian state akan kembali ke start_sh untuk pengambilan data berikutnya (Gambar3.27).
Gambar 3.27 ASM Chart State Sh04 Keterangan : Rst_rata2
: clock enable reset nilai rata2 untuk proses pengumpulan data berikutnya.
3.2.1.3 Proses PS_lp Proses PS_lp merupakan pengaturan modul lampu. Pada proses ini clock yang digunakan adalah 16 kHz. Pada state Light ini akan memroses pengaturan lampu, dengan memeriksa ada atau tidaknya orang di dalam ruangan (Gambar 3.28). Jika ada orang di dalam ruangan maka keluaran dari FPGA ke relay lampu akan HIGH, sehingga lampu akan menyala dan berpindah ke state Delay_lp.
54
Light
0
1
Sat>0 or pul>0
Light
Lampu=1
Delay_lp
Gambar 3.28 ASM Chart State Light Keterangan : Sat
: nilai satuan dari jumlah orang
Pul
: nilai puluhan dari jumlah orang
Lampu : keluaran ke relay lampu.
State Delay_lp untuk menutup lampu apabila ruangan telah kosong tidak ada orang di dalam ruangan, dengan memeriksa jumlah orang yang berada di dalam ruangan (Gambar 3.29). Jika ruangan tidak ada orang maka akan dijalankan delay 5 detik. Setelah delay terpenuhi maka keluaran FPGA akan berubah dari HIGH menjadi LOW. Sehingga lampu akan padam dan state yang aktif akan berpindah ke state light kembali.
55
Gambar 3.29 ASM Chart State Delay_lp Keterangan : ce_del_lp
: clock enable penambah nilai delay lampu
del_lp
: delay lampu
3.2.1.4 Proses PS_ac Proses PS_ac merupakan proses untuk pengaturan modul remote AC, dengan menggunakan clock 16 kHz. Pada state AC ini dilakukan pemeriksaan jumlah orang yang berada di dalam ruangan (Gambar 3.30). Jika ada orang di dalam ruangan maka dilakukan perbandingan suhu sekarang dengan nilai yang telah ditentukan, yaitu 22°C. Bila suhu sekarang di atas 22°C maka keluaran ke relay remote AC akan HIGH sesaat sesuai yang di atur pada state ksng. Sehingga ac dapat di hidupkan. Jika suhu
56 sekarang masih di bawah 22°C maka modul remote AC tidak akan diaktifkan sehingga AC tidak akan hidup dan akan terjadi looping pada state ini .
Gambar 3.30 ASM Chart State AC Keterangan : Pwr_ac
: keluaran ke rangkaian relay ac
Sh_skrg
: nilai suhu yang akan ditampilkan
Pada state ksng akan dilakukan delay pemberian nilai HIGH selama 1 detik pada remote AC. Setelah delay terpenuhi maka state akan berpindah ke state delay_ac (Gambar 3.31).
57
Gambar 3.31 ASM Chart State ksng Keterangan : Del_ac
: delay untuk kontrol AC
Ce_del_ac
: clock enable penambah nilai delay AC
Pada state delay_ac ini akan dilakukan pemeriksaan jumlah orang yang berada di dalam ruangan (Gambar 3.32). Jika ruangan telah kosong maka akan dijalankan delay selama 5 detik sebelum FGPA
memberikan
memberikan
perintah
untuk
mematikan
AC
dengan
keluaran HIGH sesaat ke relay remote AC sesuai
dengan yang diatur pada state ksng1. Jika ruangan masih ada orang di dalam ruangan maka akan terjadi looping pada state ini.
58
Gambar 3.32 ASM Chart State Delay_ac
State ksng1 ini fungsinya sama dengan state ksng, yaitu membuat delay pemberian nilai HIGH selama satu detik. Hanya saja kali ini dimaksudkan untuk mematikan AC. Setelah delay terpenuhi maka state akan berpindah kembali ke state awal, yaitu state AC (Gambar 3.33).
Gambar 3.33 ASM Chart State ksng1
59 3.2.1.5 Proses Pengaturan State Proses pengaturan state ini untuk mereset sistem secara keseluruhan atau mengatur perubahan state yang akan dijalankan pada proses PS, PS_sh, PS_lp, dan PS_ac. Apabila sistem tidak berjalan atau mengalami error, maka sistem dapat direset. Setelah direset, semua proses PS, PS_sh, PS_lp dan PS_ac akan menuju pada state awal, yaitu PS=ttp, PS_sh=Sh01, PS_ac=AC, dan PS_lp=light. Selama sistem tidak direset dan terjadi clock event dengan aktif HIGH
maka
PS=NS,
PS_sh=NS_sh,
PS_ac=NS_ac,
dan
PS_lp=NS_lp. Proses ini berjalan terus hingga adanya reset kembali (Gambar .34).
Gambar 3.34 ASM Chart Proses Pengaturan State Keterangan : PS
= Present state
NS
= Next State
60 3.2.2
Sub Program Sub program adalah program tambahan yang terpisah untuk membantu kerja program utama. Sub program ini terdiri dari program Decoder 7Segment, program Counter 2-bit, dan program Decoder Suhu
3.2.2.1
Decoder 7Segment Sub program Decoder 7Segment digunakan untuk mendekode suatu input yang akan ditampilkan seven-segment pada FPGA (Gambar 3.35). Input yang diterima berupa bilangan biner dari 000 hingga 1001. Pada program secara keseluruhan Decoder 7Segment ini berfungi untuk menampilkan jumlah orang yang terdiri dari dua digit yaitu satuan dan puluhan dalam bentuk desimal. Pertama
kali
program
Decoder
7Segment
akan
memeriksa fungsi reset, apabila reset aktif maka output=0. Sedangkan apabila reset tidak aktif maka clock akan diperiksa. Bila clock terjadi event (perubahan dari HIGH menjadi LOW atau sebaliknya, perubahaan dari LOW menjadi HIGH) dan event tersebut adalah perubahan dari LOW menjadi HIGH, maka D_in akan didekodekan menjadi D_out untuk ditampilkan pada seven-segment.
61
Gambar 3.35 ASM Chart Decoder 7Segment
62 Keterangan : D_in
: input dari program utama
D_out : output untuk program utama.
3.2.2.2
Counter 2-bit Sub
program
Counter
2-bit
digunakan
sebagai
penghitung 2-bit biner yang digunakan untuk pengalamatan empat buah seven-segment agar dapat ditampilkan secara bergantian. Karena dalam satu clock hanya satu sevensegment saja yang aktif, maka dibutuhkan empat clock untuk mengaktifkan empat buah seven-segment secara bergantian. Untuk itu diperlukan suatu penghitung 2-bit biner dari 00 hingga 11 dan diulangi terus-menerus. Pertama kali program Counter 2-bit akan memeriksa apakah fungsi reset aktif (Gambar 3.36). Apabila reset aktif maka D_out=00. Sedangkan apabila reset tidak aktif, maka akan dilakukan pemeriksaan clock. Bila clock terjadi event (perubahan dari HIGH menjadi LOW atau sebaliknya, perubahaan dari LOW menjadi HIGH) dan event tersebut adalah perubahan dari LOW menjadi HIGH, maka output adalah output sebelumnya yang ditambahkan dengan nilai satu (D_out = D_out + 1).
63
Gambar 3.36 ASM Chart Counter 2-bit
3.2.2.3
Decoder Suhu Sub
program
Decoder
Suhu
digunakan
untuk
mendekode sebuah input menjadi dua buah output yang akan ditampilkan pada seven- segment dari FPGA. Pada proses program utama terjadi pengambilan data dari tiga buah sensor suhu, kemudian akan dijumlahkan dan dihitung pula rata-rata suhu tersebut. Rata-rata suhu tersebut akan dikonversikan menjadi 2 bagian yaitu satuan dan puluhan. Input yang diterima (D_in) akan langsung dikonversikan menjadi satuan dan puluhan. Output tersebut (D_out1 dan D_out2) akan ditampilkan pada seven-segment (Gambar 3.37 dan Gambar 3.38).
64
Gambar 3.37 ASM Chart Decoder Suhu (1)
65
0
0
0
0
0
0
0
0
0
0
0
0
0
D_in = 011100?
D_in = 011101?
D_in = 011110?
D_in = 011111?
D_in = 100000?
D_in = 100001?
D_in = 100010?
D_in = 100011?
D_in = 100100?
D_in = 100101?
D_in = 100110?
D_in = 100111?
D_in = 101000?
1
1
1
1
1
1
1
1
1
1
1
1
1
D_out1 = 0010010 D_out2 = 0000000
D_out1 = 0010010 D_out2 = 0000100
D_out1 = 0000110 D_out2 = 0000001
D_out1 = 0000110 D_out2 = 1001111
D_out1 = 0000110 D_out2 = 0010010
D_out1 = 0000110 D_out2 = 0000110
D_out1 = 0000110 D_out2 = 1001100
D_out1 = 0000110 D_out2 = 0100100
D_out1 = 0000110 D_out2 = 0100000
D_out1 = 0000110 D_out2 = 0001111
D_out1 = 0000110 D_out2 = 0000000
D_out1 = 0000110 D_out2 = 0000100
D_out1 = 1001100 D_out2 = 0000001
D_out1 = 0000001 D_out2 = 0000001
Gambar 3.38 ASM Chart Decoder Suhu (2)
66 3.3
Rancang Bangun Rancang bangun untuk penelitian ini dibagi menjadi beberapa bagian, yaitu rancang bangun prototipe pintu, rancang bangun sensor infra merah dan rancang bangun remote AC.
3.3.1
Rancang Bangun Prototipe Pintu Prototipe pintu ini menggunakan media kayu dengan tiga buah tiang sebagai
penyangga
rangka
pintu
(penyangga1,
penyangga2,
dan
penyangga3), dan pada kedua ujung tiang penyangga diletakkan dua buah tombol sebagai saklar untuk mendeteksi keadaan pintu terbuka atau tertutup
Gambar 3.39 Rancang Bangun Protipe Pintu (Tampak Depan)
67
Gambar 3.40 Rancang Bangun Protipe Pintu (Tampak Samping)
Gambar 3.41 Prototipe Pintu (Tampak Depan)
Pergerakan acrylic sebagai pintu ini diatur oleh motor DC. Motor DC akan terus bergerak hingga pintu menekan salah satu saklar dari dua buah saklar yang terletak pada tiang penyangga1 dan tiang penyangga3.
68 Saklar yang digunakan adalah saklar tekan, sehingga apabila saklar tersebut tertekan oleh pintu maka putaran motor DC akan terhenti. Pintu dirancang tergantung pada sebuah tiang besi horisontal dan tidak menyentuh permukaan lantai. Hal tersebut dimaksudkan agar tidak terjadi gesekan dengan permukaan lantai, sehingga pintu dapat berjalan dengan lebih cepat dan lebih lancar.
3.3.2
Rancang Bangun Sensor Infra Merah Sensor infra merah yang digunakan ada tiga buah, yaitu sensor infra merah1, infra merah2, dan infra merah3 (Gambar 3.42 dan Gambar 3.43). Sinar infra merah akan dipancarkan terus-menerus ke photodetector, di mana keluaran photo diode akan LOW bila sinar infra merah tidak terputus atau tidak ada objek yang menutupi photo diode. Saat ada objek yang menutupi photo diode maka sinar infra merah akan terputus dan pintu akan terbuka, sehingga keluaran photo diode akan HIGH.
69 Gambar 3.42 Rancang Bangun Peletakan Infra merah (Tampak Samping)
Gambar 3.43 Rancang Bangun Peletakan Infra merah (Tampak Depan)
Gambar 3.44 Penempatan Infra merah pada Prototipe Pintu
70
Infra merah1 diletakkan di luar ruangan, infra merah2 diletakkan di sebelah pintu, dan infra merah3 diletakkan di dalam ruangan. Agar dapat menghitung jumlah orang yang berada dalam ruangan, maka urutan sensor yang aktif harus memenuhi seperti pada tabel 3.2. Apabila urutan sensor yang aktif tidak sesuai dengan tabel, maka tidak akan terjadi penghitungan jumlah orang.
Tabel 3.2 Urutan Sensor Infra merah Urutan sensor yang aktif
3.3.3
keterangan
I
II
III
Ir1
Ir2
Ir3
Counter jumlah orang bertambah
Ir3
Ir2
Ir1
Counter jumlah orang berkurang
Rancang Bangun Remote AC Pengontrolan AC dilakukan dengan menggunakan remote AC merek General tipe AR-D2 yang terhubung pada sebuah relay. Dengan melalui relay tersebut, FPGA dapat mengontrol agar AC dapat dinyalakan (ON) dan juga dimatikan (OFF).
71
Gambar 3.45 Rancang Bangun Remote AC
Gambar 3.46 modul Remote AC