BAB II LANDASAN TEORI 2.1. MIKROKONTROLER 2.1.1. Definisi Mikrokontroler Perkembangan lebih lanjut dari teknologi IC adalah mikrokontroler, dimana teknologi ini menggabungkan memori I/O dan prossesor dalam satu chip tunggal berupa silikon yang bersifat dapat deprogram (programmable). Mikrokontroler adalah suatu keping IC dimana terdapat mikroprosesor dan memori program (ROM) serta memori serbaguna (RAM), bahkan ada beberapa jenis mikrokontroler yang memiliki fasilitas ADC, TLL, EEPROM dalam satu kemasan. Ada perbedaan yang cukup penting antara Mikroprosesor dan Mikrokontroler. Jika Mikroprosesor merupakan CPU (Central Processing Unit) tanpa memori dan I/O pendukung dari sebuah komputer, maka Mikrokontroler umumnya terdiri dari CPU, Memori, I/O tertentu dan unit pendukung, misalnya Analog to Digital Converter (ADC) yang sudah terintegrasi di dalam mikrokontroler tersebut. Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum yang tidak rumit atau kompleks. Mikrokontroler dimanfaatkan sebagai otak dari sistem kontrol dan banyak digunakan dalam industri karena keunggulannya, antara lain : 6 http://digilib.mercubuana.ac.id/ 7 a) Ukuran fisik yang relatif kecil. b) Kecepatan pengoperasiannya tinggi. c) Keandalan dalam mempermudah otomatisasi peralatan. d) Kemampuan dan fleksibilitasnya lebih baik. Dengan keunggulan tersebut menyebabkan mikrokontroler dapat diaplikasikan secara luas untuk pemrograman dalam suatu sistem pengontrolan. 2.1.2. Arduino Uno R3 Gambar 2.1 Arduino Board Berasal dari bahasa italia ardui = sulit dan no = tidak. Arduino adalah platform prototyping berbasis open-source elektronik yang mudah digunakan (fleksibel) baik dari perangkat keras (hardware) maupun perangkat lunaknya (software). Hardwarenya memiliki prosesor Atmel AVR ATmega328. Arduino mempunyai input yang dapat menerima dari berbagai sensor dan outputnya sebagai pengendali seperti lampu, motor, dan aktuator lainnya. Arduino board mikrokontroler diprogram menggunakan http://digilib.mercubuana.ac.id/ bahasa pemrograman Arduino 8 (berdasarkan Wiring) berbasis bahasa C yang disederhanakan dengan bantuan pustaka - pustaka (libraries) dan dalam lingkup pengembang berdasarkan Processing. Arduino dapat bekerja mandiri atau dapat juga berkomunikasi dengan perangkat keras yang lain seperti komputer. Berikut adalah beberapa kelebihan dari Arduino : Hardware dan Softwarenya Open Source Dari sini kita bisa membuat tiruan board yang kompatibel dengan board Arduino tanpa harus membeli board asli buatan Itali dan kita juga tidak akan dianggap membajak selama kita tidak menggunakan trademark “Arduino”. Fasilitas chip yang cukup lengkap Arduino menggunakan chip AVR ATmega 168/328 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Dengan fasilitas chip yang demikian, Arduino bisa digabungkan dengan modul atau alat lain walaupun protokol yang digunakan berbeda-beda. Proses Upload tidak memerlukan chip programmer Chip pada Arduino sudah dilengkapi dengan bootloader yang akan menangani proses upload dari komputer. Dengan begitu kita tidak memerlukan chip programmer kecuali untuk menanamkan bootloader pada chip yang masih blank. Ukuran board kecil Ukuran board Arduino yang kecil ini mudah di bawah kemana-mana atau dimasukan ke dalam saku atau tas yang kecil. Koneksi menggunakan Port USB Ini akan memudahkan kita jika menghubungkan Arduino ke PC atau laptop yang tidak memiliki port serial/paralel. http://digilib.mercubuana.ac.id/ 9 Bahasa pemrograman yang mudah Bahasa pemrograman Arduino adalah bahasa C yang sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga dapat dipelajari dengan mudah. Library gratis Library-library ini dapat di download gratis di website Arduino. Pengembangan aplikasi lebih mudah Pengembangan aplikasi ini menjadi lebih mudah karena didukung oleh bahasa yang mudah dipelajari serta adanya library dasar yang lengkap. Komunitas open source yang saling mendukung Pengembangan hardware dan software Arduino didukung oleh komunitas pencinta elektronika dan pemrograman di seluruh dunia. Tidak usah malu untuk bergabung (terkhusus bagi pemula), karena dalam komunitas ini kita akan saling berbagi dan membantu satu sama lain. 2.1.3. Komponen Arduino Gambar 2.2 Komponen Arduino http://digilib.mercubuana.ac.id/ 10 a) Daya Arduino uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal (otomatis). Eksternal (non-USB) daya dapat berasal baik dari AC-ke adaptor-DC atau baterai. Adaptor ini dapat dihubungkan dengan menancapkan plug jack pusat-positif ukuran 2.1mm konektor POWER. Ujung kepala dari baterai dapat dimasukkan kedalam Gnd dan Vin pin header dari konektor POWER. Kisaran kebutuhan daya yang disarankan untuk board Uno adalah 7 sampai dengan 12 volt, jika diberi daya kurang dari 7 volt kemungkinan pin 5v Uno dapat beroperasi tetapi tidak stabil kemudian jika diberi daya lebih dari 12V, regulator tegangan bisa panas dan dapat merusak board Uno. b) Memori ATmega328 memiliki 32 KB (dengan 0,5 KB digunakan untuk bootloader), 2 KB dari SRAM dan 1 KB EEPROM (yang dapat dibaca dan ditulis dengan EEPROM library). Gambar 2.3 Diagram Pin ATMega 328 dan Fungsinya Pada Board Arduino http://digilib.mercubuana.ac.id/ 11 c) Input dan Output Masing-masing dari 14 pin digital di Uno dapat digunakan sebagai input atau output, dengan menggunakan fungsi pinMode (), digitalWrite (),dan digitalRead (), beroperasi dengan daya 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki internal pull-up resistor (secara default terputus) dari 20-50 kOhm. Selain itu, beberapa pin memiliki fungsi khusus: Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) TTL data serial. Pin ini dihubungkan ke pin yang berkaitan dengan chip Serial ATmega8U2 USB-to-TTL. Eksternal interrupts: 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah, dengan batasan tepi naik atau turun,atau perubahan nilai. PWM: 3, 5, 6, 9, 10, dan 11. Menyediakan output PWM 8-bit dengan fungsi analogWrite (). SPI: 10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Pin ini mendukung komunikasi SPI menggunakan SPI library. LED: 13. Ada built-in LED terhubung ke pin digital 13. Ketika pin bernilai nilai HIGH, LED on, ketika pin bernilai LOW, LED off. Uno memiliki 6 masukan analog, berlabel A0 sampai dengan A5, yang masing masing menyediakan 10 bit dengan resolusi (yaitu 1024 nilai yang berbeda). Selain itu, beberapa pin memiliki fungsi khusus: I2C: A4 (SDA) dan A5 (SCL). Dukungan I2C (TWI) komunikasi menggunakan perpustakaan Wire. http://digilib.mercubuana.ac.id/ 12 Aref. Tegangan referensi (0 sampai 5V saja) untuk input analog. Digunakan dengan fungsi analog Reference (). Reset. Bawa baris ini LOW untuk me-reset mikrokontroler. d) Komunikasi Arduino uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lainnya. ATmega328 menyediakan UART TTL (5V) untuk komunika siserial, yang tersedia dipin digital 0 (RX) dan 1 (TX). Sebuah ATmega8U2 sebagai saluran komunikasi serial melalui USB dan sebagai port virtual com untuk perangkat lunak pada komputer. Firmware ‟8 U2 menggunakan driver USB standar COM, dan tidak ada driver eksternal yang diperlukan. Namun pada Windows diperlukan, sebuah file inf. Perangkat lunak Arduino terdapat monitor serial yang memungkinkan digunakan memonitor data tekstual sederhana yang akan dikirim ke atau dari boardArduino. LED RX dan TX di papan tulis akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dengan koneksi USB kekomputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1).ATmega328 juga mendukung I2C (TWI) dan komunikasi SPI. e) Pemrograman Arduino memiliki bahasa pemrograman tersendiri yaitu bahasa arduino, merupakan pengembangan dari bahasa C yang disederhanakan dan dipermudah dengan libraries. Untuk mengcompile dan mengupload program ke board arduino dapat menggunakan software Arduino IDE ( Integrated Development Environment ). http://digilib.mercubuana.ac.id/ 13 Gambar 2.4 Tampilan Software Arduino IDE 2.2. LCD (LIQUID CRISTAL DISPLAY) Lcd adalah suatu layar, bagian dari modul peraga yang menampilkan karakter yang diinginkan. Layar lcd menggunakan dua buah lembaran bahan yang dapat mempolarisasikan dan Kristal cair diantara kedua lembaran tersebut. http://digilib.mercubuana.ac.id/ 14 Arus listrik yang melewati cairan menyebabkan Kristal merata sehingga cahaya tidak dapat melalui setiap Kristal, karenanya seperti pengaturan cahaya menentukan apakah cahaya dapat melewati atau tidak. Sehingga dapat mengubah bentuk Kristal cairannya membentuk tampilan angka atau huruf pada layar. Kegunaan lcd banyak sekali dalam perancangan suatu sistem dengan menggunakan mikrokontroler. Lcd dapat berfungsi untuk menampilkan suatu nilai hasil skor, menampilkan tweks, atau menampilkan menu pada aplikasi mikrokontroler. Pada alat ini ukuran tipe lcd yang digunakan adalah lcd 2 x 16 seperti gambar dibawah ini. Gambar 2.5 LCD 16x2 Character Klasifikasi LED Display 16x2 Character a. 16 karakter x 2 baris b. 5x7 titik Matrix karakter + kursor c. HD44780 Equivalent LCD kontroller/driver Built-In d. 4-bit atau 8-bit MPU Interface e. Tipe standar f. Bekerja hampir dengan semua Mikrokontroler. http://digilib.mercubuana.ac.id/ 15 2.2.1. Deskripsi Pin LCD Untuk keperluan antar muka suatu komponen elektronika dengan mikrokontroler, perlu diketahui fungsi dari setiap kaki yang ada pada komponen tersebut. a. Kaki 1 (GND) : Kaki ini berhubungan dengan tegangan +5 Volt yang merupakan tegangan untuk sumber daya. b. Kaki 2 (VCC) : Kaki ini berhubungan dengan tegangan 0 volt (Ground). c. Kaki 3 (VEE/VLCD) : Tegangan pengatur kontras LCD, kaki ini terhubung pada cermet. Kontras mencapai nilai maksimum pada saat kondisi kaki ini pada tegangan 0 volt. d. Kaki 4 (RS) : Register Select, kaki pemilih register yang akan diakses. Untuk akses ke Register Data, logika dari kaki ini adalah 1 dan untuk akses ke Register Perintah, logika dari kaki ini adalah 0. e. Kaki 5 (R/W) : Logika 1 pada kaki ini menunjukan bahwa modul LCD sedang pada mode pembacaan dan logika 0 menunjukan bahwa modul LCD sedang pada mode penulisan. Untuk aplikasi yang tidak memerlukan pembacaan data pada modul LCD, kaki ini dapat dihubungkan langsung ke Ground. f. Kaki 6 (E) : Enable Clock LCD, kaki mengaktifkan clock LCD. Logika 1 pada kaki ini diberikan pada saat penulisan atau membacaan data. g. Kaki 7 – 14 (D0 – D7) : Data bus, kedelapan kaki LCD ini adalah bagian di mana aliran data sebanyak 4 bit ataupun 8 bit mengalir saat proses penulisan maupun pembacaan data. http://digilib.mercubuana.ac.id/ 16 h. Kaki 15 (Anoda) : Berfungsi untuk tegangan positif dari backlight LCD sekitar 4,5 volt (hanya terdapat untuk LCD yang memiliki backlight) i. Kaki 16 (Katoda) : Tegangan negatif backlight LCD sebesar 0 volt (hanya terdapat pada LCD yang memiliki backlight). 2.3. KEYPAD Keypad sering digunakan sebagi suatu input pada beberapa peralatan yang berbasis mikroprosessor atau mikrokontroller. Keypad terdiri dari sejumlah saklar, yang terhubung sebagai baris dan kolom dengan susuan seperti yang ditunjukkan pada gambar 2.6. Agar mikrokontroller dapat melakukan scan keypad, maka port mengeluarkan salah satu bit dari 4 bit yang terhubung pada kolom dengan logika low “0” dan selanjutnya membaca 3 bit pada baris untuk menguji jika ada tombol yang ditekan pada kolom tersebut. Sebagai konsekuensi, selama tidak ada tombol yang ditekan, maka mikrokontroller akan melihat sebagai logika high “1” pada setiap pin yang terhubung ke baris. Gambar 2.6 Bentuk Fisik Keypad http://digilib.mercubuana.ac.id/ 17 2.4. MOTOR SERVO Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. Motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo. Penggunaan sistem kontrol loop tertutup pada motor servo berguna untuk mengontrol gerakan dan posisi akhir dari poros motor servo. Penjelasan sederhananya begini, posisi poros output akan di sensor untuk mengetahui posisi poros sudah tepat seperti yang di inginkan atau belum, dan jika belum, maka kontrol input akan mengirim sinyal kendali untuk membuat posisi poros tersebut tepat pada posisi yang diinginkan. Untuk lebih jelasnya mengenai sistem kontrol loop tertutup, perhatikan contoh sederhana beberapa aplikasi lain dari sistem kontrol loop tertutup, seperti penyetelan suhu pada AC, kulkas, setrika dan lain sebagainya. Gambar 2.7 Motor Servo http://digilib.mercubuana.ac.id/ 18 Motor servo biasa digunakan dalam aplikasi-aplikasi di industri, selain itu juga digunakan dalam berbagai aplikasi lain seperti pada mobil mainan radio kontrol, robot, pesawat, dan lain sebagainya. 2.4.1. Prinsip kerja motor servo Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam). Lebih jelasnya perhatikan gambar dibawah ini. Gambar 2.8 PWM Kontrol Motor Servo Ketika lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi tersebut dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan http://digilib.mercubuana.ac.id/ 19 eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang dimilikinya (rating torsi servo). Namun motor servo tidak akan mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada posisinya. 2.5. SENSOR OPTOCOUPLER Optocoupler adalah suatu piranti yang terdiri dari 2 bagian yaitu transmitter dan receiver, yaitu antara bagian cahaya dengan bagian deteksi sumber cahaya terpisah. Biasanya optocoupler digunakan sebagai saklar elektrik, yang bekerja secara otomatis. Pada dasarnya optocoupler adalah suatu komponen penghubung (coupling) yang bekerja berdasarkan picu cahaya optic. Optocoupler terdiri dari dua bagian yaitu: 1. Pada transmitter dibangun dari sebuah LED infra merah. Jika dibandingkan dengan menggunakan LED biasa, LED infra merah memiliki ketahanan yang lebih baik terhadap sinyal tampak. Cahaya yang dipancarkan oleh LED infra merah tidak terlihat oleh mata telanjang. 2. Pada bagian receiver dibangun dengan dasar komponen photodiode. Photodiode merupakan suatu transistor yang peka terhadap tenaga cahaya. Suatu sumber cahaya menghasilkan energi panas, begitu pula dengan spektrum infra merah. Karena spekrum inframerah mempunyai efek panas yang lebih besar dari cahaya tampak, maka photodiode lebih peka untuk menangkap radiasi dari sinar infra merah. Oleh karena itu optocoupler dapat dikatakan sebagai gabungan dari LED infra merah dengan fototransistor yang terbungkus menjadi satu chips. Cahaya http://digilib.mercubuana.ac.id/ 20 infra merah termasuk dalam gelombang elektromagnetik yang tidak tampak oleh mata telanjang. Sinar ini tidak tampak oleh mata karena mempunyai panjang gelombang, berkas cahaya yang terlalu panjang bagi tanggapan mata manusia. Sinar infra merah mempunyai daerah frekuensi 1 x 1012 Hz sampai dengan 1 x 1014 GHz atau daerah frekuensi dengan panjang gelombang 1μm – 1mm. LED infra merah ini merupakan komponen elektronika yang memancarkan cahaya infra merah dengan konsumsi daya sangat kecil. Jika diberi bias maju, LED infra merah yang terdapat pada optocoupler akan mengeluarkan panjang gelombang sekitar 0,9 mikrometer. Proses terjadinya pancaran cahaya pada LED infra merah dalam optocoupler adalah sebagai berikut. Saat dioda menghantarkan arus, elektron lepas dari ikatannya karena memerlukan tenaga dari catu daya listrik. Setelah elektron lepas, banyak elektron yang bergabung dengan lubang yang ada di sekitarnya (memasuki lubang lain yang kosong). Pada saat masuk lubang yang lain, elektron melepaskan tenaga yang akan diradiasikan dalam bentuk cahaya, sehingga dioda akan menyala atau memancarkan cahaya pada saat dilewati arus. Cahaya infra merah yang terdapat pada optocoupler tidak perlu lensa untuk memfokuskan cahaya karena dalam satu chip mempunyai jarak yang dekat dengan penerimanya. Pada optocoupler yang bertugas sebagai penerima cahaya infra merah adalah fototransistor. Fototransistor merupakan komponen elektronika yang berfungsi sebagai detektor cahaya infra merah. Detektor cahaya ini mengubah efek cahaya menjadi sinyal listrik, oleh sebab itu fototransistor termasuk dalam golongan detektor optik. Fototransistor memiliki sambungan kolektor–basis yang besar dengan cahaya infra merah, karena cahaya ini dapat membangkitkan pasangan lubang elektron. Dengan diberi bias maju, cahaya yang masuk akan menimbulkan arus pada kolektor. http://digilib.mercubuana.ac.id/ 21 Fototransistor memiliki bahan utama yaitu germanium atau silikon yang sama dengan bahan pembuat transistor. Tipe fototransistor juga sama dengan transistor pada umumnya yaitu PNP dan NPN. Perbedaan transistor dengan fototransistor hanya terletak pada dindingnya yang memungkinkan cahaya infra merah mengaktifkan daerah basis, sedangkan transistor biasa ditempatkan pada dinding logam yang tertutup. Gambar 2.9 Bentuk Fisik Optocoupler Ditinjau dari penggunaanya, fisik optocoupler dapat berbentuk bermacam-macam. Bila hanya digunakan untuk mengisolasi level tegangan atau data pada sisi transmitter dan sisi receiver, maka optocoupler ini biasanya dibuat dalam bentuk solid (tidak ada ruang antara LED dan Photodiode). Sehingga sinyal listrik yang ada pada input dan output akan terisolasi. Dengan kata lain optocoupler ini digunakan sebagai optoisolator jenis IC. Prinsip kerja dari optocoupler adalah : a. Jika antara photodiode dan LED terhalang maka photodiode tersebut akan off sehingga output dari kolektor akan berlogika high. b. Sebaliknya jika antara photodiode dan LED tidak terhalang maka photodiode dan LED tidak terhalang maka photodiode tersebut akan on sehingga outputnya akan berlogika low. http://digilib.mercubuana.ac.id/ 22 Sebagai piranti elektronika yang berfungsi sebagai pemisah antara rangkaian power dengan rangkaian kontrol. Komponen ini merupakan salah satu jenis komponen yang memanfaatkan sinar sebagai pemicu on/off-nya. Opto berarti optic dan coupler berarti pemicu. Sehingga bisa diartikan bahwa optocoupler merupakan suatu komponen yang bekerja berdasarkan picu cahaya optic opto-coupler termasuk dalam sensor, dimana terdiri dari dua bagian yaitu transmitter dan receiver. Dasar rangkaian dapat ditunjukkan seperti pada gambar dibawah ini: Gambar 2.10 Rangkaian Optocoupler Sebagai pemancar atau transmitter dibangun dari sebuah led infra merah untuk mendapatkan ketahanan yang lebih baik daripada menggunakan led biasa. Sensor ini bisa digunakan sebagai isolator dari rangkaian tegangan rendah ke rangkaian tegangan tinggi. Selain itu juga bisa dipakai sebagai pendeteksi adanya penghalang antara transmitter dan receiver dengan memberi ruang uji dibagian tengah antara led dengan phototransistor. Penggunaan ini bisa diterapkan untuk mendeteksi putaran motor atau mendeteksi lubang penanda disket pada disk drive komputer. Tapi pada alat yang penulis buat optocoupler untuk mendeteksi jumlah benih ikan. http://digilib.mercubuana.ac.id/