BAB III PERANCANGAN DAN REALISASI PERANGKAT KERAS DAN PERANGKAT LUNAK SISTEM 3.1 Perancangan Perangkat Keras 3.1.1 Blok Diagram Dari diagram sistem dapat diuraikan metode kerja sistem secara global. Gambar 3.1. blok diagram sistem Sistem pengendalian medan magnet memungkinkan seorang pengguna memperoleh nilai medan magnet yang diinginkan serta memantau nilai medan magnet yang dihasilkan melalui PC. 3-1 Nilai medan magnet yang diinginkan dimasukkan sebagai input pada PC untuk kemudian diolah menjadi nilai tegangan dan arus yang sesuai. Nilai tegangan dan arus tersebut diteruskan ke catu daya SM 7020-D dari Delta Elektronika untuk menghasilkan medan magnet. Besarnya medan magnet dideteksi oleh sensor efek Hall dan ditampilkan pada PC. 3.1.2 Blok Diagram Boks Antarmuka dan Akuisisi Data Block Diagram Interface and Data Aquisition Microcontroller Input Sensor ( Hall Probe) Pre Amplifier Output Datato PC RS232 ADC ( 10Bit) Control Unit SM 7020-D Delta PWM Output V and I to Magnetometer Catu Daya Gambar 3.2. blok diagram boks antarmuka dan akuisisi data Boks antarmuka dan akuisisi data terdiri dari empat bagian utama, yaitu : a. Catu daya b. Modul mikrokontroler (ADC internal dan PWM) c. Modul serial RS232 d. Modul sensor dan penguat awal 3-2 3.1.3 Catu Daya Umumnya suatu rangkaian elektronika membutuhkan sumber tegangan, berupa catu daya. Suatu catu daya berfungsi menghasilkan tegangan searah dari tegangan bolak-balik yang disearahkan. Catu daya terdiri dari dua bagian yaitu rangkaian penyearah dan rangkaian voltage regulator atau penstabil tegangan. Rangkaian penyearah berfungsi menerima masukan tegangan ac dan melalui beberapa proses menghasilkan tegangan dc. Rangkaian voltage regulator berfungsi untuk membatasi dan menstabilkan tegangan keluaran sesuai dengan besarnya nilai tegangan keluaran yang dibutuhkan. Rangkaian voltage regulator terdiri dari beberapa transistor, resistor, dan dioda yang biasanya telah dibuat dalam satu kemasan IC. Rangkaian ini berfungsi memberikan tegangan pada setiap modul. GND 2 Gambar 3.3. catu daya Sumber tegangan masukan pada sub sistem catu daya adalah 220 Vac. Tegangan keluaran dari blok ini adalah 5 V. Pada gambar, tegangan ac 220 Volt diturunkan menjadi 12 Vdc. Dari 12 Vdc ini disearahkan menggunakan dioda dengan konfigurasi penyearah setengah gelombang untuk mencegah terjadinya kesalahan polaritas. Tegangan yang dihasilkan oleh penyearah tersebut dihubungkan dengan regulator untuk mendapatkan tegangan yang stabil. Tegangan keluaran +5 Vdc diperoleh dengan menggunakan IC regulator 7805. 3-3 3.1.4 Modul Mikrokontroler (ADC Internal dan PWM) Pengendali dari sistem yang akan dirancang menggunakan mikrokontroler AVR ATMega8. Pada perancangan dan realisasi bagian kontrol utama ini digunakan beberapa rangkaian pendukung, yaitu rangkaian reset mikrokontroler, rangkaian clock, dan catu daya. Sub sistem mikrokontroler berfungsi melakukan pengaturan terhadap jalur komunikasi antara modul sensor, catu daya SM 7020-D, dan PC. Gambar rangkaian pendukung diperlihatkan pada gambar berikut. Gambar 3.4. rangkaian pendukung mikrokontroler Kecepatan pengolahan data pada mikrokontroler ATMega8 ditentukan oleh rangkaian oscillator atau rangkaian clock yang dapat dilihat pada gambar berikut ini : 3-4 Gambar 3.5. rangkaian clock Rangkaian clock menggunakan kristal sebagai komponen utama yang terhubung pada pin 9 (XTAL1) dan pin 10 (XTAL2) serta dihubungkan dengan dua buah kapasitor sebesar 33 pF. Kristal berfungsi sebagai komponen penghasil clock oscillator yang digunakan untuk menentukan kecepatan dalam 1 cycle pengolahan data pada mikrokontroler ATMega8. Mikrokontroler AVR ATMega8 memiliki arsitektur RISC 8 bit. Semua instruksi dikemas dalam kode 16-bit (16bits word) dan sebagian besar instruksi dieksekusi dalam satu langkah (step), berbeda dengan instruksi MCS51 yang membutuhkan 12 langkah. Maka apabila kristal yang digunakan 11.0592 Mhz, lamanya pengolahan data 1 cycle adalah 90,422 ns. Gambar 3.6. aliran arus dan perubahan tegangan pada reset otomatis 3-5 Reset dapat dilakukan secara otomatis saat power diaktifkan (Power On Reset). Gambar 3.6. merupakan gambar rangkaian reset yang bekerja secara otomatis saat sumber daya diaktifkan. Pada saat catu daya diaktifkan, maka kapasitor C1 sesuai dengan sifat kapasitor akan terhubung singkat sehingga rangkaian ekivalennya tampak pada gambar a. Arus mengalir dari Vcc langsung ke kaki RESET (pin 1) sehingga kaki tersebut berlogika 1. Kemudian kapasitor terisi hingga tegangan pada kapasitor (Vc) yaitu tegangan antara Vcc dan titik antara kapasitor C1 dan resistor R2 mencapai Vcc, sehingga tegangan pada R2 atau tegangan RESET akan turun menjadi 0 dan kaki RESET akan berlogika 0 (gambar b). Gambar 3.7. rangkaian PWM Pada aplikasi tegangan input terhubung pada pin 27 (ADC4) kemudian hasil keluaran konversi 10 bit terhubung pada register OCR1AH dan OCR1AL. AVCC (sumber tegangan ADC) dihubungkan dengan VCC dan tegangan referensi ADC 3-6 (AREF) dihubungkan dengan VCC sehingga tegangan referensi ADC adalah 5 Volt. Keluaran sinyal PWM terletak pada pin 15 (OC1A). Ketika nilai TCNT1 sama dengan nilai 10 bit pada OCR1AH dan OCR1AL maka output pada OC1A akan berlogika satu saat mencacah ke atas sebaliknya ketika nilai TCNT1 sama dengan nilai 10 bit pada OCR1H dan OCR1L maka output pada OC1A akan berlogika nol saat mencacah ke bawah. Keluaran dari OC1A dihubungkan dengan basis dari sebuah transistor NPN 9013, dengan mengubah-ubah arus basis transistor bekerja seperti sebuah saklar. Jika arus basis lebih besar atau sama dengan IB(sat), titik kerja Q berada pada ujung atas dari garis beban. Transistor terhubung singkat antara kolektor dan emiter, maka idealnya tegangan output jatuh menjadi nol. Dalam keadaan ini, transistor kelihatan seperti sebuah saklar yang tertutup. Sebaliknya jika arus basis nol, transistor bekerja pada ujung bawah dari garis beban seperti sebuah saklar yang terbuka, dengan tidak adanya arus yang melalui tahanan kolektor maka tegangan output sama dengan 15 V. Dalam hal ini, transistor bekerja sebagai sebuah saklar dengan penguatan inverting 3 kali. Output dari kolektor kemudian masuk ke dalam buffer. Buffer adalah rangkaian dengan impedansi input Rin sangat tinggi dan impedansi output Rout sangat rendah. Karena adanya umpan balik antara output dengan input inverting maka: Vout = Vin (1) 3-7 Dapat juga dikatakan bahwa tegangan output Vout mengikuti tegangan input Vin atau sebagai voltage follower. Dengan Rin >> Rout dan Vin = Vout maka dapat disimpulkan bahwa arus output (Iout) akan lebih besar dari arus input (Iin) yang mengakibatkan daya output (Pout) lebih besar dari daya input (Pin). Ini menunjukkan bahwa buffer berfungsi untuk menaikkan level daya. Keluaran dari buffer masuk ke salah satu kaki potensiometer 10 kΩ. Dengan tegangan masukan sebesar 15 Volt, potensiometer multiturn ini akan berfungsi sebagai pembagi tegangan yang tegangan keluarannya dapat diatur berdasarkan besarnya hambatan. Tegangan keluaran kembali masuk ke buffer yang kedua sebelum digunakan untuk mengatur arus pada catu daya SM-7020. 3.1.5 Modul Serial Komponen yang dipakai untuk berkomunikasi secara serial dengan komputer adalah MAX 232 yang dihubungkan dengan mikrokontroler dan komputer dengan rangkaian berikut : 3-8 Gambar 3.8. rangkaian serial MAX 232 sebuah komponen yang dapat menyesuaikan level tegangan rangkaian antarmuka dan memenuhi semua spesifikasi EIA-RS-232 E dan V.8. MAX 232 hanya membutuhkan sebuah tegangan +5 V tidak seperti komponen antar muka serial lainnya yang memerlukan tegangan +12 V karena di dalam IC MAX 232 telah terintegrasi voltage doubler dan voltage inverter maka satu buah chip ini juga dapat menghasilkan tegangan ±10 V yang dapat digunakan untuk menyuplai komponen lainnya namun dengan daya yang terbatas. Untuk keperluan tersebut, maka diperlukan beberapa kapasitor eksternal yang dipasangkan pada komponen ini. Simbol R dan T pada gambar tersebut masing-masing menunjukkan bahwa MAX 232 berfungsi sebagai receiver dan transmitter sinyal dari dan ke komputer. Jadi pin Rout dihubungkan ke pin RXD mikrokontroler dan pin Tin ke pin TXD sedangkan pin Tout dihubungkan ke pin 2 (RX) dari DB9 dan pin Rin ke pin 3 (TX) dari DB9. Fungsi-fungsi pin adalah seperti pada tabel berikut : Tabel 3.1. fungsi pin-pin DB9 Pin Nama Keterangan 2 RX Data keluar 3 TX Data masuk 5 GND GND 7 CTS Handshake keluar 8 RTS Handshake masuk 3-9 Dalam aplikasinya, pin 5 dari DB9 dihubungkan ke GND serta pin 7 dan 8 dapat dihubungkan untuk handshaking dengan komponen MAX 232 dipakai dalam sistem ini sebagai komponen antar muka serial antara mikrokontroler dan PC dengan menggunakan protokol RS232. Pemakaian MAX 232 ini tidak mempengaruhi baudrate dari PC. 3.1.6 Modul sensor dan penguat awal Sensor Efek Hall dari LakeShore digunakan sebagai pendeteksi medan magnet. Sensitivitasnya dapat mencapai 0.93 mV/kGauss dan sumber arus untuk sensor Efek Hall mencapai 100 mA (data diperoleh dari datasheet sensor). Oleh karena itu, digunakan catu daya sebesar 5 Volt dengan resistor pembatas arus sebesar 47 Ω sehingga menghasilkan arus sekitar 100 mA. Rangkaian sensor dapat dilihat pada gambar berikut. Gambar 3.9. rangkaian sensor 3-10 Penguat awal digunakan untuk menguatkan sinyal yang diperoleh dari sensor. Rangkaian penguat awal terdiri dari sebuah penguat inverting dan sebuah buffer. Penguat inverting yang digunakan memiliki penguatan (gain) yang dapat diatur sebesar : Gain = 1 + RV RL (2) Rangkaian penguat awal dapat dilihat pada gambar berikut. Gambar 3.10. rangkaian penguat awal 3.2 Perancangan Perangkat Lunak Sistem kerja dari alat yang akan dirancang dan direalisasikan dapat dilihat pada flowchart pada gambar 3.11. 3-11 Gambar 3.11. cara kerja sistem Perancangan perangkat lunak pada sistem meliputi 2 bagian, yaitu perancangan perangkat lunak pada mikrokontroler (pembacaan sensor, ADC, PWM, interrupt, penghitungan, dan tampilan) dan perangkat lunak pada PC. Aplikasi perangkat lunak pada mikrokontroler berfungsi melakukan pengontrolan terhadap semua perangkat keras yang terhubung pada mikrokontroler, dengan adanya perangkat lunak tersebut memudahkan pengguna dalam perubahan metode pengontrolan karena sebagian besar dilakukan pada sisi perangkat lunak. Aplikasi perangkat lunak pada mikrokontroler dirancang menggunakan bahasa 3-12 pemograman assembly. Untuk perancangan aplikasi perangkat lunak pada PC digunakan bahasa pemograman tingkat tinggi Visual Basic 6.0. Aplikasi pada PC merupakan aplikasi antarmuka pengguna dimana pengguna dapat melakukan pengontrolan terhadap alat yang dirancang dan melakukan pengolahan data hasil pengukuran melalui perangkat lunak pada PC tersebut. 3.2.1 Spesifikasi perangkat Lunak Untuk mempermudah dalam perancangan perangkat lunak, maka harus ditentukan terlebih dahulu spesifikasi dan batasan dari perangkat lunak yang dirancang. Adapun spesifikasi dan batasan perangkat lunak adalah: 1. Untuk perangkat lunak pada mikrokontroler ATMega8 digunakan bahasa pemograman Assembly menggunakan AVR Studio 3.55. 2. Perangkat lunak pada mikrokontroler melakukan pengontrolan terhadap perangkat keras sesuai dengan permintaan aplikasi perangkat lunak pada PC. 3. Perangkat lunak disimpan pada memori flash internal dari mikrokontroler. 4. Perangkat lunak pada PC dibangun menggunakan bahasa pemograman Visual Basic 6.0. 5. Perangkat lunak pada PC melakukan pengontrolan terhadap fungsi dari power supply SM 7020 D dan menerima data hasil pengukuran dari modul sensor serta menampilkannya. 3-13 3.2.2 Perancangan perangkat lunak pada PC Flowchart aplikasi user interface pada PC: Start Aktifkan komunikasi serial Input perintah pada mikrokontroler Menampilkan hasil pengukuran Ya Tampilkan hasil pengukuran ? Tidak Set Current ? Ya Mengirimkan permintaan current Tidak Reset sistem ? Ya Proses reset sistem Tidak Non-aktifkan komunikasi serial end Gambar 3.12. Flowchart aplikasi user interface pada PC. Pada gambar 3.12 dapat dilihat flowchart program aplikasi user interface pada PC, penjelasan dari flowchart sebagai berikut, pada saat aplikasi mulai dijalankan maka program akan mengaktifkan komunikasi serial dengan konfigurasi baudrate 9600, 8 bit data dan 1 stop bit. Selanjutnya program akan 3-14 meminta user untuk memasukkan perintah, baik berupa set current, tampilkan pembacaan sensor, maupun proses reset sistem. Tampilan program aplikasi user interface pada PC : Gambar 3.13. tampilan program aplikasi user interface pada PC 3.2.3 Perancangan perangkat lunak pada mikrokontroler. Pada gambar 3.14 dapat dilihat flowchart dari perangkat lunak mikrokontroler. 3-15 Gambar 3.14. flowchart perangkat lunak dumb slave 3-16 Berdasarkan flowchart pada gambar 3.14 dapat dijelaskan proses jalannya program pada mikrokontroler sebagai berikut, pada saat program di mikrokontroler diaktifkan maka program akan melakukan inisalisasi terhadap variable, stack pointer, port, ADC, inisialisasi komunikasi serial, inisialisasi timer1, timer2 dan interrupt. Sementara itu, program akan membangkitkan timer2. Apabila nilai timer2 melimpah maka program akan mengaktifkan interupsi untuk mengambil data pembacaan sensor secara otomatis. Hasil pembacaan berupa 4 buah data. Sebuah data terbaru menggantikan data terlama. Selanjutnya program akan menunggu paket perintah dari PC, apabila paket perintah diterima maka program akan melakukan pengecekan terhadap paket perintah tersebut, apabila paket perintah tersebut valid. Jika paket tersebut valid, maka proses berikutnya akan dilanjutkan. Perintah dianggap valid apabila isi dari paket perintah tersebut sesuai dengan persyaratan. Setelah itu program akan menterjemahkan paket perintah yang diterima. Jika paket perintah merupakan perintah set current maka byte sisa akan diubah menjadi bilangan biner untuk input PWM, sementara itu jika paket perintah merupakan perintah membaca sensor maka mikrokontroler akan membaca merata-ratakan 4 buah data hasil pembacaan sensor, mengubahnya menjadi BCD untuk kemudian dikirimkan ke PC dan ditampilkan. 3-17