BAB 3 PERANCANGAN ALAT DAN PROGRAM
Sistem akuisisi data ekonomis berbasis komputer atau personal computer (PC) yang dibuat terdiri dari beberapa elemen-elemen sebagai berikut : •
Sensor, yang merupakan komponen pengubah parameter fisis menjadi sinyal listrik. Misalnya, sensor suhu LM35, Light Dependent Resistor (LDR), dan lain sebagainya.
•
Arduino Uno, yang berfungsi sebagai unit pemproses data dari sensor dan mengubah nilai data yang masuk dari suatu input agar diukur, diolah, dan ditransmisikan ke output ke dalam bentuk digital.
•
Software LabVIEW, sebagai graphical user interface (GUI) yang akan menampilkan hasil pengukuran dan pemprosesan akuisisi data pada komputer.
•
Universal
Serial
Bus
(USB),
merupakan
sistem
antar-muka
yang
menghubungkan Arduino dengan komputer (PC) dalam bentuk data serial.
Gambar 3.1 Contoh aplikasi akusisi data menggunakan Arduino dan LM35
31
3.1 Sensor 3.1.1
Sensor suhu LM35 Sensor suhu LM35 dapat digunakan sebagai salah satu masukan bagi Arduino
Uno agar dapat diproses menjadi suatu sistem akuisisi data. Dalam perancangan dan pengujian sistem akuisisi data ekonomis dengan LabVIEW dan Arduino ini digunakan LM35 sebagai salah satu input nya. Pin Vcc dari LM 35 dihubungkan ke catu daya pada pin power 5 volt yang terdapat pada Arduino Uno, pin GND dihubungkan ke pin GND power Arduino Uno dan pin Vout yang menghasilkan tegangan analog hasil pengindera suhu yang dihubungkan ke pin A1 (Analog In) pada Arduino Uno.
Gambar 3.2 Bentuk fisik sensor LM35DZ
LM35 yang digunakan adalah sensor suhu produk National Semiconductor yang mempunyai akurasi tinggi. Outputnya berupa tegangan analog dan memiliki jangkauan pengukuran -55ºC hingga +150ºC dengan akurasi ±0.5ºC. Tegangan output adalah 10mV/ºC.
32
Output sensor suhu LM35 dapat langsung dihubungkan ke port mikrokontroler yang memiliki ADC atau dalam hal ini dengan menggunakan Arduino Uno. Sebab, Arduino pun memiliki port ADC (analog input) sebanyak 6 buah. Analog input pada Arduino memiliki resolusi 10-bit, yang dapat memberikan keluaran 2^10 = 1024 nilai diskrit. Bila digunakan catu 5V DC, resolusi yang dihasilkan adalah 5000mV/1024 = 4.8mV. Karena LM35 memiliki resolusi output 10mV/ºC, maka resolusi pembacaan suhu yang dibuat dengan Arduino adalah berada pada jangkauan 10mV/4.8mV ~ 0.5ºC. Pada aplikasi akuisisi data ini, LM35 akan dihubungkan secara langsung ke pin Analog In (A1) Arduino Uno. Namun, apabila dalam proses akuisisi data digunakan lebih dari satu sensor LM35 maka sebaiknya digunakan rangkaian twisted pair agar data yang diperoleh saat proses akuisisi data berlangsung dapat terukur lebih stabil.
Gambar 3.3. Rangkaian 2 buah LM35 yang terkoneksi dengan Arduino
33
3.1.2
Light Dependent Resistor (LDR) Light Dependent Resistor (LDR) merupakan salah satu komponen elektronika
yang dapat berubah resistansinya ketika mendeteksi perubahan intensitas cahaya yang diterimanya, sehingga LDR dapat juga digunakan sebagai sensor cahaya. Ketika mendapat cahaya, maka hambatan pada LDR menjadi kecil, sebaliknya ketika tidak mendapat cahaya, maka hambatan LDR semakin besar. Pada umumnya LDR lebih sering digunakan sebagai detektor cahaya dan saklar on-off otomatis berbasis cahaya. Contoh aplikasinya biasa digunakan dalam lampu taman dan lampu jalan, besar-kecilnya intensitas cahaya yang diterima LDR akan mengaktifkan lampu untuk mati (off) pada siang hari dan akan menyala (on) pada malam hari.
Gambar 3.4 Bentuk fisik Light Dependent Resistor (LDR)
Pada aplikasi alat akuisisi data ini, LDR digunakan untuk mengetahui tingkat intensitas cahaya. Besarnya intensitas cahaya yang diterima LDR akan ditampilkan oleh LabVIEW. Untuk menghasilkan sinyal analog, LDR terhubung seri dengan sebuah resistor 10 KΩ yang dijadikan rangkaian pembagi tegangan 5 VDC. Dari
34
susunan rangkaian tersebut, tegangan pada sinyal analog akan bervariasi tergantung pada nilai LDR. Dengan kata lain, intensitas cahaya yang mengenai permukaan LDR akan memperngaruhi output dari pembagi tegangan tersebut. Kemudian pada keluaran (output) LDR akan dikoneksikan secara langsung ke pin Analog In (A2) Arduino Uno.
Gambar 3.5. Rangkaian LDR yang terkoneksi dengan Arduino
3.1.3
Potensiometer Potensiometer adalah resistor tiga terminal dengan sambungan geser yang
membentuk pembagi tegangan dapat disetel. Jika hanya dua terminal yang digunakan (salah satu terminal tetap dan terminal geser), potensiometer berperan sebagai resistor variabel. Potensiometer biasanya digunakan untuk mengendalikan peranti elektronik seperti pengendali suara pada radio. Potensiometer yang dioperasikan oleh suatu
35
sistem atau mekanisme mekanis dapat pula dianalogikan sebagai sensor, misalnya sebagai sensor posisi pada sistem mekanis lengan robot. Pada aplikasi alat akuisisi data ekonomis ini, potensiometer akan dirangkaikan ke Arduino Uno dengan mengkoneksikan secara langsung ke pin Analog In (A0). Dari rangkaian ini, hasil keluaran potensiometer yang berupa nilai tegangan DC, akan ditampilkan pada front panel LabVIEW.
Gambar 3.6 Rangkaian Potensiometer yang dihubungkan ke Arduino
3.2 LabVIEW Interface For Arduino (LVIFA) LabVIEW Interface for Arduino (LVIFA) merupakan toolkit yang menghubungkan antarmuka mikrokontroler Arduino dengan LabVIEW. Dengan mengintegrasikan LabVIEW dan toolkit ini, proses kontrol atau akuisisi data dari
36
mikrokontroler Arduino ke LabVIEW menjadi lebih mudah. Sebab, tidak lagi diperlukan proses inisialisasi alat atau pembuatan driver untuk menjembatani LabVIEW dan Arduino. Baris kode-kode program sketch pada IDE Arduino berfungsi sebagai engine I/O yang menghubungkan LabVIEW dan Arduino melalui koneksi serial USB. Hal ini membuat proses komunikasi dan sinkronisasi antara LabVIEW dan Arduino menjadi lebih cepat dan efisien. Dan tidak diperlukan lagi pemprograman inisialisasi pin atau terminal Arduino pada struktur kode program LabVIEW. Sebab, bila sketch sudah aktif dan terkoneksi dengan baik saat proses upload ke unit mikrokontroler Arduino telah berhasil, maka tidak lagi diperlukan inisialisasi I/O antarmuka mikrokontroller Arduino. Pada gambar 3.7 terlihat tampilan LabVIEW Interface For Arduino (LVIFA) yang telah aktif (berstatus ready) yang merupakan bagian dari software Virtual Instrument Package Manager (VI Package Manager). Virtual Intrument Package Manager (VIPM) sendiri pada dasarnya merupakan sebuah software add on atau software yang berisi kumpulan toolkit atau aplikasi yang dibuat untuk menghubungkan perangkat-perangkat elektronika pihak ketiga (third party) ke dalam software LabVIEW. Begitu banyak aplikasi yang ada pada VI Package Manager untuk dapat berkomunikasi dengan software LabVIEW. Namun, dikarenakan pada pembuatan alat akuisisi data ini hanya menggunakan Arduino, maka aplikasi yang digunakan cukup hanya LabVIEW Interface for Arduino (LVIFA) saja. Untuk mengetahui apakah LabVIEW telah terinstal toolkit LVIFA dengan benar, dapat dilakukan dengan memeriksa paket Arduino yang ada pada palet Controls dan dipalet Function seperti yang ditunjukan pada gambar 3.9.
37
Gambar 3.7. LIFA Toolkit yang ada pada VI Package Manager (VIPM)
Setelah ikon-ikon dari toolkit LabVIEW Interface for Arduino (LVIFA) telah dipastikan terinstal pada LabVIEW, tahap berikutnya adalah mengupload kode Firmware LIFA ke dalam Arduino. Proses upload ini hanya dilakukan sekali, dan kemudian untuk seterusnya, Arduino tidak perlu lagi diprogram, cukup dilakukan pemprograman di block diagram LabVIEW saja. Kode LVIFA Firmware ini dapat diperoleh di direktori: C:\Program Files\National Instruments\LabVIEW2011\vi.lib\LabVIEW Interface for Arduino\Firmware\LVIFA_Base\LVIFA_Base
38
Kemudian, kik 2x file LVIFA_Base, maka akan membuka sketch Arduino. Kompilasikan file tersebut dengan menekan tombol Verify. Setelah selesai, tekan tombol Upload. Namun, harus dipastikan dahulu bahwa board Arduino telah terkoneksi dengan komputer sebelum tombol Upload ditekan. Setelah pesan Done Uploading keluar, maka kode firmware tersebut telah berhasil terinstal dengan baik dipapan rangkaian Arduino. Namun, dapat juga menggunakan cara dengan membuka aplikasi IDE Arduino dahulu, setelah itu klik menu File > Open.. dan selanjutnya arahkan ke direktori tempat file kode LVIFA Firmware diletakan.
Gambar 3.8 Letak file kode LVIFA Firmware untuk driver Arduino
39
3.3
Pemprograman LabVIEW Dikarenakan LabVIEW merupakan bahasa pemprograman grafis yang
memvisualisasikan suatu instrumen maka bentuk program yang dibuat dalam software LabVIEW dinamakan sebagai suatu Virtual Instrument (VI). Dasar dan struktur pemprograman LabVIEW pada masing-masing VI terdiri atas beberapa istilah khusus, yaitu: •
Front Panel adalah tampilan program yang digunakan untuk berinteraksi dengan pengguna. Objek-objek pada front panel akan secara otomatis memiliki representasi ikonnya di Block Diagram, khususnya untuk objekobjek yang membawa data, baik data yang masuk dari pengguna ke program maupun data yang keluar dari program ke pengguna.
•
Block Diagram merupakan tempat pembuatan kode program. Pembuatan program disini dilakukan dengan cara menempatkan beberapa node dan menghubungkannya satu sama lain.
•
Node adalah semua objek di jendela Block Diagram yang memiliki input atau output dan melakukan operasi tertentu ketika dijalankan, termasuk didalamnya subVI, terminal, struktur dan fungsi.
•
subVI merupakan suatu subrutin dalam bahasa pemprograman teks, yaitu sebuah VI didalam VI. SubVI ini berbentuk ikon, atau kotak kecil dengan gambar yang unik didalamnya, dengan kaki input berada disebelah kiri dan kaki output berada disebelah kanan.
40
•
Control adalah semua objek di Front Panel yang memasukan data dari pengguna ke program. Disebut juga Terminal Input. Contoh control ialah knob, tombol, sakelar, dan alat input lainnya.
•
Indicator adalah semua objek di Front Panel yang mengeluarkan atau menampilkan data dari program ke pengguna. Disebut juga Terminal Output. Contohnya ialah bentuk visualisasi termometer, intensitas cahaya, data, suara dan informasi lainnya. Indicator juga dapat berupa grafik, LED dan display lainnya.
•
Wire atau kawat digunakan untuk menghubungkan ikon-ikon sekaligus untuk menunjukan aliran data dan tipe data suatu VI dengan VI yang lainnya.
3.3.1 Pemprograman Front Panel Front Panel digunakan untuk berinteraksi dengan pengguna pada saat program
LabVIEW sedang
berjalan.
Pengguna dapat mengontrol program,
mengubah input, dan memantau data secara real-time.
41
Gambar 3.9 Menu ikon yang ada pada front panel LabVIEW
Front panel merupakan user interface dari program VI yang terdiri atas beberapa ikon control dan indicator. Pada perancangan sistem yang dibuat, front panel digunakan sebagai Graphical User Interface (GUI) sehingga tidak banyak pemprograman disini. Umumnya, pada front panel hanya diperlukan penyusunan tata letak hasil visualiasasi instrumen dari kode program yang telah dilakukan pada block
42
diagram. Dengan kata lain, proses pemprograman akan dilakukan pada block diagram.
Gambar 3.10 Tampilan user interface untuk akuisisi data 3 sensor
3.3.2 Pemprograman Block Diagram Block diagram berisi kode-kode yang digunakan untuk pemprograman LabVIEW yang berupa ikon-ikon grafis. Pada block diagram, setiap obyek yang tampil pada front panel akan berbentuk ikon yang merupakan bagian dari fungsi dan
43
struktur kode program LabVIEW. Pada block diagram segala terminal yang saling terkoneksi satu sama lain akan dihubungkan oleh wire (kawat atau kabel).
Gambar 3.11. Menu ikon yang ada pada Block Diagram LabVIEW
44
Untuk pembuatan program alat akuisisi data ini, digunakan beberapa ikon yang diambil dari menu palet Arduino. Baik itu berupa sensor, logika Boolean, dan ikon program Arduino itu sendiri. Untuk lebih jelasnya dapat dilihat pada gambar 3.9 dan gambar 3.11. Sedangkan tampilan hasil pemprograman yang dilakukan pada block diagram untuk proses akuisisi data pada 3 jenis masukan analog yang berbeda dapat dilihat pada gambar 3.12. Untuk membuat program ini hanya perlu klik kanan mouse lalu men-drag and drop ikon-ikon yang ada pada lembar kerja block diagram saja. Lalu letaknya disusun sesuai alur yang diinginkan pada sebuah struktur proses program while loop. Kemudian, hubungkan ikon-ikon program tersebut dengan wire.
Gambar 3.12 Program LabVIEW untuk akuisisi data 3 sensor
45
Seperti yang dapat dilihat pada gambar 3.12, ada beberapa subVI ataupun objek Control dan Indicator yang digunakan dalam program aplikasi LabVIEW untuk akuisisi data 3 sensor tersebut. Berikut ini adalah penjelasan fungsi dari subVI dan ikon program LabVIEW yang digunakan: •
LIFA Init. SubVI ini digunakan untuk mengatur parameter komunikasi dengan Arduino, termasuk port yang digunakan (USB/Serial), tipe board Arduino (Uno), kemudian mengkoneksikannya.
•
LIFA Close. Kebalikan dari LIFA Init, LIFA Close digunakan untuk menutup komunikasi dengan Arduino. Dan juga terdapat fungsi pesan untuk pendeteksi kesalahan (error).
•
LIFA Analog Read Pin. SubVI ini digunakan untuk membaca nilai tegangan analog (0-5V) pada kaki analog Arduino yang sesuai dengan Analog Input Pin. Dalam hal ini, LIFA Analog Read Pin telah dimodifikasi agar dapat difungsikan sebagai input Potensiometer (pin analog A0) dan juga sensor LM35 untuk pendeteksian suhu (pin analog A1).
•
LIFA Photocell Read. SubVI ini digunakan untuk mengukur intensitas cahaya menggunakan LDR dengan mengukur input di kaki pin analog (A2).
Kemudian, semua subVI, objek Control ataupun Indicator dihubungkan dengan wire (kawat) hingga menjadi sebuah kesatuan program LabVIEW dan dapat digunakan untuk proses akusisi data berdasarkan input yang diterima oleh Arduino.
46