BAB II LANDASAN TEORI 2.1 Pengertian Arduino Arduino Uno adalah sebuah perangkat elektronik yang dikeluarkan oleh sebuah perusahaan bernama Arduino yang berisikan sebuah Chip Mikrokontroller berjenis AVR keluaran Atmel dan bersifat Open Source. Arduino uno menurut situs resminya www.arduino.cc didefinisikan sebagai sebuah platform elektronik terbuka (opon source) berbasis pada hardware dan software yang fleksibel dan mudah digunakan untuk para seniman, desainer, hobbies dan setiap orang yang tertarik dalam membuat objek atau lingkungan interaktif. Arduino Uno ini dirancang untuk mudah merasakan Keadaan lingkungan sekitarnya dengan bantuan sensor-sensor yang terhubung ke pin-pin yang telah didesain sebagai input dan data diberikan respon gerakan, cahaya, suhu, tegangan dan data dengan bantuan Led, Motor maupun LCD. Untuk menulis program pada board Arduino dibutuhkan software dan nama Arduino juga dipakai untuk menamai bahasa dan software pemrogramannya, serta Lingkungan pemrograman atau disebut juga Intergrated Development Environment (IDE). IDE adalah sebuah software untuk menulis program. 6 http://digilib.mercubuana.ac.id/ 7 Kelebihan Arduino dari platform hardware mikrokontroler lain adalah : 1. IDE Arduino merupakan multiplatform, yang dapat dijalankan berbagai sistem operasi, seperti Windows, Macintosh, dan Linux.’ 2. IDE Arduino dibuat berdasarkan pada IDE Processing, yang mempunyai kelebihan dalam hal kesederhanaannya sehingga mudah digunakan. 3. Pemrograman Arduino menggunakan kabel yang terhubung dengan port USB, bukan port serial. Hal ini sangat berguna karena komputer zaman sekarang jarang sekali yang mempunyai port serial. 4. Arduino adalah hardware dan software yang bersifat open source, semua orang dapat mengunduh software dan gambar rangkaian Arduino tanpa harus membayar kepada pembuat Arduino. 5. Biaya pembuatan hardware cukup murah, sehingga tidak terlalu yang pada akhirnya menuntut penggantian komponen penyusunnya. 6. Proyek Arduino dikembangkan dalam lingkungan pendidikan, sehingga bagi pemula pun akan lebih cepat dan mudah dalam mempelajarinya. 7. Arduino memiliki banyak pengguna diseluruh dunia, tergabung dalam komunitas diinternet sehingga siap membantu apabila kita menemui kesulitan dalam mempelajarinnya. http://digilib.mercubuana.ac.id/ 8 2.2 Konfigurasi dan Tampilan Arduino Sebelum membahas lebih dalam tentang Arduino, harus kita ketahui bahwa Arduino memiliki berbagai macam versi, untuk lebih jelasnya dapat dibaca di situs resmi Arduino, http://arduino.cc/en/Main/Products?from=Main.Hardware. Sifat Arduino yang open source juga membuat banyak pabrikan membuat produk yang serupa dengan Arduino, yang dipasarkan lebih kita kenal dengan istilah cloning. Beberapa versi yang cukup banyak tersedia dipasaran lokal, diantaranya adalah versi Arduino Duemilanove yang juga disebut sebagai Arduino 2009, versi Arduino Uno yang juga disebut Arduino 2010, dan Arduino mega yang memiliki kapasitas memori dan kaki I/O yang lebih banyak. Imbasnya, versi Arduino Mega yang mempunyai jumlah I/O lebih banyak harganya yang lebih mahal dari pada 2 (dua) versi Arduino yang lain. Arduino Diecimila, pun Duemilanove Arduino Uno merupakan penyempurna Arduino merupakan penyempurna Arduino Duemilanove. Sehingga, belakangan ini ketersedian versi Arduino Diecimila dan Arduino Duemilanove dipasaran sudah mulai berkurang, banyak distributor ataupun penjual yang sudah tidak menyediakan versi Arduino tersebut karena menurut mereka versi Arduino tersebut sudah discontinue. Versi Arduino Uno saat ini masih tersedia dipasaran lokal walaupun sekarang sudah tersedia juga versi Arduino Leonardo. Bahkan dipasaran internasional sudah tersedia versi Arduino terbaru, Arduiono http://digilib.mercubuana.ac.id/ 9 Due yang merupakan versi Arduino pertama yang didukung oleh ARM 32 bit. Versi Arduino Due mempunyai fitur yang sangat mumpuni, yakni terdiri dari 54 pin digital I/O (12 dapat digunakan untuk PWM), 12 pin analog input 12-bit, 2 pin DAC 12-bit (output analog), 4 UART (hardware serial port) dan headers untuk ISCP dan JTAG. Terdapat anatrmuka USB 2.0 onboard yang memungkinkan untuk memasakng kamera. Keyboard, dan telepon genggam (mendukung protokol Android ADK 2012). 2.2.1 Arduino Uno Penulis menggunakan versi Arduino Uno cloning, sehingga yang akan dibahas tentu saja Arduino Uno. Karena versi Arduino Uno merupakan penyempurna Arduino Duemilanove, maka banyak kesamaan diantara keduanya. Perbedaan yang paling signifikan terdapat pada IC konverter USB ke serialnya. Apabila Arduino Duemilanove menggunakan IC FTDI, maka Arduino Uno menggunakan IC ATMega 16U (Arduino Uno R3) atau ATMega 8U (Arduino Uno R2) sebagai konverter USB ke serialnya. Perbedaan Arduino Uno R2 dan R3 adalah jenis IC konverter USB ke serialnya. Arduino Uno R2 pada board-nya terdapat Pulling resitor antara pin HWB pada ATMega 8U dan ground, yang akan mempermudah kita agar bisa masuk ke mode DFU (Device Firmware Upgrade) atau pembaruan firmware dari ATMega8U. ATMega8U dalam Arduino berfungsi sebagai jembatan antara port USB komputer dengan seral port prosesor utama dari Arduino, ATMega328. ATMega8U menjalankan suatu software yang dinamakan http://digilib.mercubuana.ac.id/ 10 firmware, itu artinya kita tidak dapat mengubah software tersebut seenak kita sendiri, karena cip IC tersebut sudah terprogram terkecuali melalui sebuah protokol. khusus yang dinamakan DFU (Device Firmware Update). Keterangan lebih lengkap di, http://arduino.cc/en/Hacking/DFUProgramming8U2. Arduino Uno R3 sebagai penyempurna Arduino R2 memakai ATMega16U sebagai cip pengubah USB ke serialnya. Fitur – fitur terbaru yang diusung antara lain : 1. 1.0 pinout : ditambahkan pin SDA dan SCL dekat dengan pin AREF, juga ditambahkan 2 pin dekat pin RESET. IOREF yang memungkinkan shield untuk mengadaptasi tegangan yang disediakan oleh board. Ke depan, shield akan kompatibel dengan board yang memakai AVR, yang bekerja dengan 5 V dan dengan Arduino Due (Arduino terbaru) yang memakai tegangan 3.3 V. Pin kedua pin yang tidak tersambung, yang dimaksudkan untuk kegunaan yang akan datang. 2. Sirkuit RESET yang lebih powerful. 3. ATMega16U2 menggantikan 8U2. “Uno” dalam bahasa Italia bermakna satu. Nama tersebut sebenarnya mempresentasikan kehadiran IDE terbaru Arduino saat itu, yakni Arduino Uno dan versi IDE 1.0 akan menjadi referensi untuk versi depan. Uno merupakan USB Arduino board terbaru (pada saat itu) yang http://digilib.mercubuana.ac.id/ 11 dijadikan model referensi bagi platform Arduino berikutnya. Berikut ini adalah gambar bagian – bagian Arduino Uno Gambar 2.1. Bagian – bagian Arduino Uno Tabel 2.1 Bagian – bagian Ardunio Uno No. Keterangan 1 Jack USB 2. Jack Power 3 Prosessor 4 Cip komunikasi / Serial Converter 5 Kristal 16 MHz 6 Tombol Reset 7 LED Power 8 LED TX/RX 9 LED (Terhubung ke pin 13) 10 Pin Power 11 Input Analog 12 Pin TX dan RX 13 Inputs/outputs Digital (Tanda “~” di depan nomor sebagai output untuk PWM. 14 Ground dan pin AREF 15 ICSP untuk ATMega325 16 ICSP untuk antarmuka USB http://digilib.mercubuana.ac.id/ 12 Adapun dimensi dari Arduino Uno : Gambar 2.2 Dimensi Arduino Uno Tabel 2.2 Spesifikasi Arduino Uno Mikrokontroler ATMega 328 Tegangan Kerja 5V Input Tegangan (disarankan) 7 - 12 V Input Tegangan (batas) 6 – 20 V Digital I/O 14 Pin (6 dapat dijadikan output PWM) Analog Input 6 Pin Arus DC per I/O 40 mA Arus DC untuk 3.3 V 50 mA Flas Memory 32 KB (ATMega328) 0.5 KB digunakan untuk Bootloader SRAM 2 KB (ATMega328) EEPROM 1 KB Clock Speed 16 MHz Keterangan : a. Power Arduino Uno dapat beroperasi dengan diberi catu daya melalui koneksi USB atau dengan catu daya eksternal, pemilihannya pun dapat dipilih secara otomatis. Arduino dapat beroperasi dengan http://digilib.mercubuana.ac.id/ 13 catu dayaa eksternal yang bertegangan dari 6-20 volt. Jika diberikan tegangan kurang dari 7V, maka arduino ini mungkin akan menjadi tidak stabil. Jika menggunakan lebih dari 12V, reguler voltage bisa panas dan merusak board. Rentang yang dianjurkan adalah 7 – 12 volt. b. Memori ATMega328 ini memiliki memori sebesar 32KB (0,5 KB dari memori tersebut digunakan untuk bootloader) dan juga memiliki memori sebesar 2 KB dari SRAM dan 1 KB dari EEPROM. c. Input dan Output Masing-masing dari 14 pin digital pada Uno dapat digunakan sebagai input atau output, dengan menggunakan fungsi pinMode (), digitalWrite (), dan digitalRead (). Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki resitor pull-up internal (terputus secara default) dari 20 – 50 kOhms. 2.2.2 Intalasi IDE Arduino di Windows Sekalipun Arduino bisa digunakan diberbagai macam sistem operasi, karena dalam penulisan laporan tugas akhir ini penulis menggunakan sistem operasi Windows, maka hanya akan dibahas sedikit tentang instalasi Arduino di Windows. Software Arduino bisa didapat disitus resmi Arduino secara cuma – cuma. Karena memakai sistem operasi Windows maka berkas yang diunduh harus disesuaikan dengan sistem operasi yang dipakai, versi terbaru pada saat lapaoran ini ditulis adalah versi 1.6.12 (arduino-1.6.12- http://digilib.mercubuana.ac.id/ 14 windows.zip). Setelah proses unduh selesai, kita tinggal menginstal berkas tersebut. Setelah diekstrak, kita dapat langsung menjalankan IDE Arduino dengan mengklik 2 kali pada ikon Arduino yang bertipe Application dan terdapat dalam folder hasil ekstraksi kita sebelumnya. Selanjutnya agar software Arduino bisa berkomunikasi dengan board Arduino melalui kabel USB, maka kita harus menginstal driver USB-nya terlebih dahulu. Gambar 2.3 Kabel USB tipe A-B Langkah – langkah instalasi driver USB Arduino adalah sebagai berikut (penulis menggunakan versi 1.6.12): 1. Hubungkan board Arduino ke port USB komputer melalui kabel ISB, maka pada layar komputer akan muncul jendela Found New Hardware Wizard. Untuk pertanyaan terhubung dengan windows Update, pilih pilihan No, not this time, kemudian pilih Next. 2. Pada jendela berikutnya, pilih pilihan Instal from a list or specifie location, dan kemudian pilih Next. 3. Pada jendela berikutnya, arahkan lokasi pencarian pada folder drivers yang ada di dalam berkas ekstrksi arduino-1.6.12-windows, sampai diperoleh folder UNO. 4. Berikutnya, tekan tombol Next dan tunggu hingga proses instalasi selesai. http://digilib.mercubuana.ac.id/ 15 2.2.3 Lingkungan Pemrograman Arduino Lingkungan pemrograman disebut juga IDE, atau Integrated Development Environment. Seperti disebutkan sebelumnya, kelebihan Arduino adalah pada penggunaan IDE-nya mudah kesederhanaannya, seperti terlihat pada gambar berikut ini. Gambar 2.4 Tampilan IDE Arduino http://digilib.mercubuana.ac.id/ karena 16 Tampak ada enam buah tombol pada toolbar, dengan fungsi masing – masing seperti berikut : Tabel 2.3 Tombol Fungsi pada IDE Arduino Uno No 2.3 Tombol Nama Fungsi Menguji apakah ada kesalahan pada program atau sketch, apabila sudah benar maka sketch akan dikompilasi. 1 Verify 2 Upload 3 New Membuat sketch baru. 4 Open Membuat sketch yang sudah ada. 5 Save Menyimpan Kode sketch. 6 Serial Monitor Mengirimkan kode hasil kompilasi ke board Arduino. Menampilkan data yang dikirimkan dari board Arduino. Pembuatan Program Arduino Sebelum membahas lebih dalam program Arduino secara keseluruhan untuk sistem kendali yang akan dibuat, akan dibahas prinsip dasar dari masing – masing bagian program arduino yang dipakai. 2.3.1 Konsep Dasar Pemrograman Arduino Pemrograman Arduino menggunakan bahasa pemrograman Arduino yang dibangun berbasis bahasa Wiring dan lingkungan pengembangnya (Arduino Environment Development) dibangun berbasis processing. Wiring menurut situs resmi di http://www.wiring.org.co/ merupakan kerangka pemrograman yang bersifat terbuka (open source) yang digunakan untuk memprogram mikrokontroler. http://digilib.mercubuana.ac.id/ Sedangkan 17 Processing menurut situs resminya di https://www.processing.org/, Processing merupakan bahasa pemrograman bersifat terbuka (open source) dan merupakan lingkungan pengembangan yang ditujukan untuk orang – orang yang ingin membuat gambar, animasi, dan interaksi. Processing pada awalnya dikambangkan sebagai perangkat lunak untuk menghasilkan sketchbook dan digunakan untuk mengajarkan dasar – dasar pemrograman komputer dalam konteks visual. Setiap programmer komputer pada awalnya belajar dengan program yang sederhana dan memulai belajar pemrograman dengan menampilkan kalimat “Hello World” di layar monitor. “Hello World” dalam lingkungan komputasi fisik yakni berupa LED (Light Emitting Diode/Dioda emisi cahaya) yang berkedip, nyala dalam waktu tertentu kemudian padam beberapa saat kemudian dan begitu seterusnya. LED (Light Emitting Diode) merupakan indikator berupa lampu kecil yang membutuhkan daya yang kecil untuk menyala. Dipapan Arduino sudah built in LED yang terhubung ke pin 13. Untuk menyalakan LED secara berkedip, diperlukan kode yang cukup sederhana. Hal pertama yang harus dituliskan dalam kodenya adalah menentukan variabel yang mandefinisikan pin Arduino mana yang terhubung dengan LED. Dalam bahasa pemrograman Arduino, variabel ini nantinya akan memakai nomor pin saja, sehingga dengan mudah mengubah nomor pin sesuai kebutuhan. Sebagai contoh , dalam kode untuk LED berkedip ini memakai Interger (dalam Arduino disebut int). int led = 13; http://digilib.mercubuana.ac.id/ 18 Hal kedua yang perlu dilakukan adalah mengkonfirmasi pin yang terhubung ke LED sebagai output. Konfigurasi pin Arduino sebagai output dapat dilakukan dengan fungsi pinMode ( ) yang di letakan dalam fungsi setup ( ). Void setup ( ) { pinMode ( led, OUTPUT ) ; } Untuk menghidupkan dan mematikan LED, dapat menggunakan fungsi digitalWrite ( ). Untuk menghidupkan menggunakan logika HIGH, dan untuk mematikan LED menggunakan logika LOW. Jika hanya menggunakan fungsi digitalWrite dengan logika HIGH dan LOW, maka nyala dan padamnya LED terlalu cepat. Untuk menyelesaikan masalah tersebut, harus menggunakan funsi delay ( ) untuk memperlambat nyala dan padam nya LED. Fungsi delay ( ) dalam bahasa pemrograman Arduino menggunakan satuan milidetik, misalnya menginginkan waktu tunda 1 (satu) detik, maka harus menggunakan delay sebesar 1000. void loop ( ) { digitalWrite ( led, HIGH ) ; delay (1000) ; digitalWrite ( led, LOW ) ; delay (1000) ; } http://digilib.mercubuana.ac.id/ 19 Kode keseluruhan untuk menyalakan dan memadamkan LED adalah sebagai berikut : /* LED berkedip Menyalakan LED selama sedetik, kemudian memadamkan LED Selama sedetik */ // Pin 13 terhubung dengan LED diArduino Int led = 13 ; // nama variabel LED // bagian setup, jalan sekali ketika tombol reset ditekan Void setup ( ) { pinMode ( led, OUTPUT ) ; // setting pin digital sebagai output } //fungsi yang akan terus diulang void loop ( ) { digitalWrite ( led, HIGH ) ; // menyalakan LED delay (1000) ; // tunda 1 detik digitalWrite ( led, LOW ) ; // memadamkan LED delay (1000) ; // tunda 1 detik } Keterangan kode program : Keteranagan program dapat dijadikan komentar dengan cara menambahkan tanda “ /* ” dan diakhiri tanda “ */ ” jika yang ingin dijadikan komentar lebih dari satu baris, sebagai contoh dari program di ats adalah baris ke -1 sampai baris ke -4 selain itu, komentar dapat diperoleh dengan cara menambahkan tanda “ // ” jika hanya 1 (satu) baris yang akan dijadikan komentar. Sebagai contoh yakni baris ke -5,-8,dst. Komentar tidak akan dieksekusi oleh program Arduino karena dianggap bukan kode program, http://digilib.mercubuana.ac.id/ 20 Kode LED berkedip ini merupakan kode dasar yang nantinya dapat dipakai untuk menghidupkan relay shield yang akan digunakan dalam sistem kendali yang akan dibuat. 2.3.2 Konsep Komunikasi Serial Arduino Seperti disinggung di Bab II, komunikasi serial yang dipakai untuk komunikasi Arduino ke komputer dan sebaliknya, dilakukan oleh kombinasi pin RX dan TX di masing – masing bagian, yakni di Arduino dan komputer itu sendiri. Karena tuntunan kemajuan zaman, dimana port serial standar yang berbasis RS 232 semakin jarang ditemui dikomputer yang beredar dipasaran, Arduino memakai port USB ( Universal Serial Bus ). Walaupun demikian sebenarnya komunikasi serial masih berlangsung, hanya saja dalam komunikasi serial tersebut memulai sebuah rangkaian terintegrasi yang berfungsi mengkonversi data RX dan TX mikrokontroler Arduino ke mode USB. Gambar 2.5 Diagram Komuikasi Serial Arduino – Komputer Rangkaian konverter serial yang dipakai menggunakan komponen utama berupa IC ATMega8U (Arduino Uno R2) atau ATMega16U2 (Arduino Uno R2). http://digilib.mercubuana.ac.id/ 21 Gambar 2.6 Chip ATMega16u2 sebagai konverter RS-232 Sebelum membahas lebih dalam mengenai konsep pemrograman kominaksi serial, akan lebih baik jika mempelajari konsep pemrograman komunikasi serial. Dan hanya konsep pemrograman pengkodisian yang dipakai saja yang akan dibahas, yakni ada 2 (dua) antara lain if dan if – else, sebagai berikut : 1 If Konsep pemrograman pengkondisian if yang biasanya dengan tanda / operator perbandingan yang terdiri dari : Tabel 2.4 Tanda Operator Perbandingan dan Contoh Pemakaiannya Tanda Misal Keteranagan == X == Y X Sama dengan Y != X != Y X tidak sama dengan Y < X<Y X lebih kecil daripada Y > X>Y X lebih besar daripada Y <= X <= Y X lebih kecil atau sama dengan Y >= X >= Y X lebih besar atau sama dengan Y http://digilib.mercubuana.ac.id/ 22 NB : Di dalam dalam bahasa pemrograman Arduino, tanda operator sama dengan tunggal ( “ = ” ) dan tanda sama dengan ganda ( “ == ” ) mempunyai arti berbeda, jika hanya menggunakan tanda “ = ” maka mempunyai arti bahwa tanda tersebut menyatakan nilai sebuah variabel, misal “ X = 10 ”, maka ini berarti mengeset nilai variabel “ X ” sebesar “ 10 “. Dengan kata lain, menetapkan nilai “ X ” sebesar “ 10 ”, dan biasanya ini diletakkan diawal program atau dibagian deklarasi. Sedangakan tanda sama dengan ganda ( “ == ” ) merupakan tanda dari sebuah perbandingan, artinya tanda ini akan mengecek apakah suatu variabel mempunyai nilai yang sama atau tidak dengan variabel mempunyai nilai yang sama atau tidak dengan variabel yang dibandingkan. Setelah mengerti dan memahami pemakain operator perbandingan, maka dapat kita ketahui cara pemakainnya dalam struktur pemrograman bahasa Arduino, sebagai contoh : if ( suatu_variabel > 50 : { // lakukan sesuatu disini } 1 If – else Konsep pemrograman pengkondisian if – else mempunyai karakteristik yang mirip dengan konsep pemrograman if, yang membedakan adalah pada pemakaian logika if – else ini memungkinkan control yang lebih besar, lebih kemungkinan yang akan dilakukan, dibanding menggunakan banyak jika hanya logika if. Hal ini dimungkinkan karena dalam http://digilib.mercubuana.ac.id/ 23 pemakaian logika if – else dapat dilakukan beberapa tes yang dikelompokkan secara bersamaan. Sebagai contoh, nilai suatu pengukuran dapat dites dan satu tindakan dilakukan jika bernilai 20, tindakan lain akan dilaksanakan jika hasil pengukuran berniali 30 atau lebih besar. Setelah memahami konsep dasar pemrograman pengkondisian if dan if – else, maka kita dapat menjalankan ke konsep pemrograman komunikasi serial, karena dalam pemrograman serial ini juga menggunakan logika pengkondisian if dan if - else. If(input<500){ // aksi A } Else { //aksi B } else dapat memproses logika if yang lain, sehingga logika pengkondisiannya lebih dari satu, dan biasanya pengetesan logika pengkondisian dapat dilakukan secara bersamaan. Prinsip dari logika pengkondisian if – else ini adalah pada setiap pengecekan kondisi, tiap kondisi akan dicek apakah sudah sesuai dengan kondisi yang diinginkan atau belum, jika belum maka akan melanjutkan pengecekan kondisi berikutnya sampai kondisi yang diinginkan ditemukan. Jika sudah ditemukan kondisi yang diinginkan, maka program akan melaksanakan kode program dalam blok kode terkait. Jika pengecekan kondisi yang http://digilib.mercubuana.ac.id/ 24 diinginkan tidak ditemukan, maka program akan melaksanakan program default, program standar selain program yang terdapat pada baris kode if. Logika pengkondisian else – if dapat menjalankan logika pengkondisian dengan jumlah tak terbatas . Dan, perlu diingat, pemakaian logika pengkondisian else – if dapat diakhiri dengan else, namun dapat juga tanpa diakhiri dengan else. if (input < 500) { //laksanakan A } else if (Input >= 1000) { /laksanakan B } else { //laksanakan C } Selanjutnya, logika pengkondisian if dapat dikembangkan dalam konsep pemrograman komunikasi serial di Arduino. Namun, seperti dalam contoh program LED berkedip, dalam deklatasinya harus ditambahkan suatu deklarasi yang berhubungan dengan komunikasi serial, yakni inisialisasi serial. Berikut kode progrman inisialisasi serial yang dimaksud: Serial.begin (9600); Selanjutnya, dalam konsep pemrograman serial terdapat beberapa macam kode instruksi. Namun, tentunya yang akan dibahas lebih dalam hanya yang akan dipakai saja terkecuali begin( ), karena sudah ditulis sebelumnya. Berikut kode instruksi serial program Arduino yang dipakai : http://digilib.mercubuana.ac.id/ 25 Print ( ) Konsep pemrograman serial jenis ini difungsikan untuk mengirim data ke port serial computer dari Arduino dan dikirim sebagai text ASCII yang bisa dibaca manusia. Bentuk dari command ini dapat berbentuk dalam berbagai format. Nomor dikirim menggunakan karakter ASCII untuk setiap digit, float dikirim sebagai digit ASCII yang mirip, dengan acuan standar sebanyak 2 (dua) tempat decimal, byte dikirim sebagai karakter tunggal, dan karakter string dikirim seperti aslinya, Contoh : ‐ Serial.print(78) menghasilkan “78” ‐ Serial.print(1.23456) menghasilkan “1.23” ‐ Serial.print(‘N’) menghasilkan “N” ‐ Serial.print(“Hello world.”) menghasilkan “Hello world.”) Available ( ) Digunakan untuk mendapatkan byte maupun karakter yang tersedia dari serial port yang sebelumnya sudah diterima dan disimpan oleh buffer penerima (berukuran 64 byte), sintaknya : Serial.available ( ) ; read ( ) Seperti namanya, fungsi dari kode program ini adalah untuk membaca data serial yang masuk ke port serial. Mempunyai sintaks sebagai berikut : Serial.read ( ) ; http://digilib.mercubuana.ac.id/ 26 Itulah beberapa kode pemrograman serial yang akan dipakai, jadi secara keseluruhan, kode program bagian serial ini adalah kurang lebih seperti berikut : void setup ( ) { Serial.begin (9600); // inisialisasi program serial } void loop ( ) { if (Serial.available ( ) > 0) { // jika ada data serial Int data = Serial.read ( ); // data = pembacaan data serial } If (data ‘ 1 ‘ ) { // jika data = 1 digitalWrite (led, HIGH); // menyalakan LED Serial.print (“ LED ON “); } If (data ‘ 0 ‘ ) {// jika data = 0 digitalWrite ( led, LOW );//memadamkan LED Serial.print (“ LED OFF ”);//kirim “ LED OFF “ ke serial } 2.4 Program Arduino untuk Sensor LDR Untuk mengetahui intensitas cahaya dibutuhkan sensor cahaya yang peka terhadap perubahan intensitas cahaya. LDR ( Light Dependent Resistor) mempunyai Krakteristik berubah nilai resistansinya sesuai intensitas cahaya yang mengenainya. Hal pertama yang harus dilakukan membuka program IDE Arduimo. Selanjutnya memasukan kode pemprograman sensor ldr yang akan dipakai. kode program ldr ini adalah seperti berikut ini : int photoresistorPin1 = A1; // analog input double analogValue1; double minLightValue = 800.0; //batas min untuk menyalakan Lampu void setup() { // Mengeset input output pinMode(photoresistorPin1, INPUT); http://digilib.mercubuana.ac.id/ 27 Serial.begin(9600); // inisialisasi program serial } void loop() { // membaca analog input analogValue1= analogRead(photoresistorPin1); if (analogValue1< minLightValue) { Serial.println("LDRON1"); } else { Serial.println("LDR0FF1"); } delay (1000); // membaca resistor setiap setengah detik } 2.5 Sensor LDR (Light Dependent Resistor) Sensor Cahaya LDR (Light Dependent Resistor) adalah salah satu jenis resistor yang dapat mengalami perubahan resistansinya apabila mengalami perubahan penerimaan cahaya. Besarnya nilai hambatan pada Sensor Cahaya LDR tergantung pada besar kecilnya cahaya yang diterima oleh LDR yang nilai tahanan atau hambatannya sangat peka terhadap intensitas cahaya. Komponen LDR biasanya juga disebut dengan photo resistor, atau photocell. LDR terbuat dari cadmium sulfida yaitu merupakan bahan semikonduktor yang resistansnya berupah-ubah, nilai resistansi LDR sangat dipengaruhi oleh intensitas cahaya. Semakin banyak cahaya yang mengenainya, maka semakin menurun nilai resitansinya. Sebaliknya, jika cahaya yang mengenainya sedikit (gelap), maka nilai hambatannya menjadi semakin besar, sehingga arus listrik yang mengalir akan terhambat. Seperti halnya resistor konvensional, pemasangan LDR dalam http://digilib.mercubuana.ac.id/ 28 suatu rangkaian sama persis seperti pemasangan resistor biasa. Simbol LDR dapat dilihat seperti pada gambar berikut. Gambar 2.7 Tampilan Simbol dan Bentuk LDR 1. Aplikasi Sensor Cahaya LDR (Light Dependent Resistor) dapat digunakan sebagai : a. Sensor pada lampu otomatis b. Sensor pada rangkaian saklar cahaya c. Sensor pada tracker cahaya matahari d. Sensor pada kontrol arah solar cell 2. Karakteristik Sensor Cahaya LDR (Light Dependent Resistor) Sensor Cahaya LDR (Light Dependent Resistor) adalah suatu bentuk komponen yang mempunyai perubahan resistansi yang besarnya tergantung pada cahaya. Karakteristik LDR terdiri dari dua macam yaitu Laju Recovery dan Respon Spektral sebagai berikut : 3. Respon Spektral Sensor Cahaya LDR (Light Dependent Resistor) Sensor Cahaya LDR (Light Dependent Resistor) tidak mempunyai sensitivitas yang sama untuk setiap panjang gelombang cahaya http://digilib.mercubuana.ac.id/ 29 yang jatuh padanya (yaitu warna). Bahan yang biasa digunakan sebagai penghantar arus listrik yaitu tembaga, aluminium, baja, emas dan perak. Dari kelima bahan tersebut tembaga merupakan penghantar yang paling banyak, digunakan karena mempunyai daya hantaryang baik. 4. Prinsip Kerja Sensor Cahaya LDR (Light Dependent Resistor) Resistansi Sensor Cahaya LDR (Light Dependent Resistor) akan berubah seiring dengan perubahan intensitas cahaya yang mengenainya atau yang ada disekitarnya. Dalam keadaan gelap resistansi LDR sekitar 135 KΩ ± dan dalam keadaan terang sebesar 380 Ω ±. LDR terbuat dari bahan semikonduktor seperti kadmium sulfida. Dengan bahan ini energi dari cahaya yang jatuh menyebabkan lebih banyak mua-tan yang dilepas atau arus listrik meningkat. Artinya resistansi bahan telah mengalami penurunan. 2.6 Relay Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi. http://digilib.mercubuana.ac.id/ 30 Prinsip Kerja Relay Pada dasarnya, Relay terdiri dari 4 komponen dasar yaitu : 1. Electromagnet (Coil) 2. Armature 3. Switch Contact Point (Saklar) 4. Spring Gambar 2.8 Bagian-Bagian Relay Kontak Poin (Contact Point) Relay terdiri dari 2 jenis yaitu : 1. Normally Close (NC) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi CLOSE (tertutup). 2. Normally Open (NO) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi OPEN (terbuka). Berdasarkan gambar diatas, sebuah Besi (Iron Core) yang dililit oleh sebuah kumparan Coil yang berfungsi untuk mengendalikan Besi tersebut. Apabila Kumparan Coil diberikan arus listrik, maka akan timbul gaya Elektromagnet yang kemudian menarik Armature untuk berpindah http://digilib.mercubuana.ac.id/ 31 dari Posisi sebelumnya (NC) ke posisi baru (NO) sehingga menjadi Saklar yang dapat menghantarkan arus listrik di posisi barunya (NO). Posisi dimana Armature tersebut berada sebelumnya (NC) akan menjadi OPEN atau tidak terhubung. Pada saat tidak dialiri arus listrik, Armature akan kembali lagi ke posisi Awal (NC). Coil yang digunakan oleh Relay untuk menarik Contact Poin ke Posisi Close pada umumnya hanya membutuhkan arus listrik yang relatif kecil. Arti Pole dan Throw pada Relay Karena Relay merupakan salah satu jenis dari Saklar, maka istilah Pole dan Throw yang dipakai dalam Saklar juga berlaku pada Relay. Berikut ini adalah 2 (dua) penjelasan singkat mengenai Istilah Pole and Throw : 1. Pole : Banyaknya Kontak (Contact) yang dimiliki oleh sebuah relay 2. Throw : Banyaknya kondisi yang dimiliki oleh sebuah Kontak (Contact) Berdasarkan penggolongan jumlah Pole dan Throw-nya sebuah relay, maka relay dapat digolongkan menjadi 4 (empat) golongan : 1. Single Pole Single Throw (SPST) : Relay golongan ini memiliki 4 Terminal, 2 Terminal untuk Saklar dan 2 Terminalnya lagi untuk Coil. http://digilib.mercubuana.ac.id/ 32 2. Single Pole Double Throw (SPDT) : Relay golongan ini memiliki 5 Terminal, 3 Terminal untuk Saklar dan 2 Terminalnya lagi untuk Coil. 3. Double Pole Single Throw (DPST) : Relay golongan ini memiliki 6 Terminal, diantaranya 4 Terminal yang terdiri dari 2 Pasang Terminal Saklar sedangkan 2 Terminal lainnya untuk Coil. Relay DPST dapat dijadikan 2 Saklar yang dikendalikan oleh 1 Coil. 4. Double Pole Double Throw (DPDT) : Relay golongan ini memiliki Terminal sebanyak 8 Terminal, diantaranya 6 Terminal yang merupakan 2 pasang Relay SPDT yang dikendalikan oleh 1 (single) Coil. Sedangkan 2 Terminal lainnya untuk Coil. Selain Golongan Relay diatas, terdapat juga Relay-relay yang Pole dan Throw-nya melebihi dari 2 (dua). Misalnya 3PDT (Triple Pole Double Throw) ataupun 4PDT (Four Pole Double Throw) dan lain sebagainya. Untuk lebih jelas mengenai Penggolongan Relay berdasarkan Jumlah Pole dan Throw, silakan lihat gambar dibawah ini : Gambar 2.9 Jenis Relay Berdasarkan Pole dan Throw http://digilib.mercubuana.ac.id/ 33 2.7 Fungsi-fungsi dan Aplikasi Relay Beberapa fungsi Relay yang telah umum diaplikasikan kedalam peralatan Elektronika diantaranya adalah : 1. Relay digunakan untuk menjalankan Fungsi Logika (Logic Function) 2. Relay digunakan untuk memberikan Fungsi penundaan waktu (Time Delay Function) 3. Relay digunakan untuk mengendalikan Sirkuit Tegangan tinggi dengan bantuan dari Signal Tegangan rendah. 2.8 Pengenalan Visual Basic 2010 Visual Basic adalah suatu program aplikasi yang mempermudah programmer untuk membuat suatu program dengan cepat dan lebih mudah diakses oleh kalangan non-programmer dengan meminjam bahasa Object Oriented Project (OOP) sera mempraktikkan secara grafis dan visual. Visual Basic memungkinkan programmer membuat aplikasi prototype dengan cepat, sehingga terkadang Visual Basic dikenal juga sebagai Rapid Applicaton Development (RAD). RAD (application development) adalah model proses pembangunan perangkat lunak yang tegolong dalam teknik incremental (bertingkat). Visual Basic selanjutnya disebut VB merupakan bahasa pemrograman yang berorientasi obyek yang berbasis Windows dari Microsoft mengizinkan penggunanya mengembangkan aplikasi Windows dan Office yaitu dengan : 1. Membuat tombol perintah, kotak teks, jendela, dan toolbar. http://digilib.mercubuana.ac.id/ 34 2. Selanjutnya akan di-link ke program BASIC yang kecil, yang melakukan tindakan tertentu. 2.8.1 Memulai Visual Basic Visual Basic merupakan even-driven, artinya program menunggu pengguna melakukan suatu “event”, seperti klik pada ikon, baru kemudian program akan merespon. Untuk memulai Visual Basic, setelah tahap instalasi selesai kita tinggal menjalankan programnya, sehingga akan muncul kota dialog New Project seperti pada gambar. Gambar 2.10 Tampilan Kotak Dialog New Project Untuk pembuatan program pertama kali klik file pilih New Project pilih windows Form Application. Selanjutnya muncul tampilan utama Visual Basic 2010 seperti gambar berikut. http://digilib.mercubuana.ac.id/ 35 Gambar 2.11 Tampilan Utama Visual Basic 2010 Adapun komponen – komponen Visual Basic adalah sebagai berikut : a. Menu Bar Menampilkan daftar menu yang berisi daftar perintah-perintah yang dapat digunakan saat bekerja pada Visual Basic. Terdiri dari menu File, Edit, View, Build, Debug, Data, Tools, Windows, Help. Gambar 2.12. Tampilan Menu Bar b. Toolbar Digunakan untuk mengakses perintah-perintah dalam menu yang sering dipakai secara cepat. Gambar 2.13 Tampilan Toolbar c. Toolbox Merupakan daftar komponen-komponen yang dapat digunakan untuk mendesain tampilan program aplikasi yang akan dibuat. http://digilib.mercubuana.ac.id/ 36 Gambar 2.14 Tampilan Toolbox Tabel 2.5 Toolbox VB 2010 dan Fungsinya Gambar Object / Kontrol Keterangan Pointer Bukan merupakan suatu kontrol; gunakan icon ini ketika anda ingin memilih kontrol yang sudah berada pada form. Button biasa digunakan untuk melakukan perintahseperti (Save,Delete,Submit,dll) CheckBox digunakan untuk memilih item yang terdiri dari satu item CheckListBox fungsinya sama dengan no. 2 hanya saja dengan tool ini berbentuk list dalam satu frame ComboBox dengan tool ini dapat digunakan untuk memilih item dalam bentuk combo DataTimePicker untuk menampilkan data tanggal Label untuk memberikan label pada control yang ada http://digilib.mercubuana.ac.id/ 37 LinkLabel dengan kontrol ini apabila label tersebut di klik akan mengarah ke alamat website di internet LlistBox untuk menampilkan beberapa item MaskedTextBox untuk menampilkan data dengan format tertentu MonthCalender untuk menampilkan tanggal dalam satu bulan dengan tampilan penuh NotifyIcon untuk menampilkan icon system di Task Bar window bagian kanan NumericUpDown untuk menyajikan nilai numeric saja PictureBox untuk menampilkan gambar ProgressBar biasa digunakan untuk menampilkan status proses RadioButton untuk menampilkan beberapa item yang bisa dipilih, tetapi hanya satu item yang bisa dipilih RichTextBox untuk menampilkan text TextBox (tempat input/menampilkan teks -> bebas mengubah) ToolTip control ini digunakan untuk menampilkan informasi mengenai kegunaan tombol – tombol yang biasanya muncul apabila mouse didekatkan atau diarahkan diatas tombol tersebut TreeView untuk menampilkan data atau item – item dengan bentuk cabang WebBrowser bisa digunakan untuk membuat halaman browsing di internet http://digilib.mercubuana.ac.id/ 38 d. Project Explorer Menampilkan daftar form dan module yang ada dalam project yang sedang aktif. Gambar 2.15 Tampilan Project Explorer e. Property Windows Digunakan untuk mengatur properti dari komponen-komponen yang sedang diaktifkan. Property merupakan karakteristik dari sebuah objek. Gambar 2.16 Tampilan Property Window http://digilib.mercubuana.ac.id/ 39 f. Form Designer Merupakan jendela yang digunakan untuk melakukan perancangan tampilan dari aplikasi yang akan dibuat. Gambar 2.17 Tampilan Form Designer g. Code Window Merupakan jendela yang digunakan untuk menuliskan kode program. Gambar 2.18 Tampilan Code Window http://digilib.mercubuana.ac.id/ 40 Pada pemrograman Visual Basic.Net, form digunakan sebagai komponen utama yaitu : 1. Properti 2. Event 3. Metode Keterangan : 1. Fungsi Properti Properti adalah atribut dari suatu objek yang menentukan tampilan objek tersebut sewaktu program dijalankan. Properti untuk masing-masing objek umumnya berbeda-beda sesuai dengan objek yang dipilih. Untuk memperbaiki tampilan program harus diketahui fungsi dari properti objek yang akan menyusun program tersebut, antara lain : Properti Form Name = nama dari form Apperarance = mengatur efek 3 dimensi dari form BackColor = mengatur warna lata dari form Border Style = mengatur tampilan bingkai form Caption = mengatur judul form Font = mengatur jenis tulisan yang digunakan pada form Height = mengatur tinggi form Width = mengatur lebar form Properti Label Alignment = mengatur perataan teks Autosize = mengatur ukuran label sesuai isi teks Caption = isi daripada label http://digilib.mercubuana.ac.id/ 41 Enabled = mengatur keaktifan dari label TabIndex = mengatur urutan keaktifan pointer TabStop = mengatur penghentian ponter Properti Textbox Multiline = mengatur lebih dari satu baris teks Text = mengatur isi dari teks Properti Command Button Picture = mengatur pemberian gambar Caption = mengatur teks pada command button Properti Timer Interval = mengatur selang waktu dari timer 2. Fungsi Event Event merupakan kejadian atau tindakan yang diberikan dan dialami suatu objek, event ada banyak sekali dan tergantung dari objeknya. Sebuah objek memiliki objek yang berbeda-beda dengan objek yang lain,antara lain yang sering dipakai adalah : Click : Kejadian yang berlangsung ketika suatu objek diklik dan biasanya berlaku untuk tombol DoubleClick : Kejadian yang berlangsung ketika suatu objek didouble click Load : Kejadian yang berlangsung ketika suatu objek (biasanya form) dijalankan Active : Kejadian yang berlangsung ketika suatu objek dalam keadaan diaktifkan atau dipilih http://digilib.mercubuana.ac.id/ 42 Change : Kejadian yang berlangsung ketika suatu objek menerima input atau perubahan nilai 3. Fungsi Method Method diartikan sebagai aksi yang dapat dilakujkan oleh sebuah objek, method dapat saja beda tiap objek. Agar dapat melihat ragamnya method, kita harus memangil name dari objek tersebut melalui code editor program. Code Editor adalah editor untuk mengetikkan baris perintah melalui kode program yang dapat dibuka melalui jendela Project Explorer (View Code) atau dengan menekan tombol F7 sehingga baris perintah yang akan dieksekusi oleh suatu event adalah code. 2.9 Pengertian Team Viewer Team Viewer merupakan aplikasi yang dapat digunakan sebagai media komunikasi jarak jauh, menghubungkan sebuah computer dengan computer lain menggunakan akses internet pada kedua computer tersebut. Team Viewer terkoneksi ke PC atau ke server mana saja diseluruh dunia hanya dalam beberapa detik. Dengan begitu dapat memonitoring dari jarak jauh, seolah – olah sedang berada tepat di depannya. Software yang bisa digunakan secara gratis untuk penggunaan personal/non-comercial-use. mengakses PC secara Teamviewer jarak jauh dapat selama digunakan ada jaringan untuk yang menghubungkannya misalnya Internet. Secara sederhana dengan Teamviewer anda bisa mengontrol PC dari jarak jauh melalui jaringan internet, atau jika dikantor atau rumah anda bisa menggunakan jaringan lokal (LAN) maupun Wifi asalkan http://digilib.mercubuana.ac.id/ 43 terhubung pada jaringan yang sama. Beberapa fitur lain diantaranya : file transfer, chat, video chat dll 2.9.1 Fungsi Team Viewer Team Viewer memiliki 3 fungsi antara lain : 1. Remote Support (artinya anda dapat mengakses PC lain secara remote (anda sebagai pengendali) dan dapat melihat layar PC yang sedang anda remote). 2. Presentation (ini kebalikan dari remote support, artinya setelah terjadi hubungan antar 2 komputer maka komputer yang melakukan koneksi (awal) akan menampilkan layar monitornya di PC lain yang di akses). 3. File Transfer (melakukan Transfer data/file antar komputer). 2.9.2 Cara Install Team Viewer Versi 9 Selain harus terinstall TeamViewer dan terkoneksi dengan internet, anda juga harus mengetahui user id dan password TeamViewer dikomputer yang ingin anda pantau/remote. Sebelum kita memulainya anda harus install dulu aplikasi TeamViewer, berikut ini adalah cara untuk menginstallnya. : 1. Download aplikasinya pada Link berikut : http://filehippo.com/download_teamviewer/download/f63e02f937f eeafb14c03a7931b972c8/ 2. Setelah selesai mendownload, dobel klik installernya. 3. Pilih Personal / Non-comercial use, kemudian klik Accept-Finsih. http://digilib.mercubuana.ac.id/ 44 Gambar 2.19 Tampilan Saat Install 4. Tunggu sampai proses selesai. Gambar 2.20 Tampilan Saat Proses Installing http://digilib.mercubuana.ac.id/ 45 5. Setelah install berhasil maka program teamviewer 9 akan terbuka dan jika anda sedang terkoneksi ke internet anda akan langsung mendapatkan ID. Gambar 2.21 Tampilan Utama TeamViewer Untuk dapat menggunakan program remote dekstop ini anda harus memiliki koneksi internet atau kedua pc terhubung ke jaringan yang sama.Selain itu TeamViewer juga memungkinkan untuk dapat mengakses komputer kita dari jarak jauh dengan menggunakan komputer lain dan itu sangat mudah, atau dengan kata lain, ketika seseorang yang menggunakan TeamViewer dan memiliki akses dengan internet kemudian memiliki patner dari komputer lain yang sama mengguanakan TeamViewer dan memiliki akses internet juga, maka orang pertama akan dapat menjalankan komputer dari orang kedua dari jarak jauh arau sering disebut remote control. TeamViewer akan sangat membantu bagi sebagian orang Terutama untuk seseorang dalam bidang IT yaitu untuk menunjang suatu pekerjaan dan berinteraksi dengan orang lain dan juga dalam meremote antar http://digilib.mercubuana.ac.id/ 46 PC/Laptop yang berjarak jauh, sehingga dapat memaksimalkan hasil pekerjaan dari masing-masing individu. TeamViewer adalah salah satu aplikasi yang termasuk dalam Cloud Computing yang berarti dua atau lebih perangkat dapat berinteraksi pada jarak yang jauh dengan menggunakan akses internet sebagai penghubungnya. http://digilib.mercubuana.ac.id/