BAB II LANDASAN TEORI 2.1 Arduino Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan komputer. Tujuan menanamkan program pada mikrokontroler adalah agar rangkaian elektronik dapat membaca input, memproses input tersebut dan kemudian menghasilkan output sesuai yang diinginkan. Jadi mikrokontroler bertugas sebagai ‘otak’ yang mengendalikan input, proses dan output sebuah rangkaian elektronik. Arduino merupakan inovasi di bidang elektronika yang telah membuat perubahan besar dalam dunia mikrokontroler sehingga seorang yang awam atau amatiran bisa membuat proyek-proyek elektronika atau robotika dengan relative mudah dan cepat. Arduino lahir dari lingkungan mahasiswa dan dosen yang merasakan sulitnya mempelajari mikrokontroler. Kemudian mereka mengembangkan sebuah sistem minimum berbasis AVR yang dilengkapi dengan bootloader dan software yang user friendly. Hasilnya adalah sebuah board mikrokontroler yang bersifat open source yang bisa dipelajari atau dikembangkan oleh mahasiswa, professional atau penggemar mikrokontroler di seluruh dunia. Konon Arduino sudah lebih populer dibandingkan Basic Stamp yang lahir lebih awal yang harganya relative mahal dan close source. Penjualan board Arduino bisa menghasilkan milyaran Rupiah pada penjual kit online seperti Sparkfun. Mikrokontroler ada pada perangkat elektronik di sekeliling kita. Misalnya handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai untuk keperluan mengendalikan robot. Baik robot mainan, maupun robot industri. Karena komponen utama Arduino adalah mikrokontroler, maka Arduino pun 5 dapat diprogram menggunakan komputer sesuai kebutuhan kita. Adapun data teknis board Arduino UNO adalah sebagai berikut : • Mikrokontroler : ATMEGA328 • Tegangan Operasi : 5V • Tegangan Input (recommended) : 7 - 12 V • Tegangan Input (limit) : 6-20 V • Pin digital I/O : 14 (6 diantaranya pin PWM) • Pin Analog input : 6 • Arus DC per pin I/O : 40 mA • Arus DC untuk pin 3.3 V : 150 mA • Flash Memory : 32 KB dengan 0.5KB digunakan untuk bootloader • SRAM : 2 KB • EEPROM : 1 KB • Kecepatan Pewaktuan : 16 Mhz Gambar 2.1 Bentuk fisik Arduino Uno Kegunaan Arduino tergantung kepada kita yang membuat program. Arduino bisa digunakan untuk mengontrol LED, bisa juga digunakan untuk mengontrol helikopter. Contoh yang sudah pernah dibuat adalah MP3 player, pengontrol motor, mesin CNC, monitor kelembaban tanah, pengukur jarak, penggerak servo, balon udara, pengontrol suhu, monitor energi, stasiun cuaca, pembaca RFID, drum elektronik, GPS logger, monitoring bensin dan masih banyak lagi. Chip pada 6 Arduino sudah dilengkapi dengan bootloader yang akan menangani proses upload dari komputer. Dengan adanya bootloader ini kita tidak memerlukan chip programmer lagi, kecuali untuk menanamkan bootloader pada chip yang masih blank. Arduino menggunakan chip AVR ATmega 168/328 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan protokol yang berbeda-beda. Ukuran board Arduino cukup kecil, mudah di bawah kemana-mana bersama laptop atau dimasukan ke dalam saku.Walaupun bahasa pemrograman Arduino adalah bahasa C/C++, tetapi dengan penambahan library dan fungsifungsi standar membuat pemrograman Arduino lebih mudah dipelajari dan lebih manusiawi. Contoh, untuk mengirimkan nilai HIGH pada pin 10 pada Arduino, cukup menggunakan fungsi digitalWrite(10, HIGH); Sedangkan kalau menggunakan bahasa C aslinya adalah PORTB |=(1<<2); Tersedia library yang sangat banyak untuk menghubungkan Arduino dengan macam-macam sensor, aktuator maupun modul komunikasi. Misalnya library untuk mouse, keyboard, servo, GPS, dsb. Berhubung Arduino adalah open source, maka library-library ini juga open source dan dapat di download gratis di website Arduino. Dengan bahasa yang lebih mudah dan adanya library dasar yang lengkap, maka mengembangkan aplikasi elektronik relatif lebih mudah. Contoh, kalau kita ingin membuat sensor suhu. Cukup membeli sebuah IC sensor suhu (misalnya LM35) dan menyambungkan ke Arduino. Kalau suhu tersebut ingin ditampilkan pada LCD, tinggal membeli sebuah LCD dan menambahkan library LCD pada program yang sama, dan seterusnya. Arduino tidak membuat bahasa pemrograman khusus, melainkan menggunakan Bahasa C yang sudah ada, lebih tepatnya adalah Bahasa C yang menggunakan compiler AVR-GCC (AVR GNU C-Compiler). Bahasa C adalah bahasa yang sangat lazim dipakai sejak awal-awal komputer diciptakan dan sangat berperan dalam perkembangan software. Bahasa C telah membuat bermacammacam sistem operasi dan compiler untuk banyak bahasa pemrograman, misalnya 7 system operasi Unix, Linux, dsb. Bahasa C juga biasanya diajarkan di akademi dan perguruan tinggi selain bahasa pemrograman Basic atau Pascal. Bahasa C adalah bahasa pemrograman yang sangat ampuh yang kekuatan nya mendekati bahasa assembler. Bahasa C menghasilkan file kode objek yang sangat kecil dan dieksekusi dengan sangat cepat. Karena itu Bahasa C sering digunakan pada sistem operasi dan pemograman mikrokontroler. Bahasa C adalah multi-platform Bahasa C bisa diterapkan pada lingkungan Windows, Unix, Linux atau sistem operasi lain tanpa mengalami perubahan source code. ( Kalaupun ada perubahan, biasanya sangat minim ). Karena Arduino menggunakan Bahasa C yang multiplatform, maka software Arduino pun bias dijalankan pada semua sistem operasi yang umum, misalnya: Windows, Linux dan MacOS. Bahasa C mudah dipelajari Maksud kata ‘mudah’ disini adalah relatif. Tergantung kemampuan setiap user. Kalau anda sudah mengerti bahasa C, anda bisa melakukan pengembangan dengan board lain atau mikrokontroler lain dengan lebih mudah. Di Internet banyak Library Bahasa C untuk Arduino yang bisa di download dengan gratis. Setiap library Arduino biasanya disertai dengan contoh pemakaian nya. Keberadaan library-library ini bukan hanya membantu kita membuat proyek mikrokontroler, tetapi bisa dijadikan sarana untuk mendalami pemrograman Bahasa C pada mikrokontroler. Gambar 2.2 Skematik Arduino 8 2.1.1 Soket USB Soket USB adalah soket untuk kabel USB yang disambungkan ke komputer atau laptop. Berfungsi untuk mengirimkan program ke Arduino dan juga sebagai port komunikasi serial. 2.1.2 Input / Output Digital Input/Output Digital atau digital pin adalah pin-pin untuk menghubungkan Arduino dengan komponen atau rangkaian digital. Misalnya kalau ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin I/O digital dan ground. Komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin-pin ini. 2.1.3 Input Analog Input Analog atau analog pin adalah pin-pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. Misalnya dari potensiometer, sensor suhu, sensor cahaya, dsb. 2.1.4 Pin Catu Daya Pin-pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan Arduino. Pada bagian catu daya ini terdapat juga pin Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada Arduino tanpa melalui tegangan USB atau adaptor. Reset adalah pin untuk memberikan sinyal reset melaui tombol atau rangkaian eksternal. 2.1.5 Soket Baterai / Adaptor Soket baterai atau adaptor digunakan untuk menyuplai Arduino dengan tegangan dari baterai/adaptor 9V pada saat Arduino sedang tidak disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu memasang baterai/adaptor saat memprogram Arduino. 9 2.2 LCD Keypad Sheild LCD Keypad shield merupakan shield board yang kompatibel untuk Arduino mikrokontroler. Board yang menyediakan antarmuka yang user-friendly untuk penggunaan LCD 16x2, keypad dan arduino mikrokontroler. LCD Keypad Shield mendukung pengaturan kontras dan warna latar. Tulisan pada LCD berwarna putih, dengan background biru. Board ini terdiri dari: 1. 16x2 karakter putih LCD backlight biru. 2. Tombol Push butttonter diri dari 6 tombol - pilih, atas, kanan, bawah dan kiri serta reset. 3. 7 Pin digital untuk koneksi ke keypad (D0, D1, D2, D3, D11, D12, dan D13). 4. 5 Pin analog Arduino mikrokontroler ( A1 sampai A5). 5. Pin digital : 4, 5, 6, 7, 8, 9 dan 10 digunakan sebagai interface ke LCD 16x2 Tabel 2.1 Pin Alokasi LCD Keypad sheild ke LCD Gambar 2.3 Board LCD Keypad sheild 10 2.3 KEYPAD 4 x 3 Matrik Keypad adalah suatu tombol atau push button yang terdiri atas baris dan kolom yang memuat nilai angka dan huruf atau simbol. Nilai tersebut mengidentifikasi outputan yang tersusun atas bit-bit data. Matrik Keypad 4X3 merupakan susunan 12 tombol membentuk keypad sebagai sarana masukkan ke mikrokontroler. Meskipun jumlah tombol ada 12 tapi untuk mengakses ke mikrokontroler hanya memerlukan 7 jalur port paralel. sedangkan Keypad 4X3 tersusun atas 3 baris dan 4 kolom. Gambar 2.4 Bentuk dan Koneksi Keypad Bentuk susunan keypad secara umum terdapat pada gambar 2.5 dimana pada gambar tersebut masing-masing tombol menghubungkan sebuah jalur output atau baris (R1 sampai R4) ke sebuah jalur input atau kolom (C1 sampai C3). Metode Scanning Keypad Keluaran port keypad baris dan kolomya dihubungkan dengan port paralel dari mikrokontroler. Kolom dalam keadaan low yang berfungsi sebagai output port dan baris dihubungkan sebagai input port. Jika pushbutton tidak di tekan maka baris akan membaca low. Ketika baris membaca high berarti pushbutton dalam keadaan ditekan. Setiap baris dan kolom dapat ditukarkan sebagai input atau output dari port. 11 2.4 RELAY Relay merupakan piranti yang menggunakan magnet listrik untuk mengoperasikan seperangkat kontak. Susunan relay paling sederhana terdiri atas kumparan kawat penghantar yang digunakan pada former memutari teras magnet. Bila kumparan relay dialiri arus, medan magnet yang dibangkitkan menarik armatur berporos, memaksanya bergerak ke arah atas. Gerakan armatur ini dipakai melalui pengungkit untuk menutup dan membuka kontak – kontak. Kontak ini digerakkan oleh magnet yang dihasilkan oleh aliran arus listrik pada kumparan. Susunan sederhana relay ditunjukkan sebagai berikut : isolator kontak-kontak teras .. bagian kutub kumparan Gambar 2.5 Susunan relay Gambar 2.1 terdiri dari kumparan kawat penghantar yang digulingkan pada former memutari teras magnet. Jika kumparan dialiri arus maka medan magnet yang terjadi akan menarik armatur berporos dan memaksanya bergerak cepat ke arah atas. Gerakan armatur ini dipakai untuk membuka dan menutup kontak-kontak. Susunan kontak-kontak relay ada 3 jenis, yaitu : 1. Normally Open (NO), apabila kontak-kontak tertutup saat relay dicatu. 2. Normally Closed (NC), apabila kontak-kontak terbuka saat relay dicatu. Tukar Sambung (Change Over/CO), mempunyai kontak tengah yang normal tertutup tetapi melepaskan diri dari posisi ini dan membuat kontak dengan yang lain bila relay dicatu. 12 2.5 Power Supply Power supply digunakan sebagai sumber catu daya guna memberikan catuan tegangan DC pada tiap blok rangkaian. Pada umumnya power supply digunakan untuk menghasilkan tegangan DC yang stabil baik 5 Volt atau 24 Volt. Untuk menstabilkan hasil output digunakan regulator yang sesuai,misal untuk output 5 Volt digunakan regulator tipe 7805 dan 7824 untuk output 24 Volt. Selain itu, power supply merupakan rangkaian untuk mengubah sinyal AC mnjadi sinyal DC. Output AC dari sumber PLN tegangan 220 Volt 60 Hz atau 110 Volt 60 Hz masuk rangkain power supply, tegangan dituruknan menjadi 1,5 Volt sampai 24 Volt DC. 2.6 Motor Induksi Motor listrik merupakan perangkat elektromagnetis yang mengubah energi listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk, misalnya memutar impeller pompa, fan atau blower, menggerakan kompresor, mengangkat bahan,dll. Motor listrik digunakan juga di rumah ( contoh mixer, bor listrik, fan angin) dan di industri. Mekanisme kerja untuk seluruh jenis motor secara umum : Arus listrik dalam medan magnet akan memberikan gaya. Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran / loop, maka kedua sisi loop, yaitu pada sudut kanan medan magnet, akan mendapatkan gaya pada arah yang berlawanan. Pasangan gaya menghasilkan tenaga putar / torque untuk memutar kumparan. Motor-motor memiliki beberapa loop pada dinamonya untuk memberikan tenaga putaran yang lebih seragam dan medan magnetnya dihasilkan oleh susunan elektromagnetik yang disebut kumparan medan. Motor Induksi merupakan jenis motor listrik AC. Motor induksi merupakan alat listrik yang mengubah energi listrik menjadi energi mekanik. Listrik yang diubah adalah listrik 1 atau 3 phasa. Motor induksi sering juga disebut motor tidak serempak atau motor asinkron. Prinsip kerja motor induksi dapat dilihat pada gambar 2.6 13 Gambar 2.6 Prinsip Kerja Motor Induksi Ketika tegangan phasa U masuk ke belitan stator menjadikan kutub S ( south = selatan ), garis-garis gaya magnet mengalir melalui stator, sedangkan dua kutub lainnya adalah N ( north = utara ) untuk phasa V dan phasa W. Kompas akan saling tarik - menarik dengan kutub S. Berikutnya kutub S pindah ke phasa V, kompas berputar 120°, dilanjutkan kutub S pindah ke phasa W, sehingga pada belitan stator timbul medan magnet putar. Buktinya kompas akan memutar lagi menjadi 240°. Kejadian berlangsung silih berganti membentuk medan magnet putar sehingga kompas berputar dalam satu putaran penuh, proses ini berlangsung terus menerus. Dalam motor induksi kompas digantikan oleh rotor sangkar yang akan berputar pada porosnya. Karena ada perbedaan putaran antara medan putar stator dengan putaran rotor, maka disebut motor induksi tidak serempak atau motor asinkron. Konstruksi motor induksi secara detail terdiri atas dua bagian, yaitu: bagian stator dan bagian rotor. Stator adalah bagian motor yang diam terdiri: badan motor, inti stator, belitan stator, bearing, dan terminal box. Bagian rotor adalah bagian motor yang berputar, terdiri atas rotor sangkar, dan poros rotor. Konstruksi motor induksi tidak ada bagian rotor yang bersentuhan dengan bagian stator, karena dalam motor induksi tidak ada komutator dan sikat arang. 14 2.7 Aplikasi Program Arduino IDE ( Integrated Development Enviroment ) Ketika membuka program Arduino IDE ( Integrated Development Enviroment ), akan terlihat serupa dengan tampilan gambar 2.5 dibawah ini. Jika kita menggunakan Windows atau Linux, akan terlihat perbedaan, tetapi pada dasarnya IDE ( Integrated Development Enviroment ) akan sama tidak perduli Operasi Sistemnya apa yang digunakan. Gambar 2.7 Tampilan program IDE Toolbar pada IDE terdiri dari tujuh tombol, diantaranya : 1. Verify / compile Digunakan untuk memeriksa atau verifikasi apakah kode sudah benar sebelum di kirim ke papan Arduino. 2. Stop Berfungsi untuk memberhentikan Serial Monitor dari pengoprasian. 3. Open Menampilkan list lembar kerja yang telah di simpan. 15 4. New Berfungsi untuk membuat tampilan lembar kerja atau sketch baru untuk memasukan kode. 5. Save Menyimpan lembar kerja atau sketch. 6. Upload Mengirim lembar kerja kedalam papan Arduino. 7. Serial Monitor Menampilkan hasil data-data yang telah dikirim dari Arduino. Gambar 2.8 Tampilan ToolBar program IDE Untuk memulai Serial Monitor, dapat dilakukan dengan menekan tombol Serial Monitor dan untuk menghentikan tekan tombol Stop. Pada Linux, Arduino akan me-reset sendiri ketika meng-klik tombol Serial Monitor. Untuk mengoprasikan atau menggabungkan Arduino pada PC ( Personal Computer ), kita dapat menggunakan program lainnya seperti Processing, Flash, MaxMSP, Visual Basic, dan lain – lain. 2.7.1. Menu Pada window program Integrated Development Enviroment Pada Integrated Development Enviroment program terdapat beberapa menu yang dapat diakses untuk beberapa fungsi tertentu, diantaranya adalah : 1. Menu Help Pada menu ini dapat membantu kita menemukan informasi lebih lagi tentang IDE ( Integrated Development Enviroment ). Terdiri dari : * Getting Started * Find in reference 16 * Enviroment * About Arduino * Troubleshooting * Visit Arduino.cc * Reference * Frequently Asked Question 2. Menu Tools Pada menu ini terdapat peralatan untuk mengisi lembar kerja dari mulai mengedit kode - kode agar terlihat lebih rapih, memilih tipe papan Arduino, memilih serial port dan lain-lain, diantaranya : * Auto format * Burn Bootloader * Archive Sketch * Serial Port * Fix Encoding dan Reload * Board * Serial Monitor 3. Menu Edit Pada menu ini kita dapat melakukan edit kode pada lembar kerja, menu Edit ini berisi diantaranya : * Undo addition * Find nex * Cut * Find * Copy * Decrease Indent * Copy from forum * Increase Indent * Copy as HTML * Comment / uncomment 4. Menu File Pada menu ini kita dapat mengakses atau membuat lembar kerja baru, menyimpan atau mengirim program ke papan Aduino. Menu File ini berisi antara lain : * New * Quit * Open * Preferences * Sketch book * Print * Example * Page setup * Close * Upload to I/O Board * Save * Save as 17 5. Menu Sketch Pada menu ini kita dapat menambah file kerja, mengeksekusi program yang kita buat, mengimport Library di dalam menu ini antara lain : * Verify / Compile * Import Library * Add File * Show Sketch Folder * Stop 2.7.2. Referensi Bahasa Program Integrated Development Enviroment Bahasa program pada Arduino dibedakan menjadi beberapa bagian, antara lain : 1. Structure setup loop 2. Control Structures if if...else for switch case while do... while break continue return goto 3. Variable Scope & Qualifiers variable scope static volatile const 18 4. Further Syntax ; ( semicolon ) {} ( curly braces ) // ( single line comment ) /* */ ( multi-line comment ) # define # include 5. Arithmetic Operators = (assignment operator) + (addition) -(subtraction) * (multiplication) / (division) % (modulo) 6. Co mparison Operators == ( equal to ) != ( not equal to ) < ( less than ) > ( greater than ) <= ( less than or equal to ) >= ( greater than or equal to ) 7. Bitwise Operators & (bitwise and) | (bitwise or) ^ (bitwise xor) ~ (bitwise not) << (bitshift left) >> (bitshift right) 19 8. Boolean Operators && (and) || (o r) ! (not) 9. Co mpound Operators ++ (increment) -- (decrement) += (compound addition) -= (compound subtractio n) *= (compound multiplication) /= (compound division) &= (compound bitwise and) |= (compound bitwise or) 10. Data Types void boolean char unsigned char byte int unsigned int word long unsigned long float double string - char array String - object Array 20 11. Pointer Access Operators * dereference operator & reference operator 12. Constants high | low input | output true | false integer constants floating point constants 13. Conversion char byte int word long float 14. Utilities sizeof 15. Co mmunication Serial 16. Digital I/O pinMode digitalWrite digitalRead 17. Random Numbers randomSeed random 21 18. Analog I/O analogReference analogRead analogWrite PWM 19. Advanced I/O tone noTone shiftOut pulseIn 20. Math min max abs constrain map pow sqrt 21. Bits and Bytes lowByte highByte bitR ead bitWrite bitSet bitC lear bit 22. External Interrupts attachInterrupt detachInterrupt 22 23. Time millis micros delay delayMicroseconds 24. Interrupts interrupts noInterrupts 23