5|Page BAB II LANDASAN TEORI 2.1. Mikrokontroller Mikrokontroler adalah suatu terobosan dalam teknologi mikroprosesor dan mikrokomputer.bedanya, mikrokontroler hanya bisa digunakan untuk menangani suatu aplikasi tertentu. Perbedaan lain terletak pada perbandingan RAM dan ROM. Komputer mempunyai RAM dan ROM yang besar, tetapi pada mikrokontroler sangat terbatas. ROM digunakan oleh mikrokontroller untuk menyimpan program sedangkan RAM digunakan untuk menyimpan data sementara.Mikrokontroller terdiri dari ALU (Arithmetic and Logical Unit),CU (Control Unit),PC (Program Counter),SP (Stack Pointer), register-register,sebuah rangkaian pewaktu dan rangkaian penyela (interrupt).Mikrokontroler juga dilengkapi dengan beberapa piranti pendukung lainseperti ROM (Read Only Memory),RAM (Random Access Memory), dekoder, port komunikasi input/output serial dan atau pararel, juga beberapa tambahan khusus seperti interrupt handler dan timer/ counter. AVR merupakan seri mikrokontroller CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). 6|Page Gambar 2.1. Konfigurasi pin ATmega328 Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interupt internal dan eksternal,serial UART, programmable Watchdog Timer, dan mode power saving. Beberapa diantaranya mempunyai ADC dan PWM internal.AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega328. 7|Page Gambar 2.2. Blok Diagram Mikrokontroller ATmega328 2.2. Arduino Board ATmega 328 Dalam beberapa tahun terakhir, mikrokontroler telah menjadi lebih murah dan lebih mudah digunakan, hal ini memungkinkan terciptanya alat yang lebih baik. Arduino adalah sebuah trobosan baru dalam dunia elektronika, khususnya mikrokontroller. Kemajuan yang dibuat dengan Arduino membawa alat ini satu langkah lebih dekat bagi pemula, memungkinkan orang untuk memulai sebuah 8|Page perancangan sistem control dengan lebih mudah menggunakan Arduino. Arduino adalah sebuah kit elektronik yang dirancang khusus untuk memudahkan setiap orang dalam belajar atau mengembangkan perangkat elektronik yang dapat berinteraksi dengan bermacam-macam sensor dan pengendali. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Bahasa yang dipakai dalam Arduino adalah bahasa C yang disederhanakan dengan bantuan librarylibrary Arduino. Gambar 2.3. Arduino Duemilanove Gambar diatas merupakan salah satu gambar dari versi Arduino, yaitu Arduino Duemilanove. Arduino Duemilanove ("2009") adalah board berbasis mikrokontroler ATmega168 atau ATmega328. Ia memiliki 14 digital input / output pin (dimana 6 dapat digunakan sebagai output PWM), 6 input 9|Page analog, 16 MHz osilator kristal, koneksi USB, jack listrik, ICSP header, dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau listrik dengan adaptor ACDC atau baterai untuk memulai. Duemilanove dibangun tahun 2009 di Italia dan diberi nama setelah tahun peluncurannya. 2.2.1. Power Arduino Duemilanove dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal. Sumber daya dipilih secara otomatis. Eksternal (non-USB) listrik dapat berasal baik dari AC-DC adaptor atau baterai. Board ini dapat beroperasi pada pasokan eksternal dari 6 sampai 20 volt. Jika diberikan dengan kurang dari 7V, bagaimanapun, pin 5V dapat menyediakan kurang dari lima volt dan board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator tegangan dapat terlalu panas dan merusak board. Kisaran yang direkomendasikan adalah 7 sampai 12 volt. Fungsi dari masing-masing pin power adalah sebagai berikut : VIN : Tegangan input ke papan Arduino ketika itu menggunakan sumber daya eksternal (sebagai lawan 5 volt dari koneksi USB atau sumber daya dari luar lainnya). 5V: Catu daya digunakan untuk daya mikrokontroler dan komponen lain pada board. Hal ini dapat berasal baik dari VIN 10 | P a g e melalui on-board regulator, atau diberikan oleh USB atau power suplay 5V lainnya. 3v3 : Sebuah pasokan 3,3 volt yang dihasilkan oleh chip FTDI on-board. Menarik arus maksimum 50 mA. GND. 2.2.2. Memori : ATmega168 memiliki 16 KB dari memori flash untuk menyimpan kode (2 KB digunakan untuk bootloader); ATmega328 memiliki 32 KB, (juga dengan 2 KB digunakan untuk bootloader). ATmega168 memiliki 1 KB dari SRAM dan 512 byte EEPROM (yang dapat dibaca dan ditulis dengan EEPROM library); ATmega328 memiliki 2 KB SRAM dan 1 KB EEPROM. 2.2.3. Input dan output : Setiap 14 pin digital pada Duemilanove dapat digunakan sebagai input atau output, menggunakan fungsi pinMode , digitalWrite , dan digitalRead. Mereka beroperasi di 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki resistor internal pull-up 20-50 kΩ. 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 terhubung ke pin yang sesuai dari FTDI USB-to- TTL Serial chip. 11 | P a g e Interupsi Eksternal 2 dan 3 : Pin ini dapat dikonfigurasi untuk memicu interupsi pada nilai yang rendah. PWM: 3, 5, 6, 9, 10, dan 11 : Menyediakan 8-bit output PWM dengan fungsi. analogWrite. SPI: 10 (SS), 11 (mosi), 12 (MISO), 13 (SCK) : Pin ini mendukung komunikasi SPI menggunakan SPI library. LED: 13 : Disini membangun LED terhubung ke digital pin 13. Ketika pin bernilai TINGGI, LED menyala, ketika pin RENDAH,LED dimatikan. Duemilanove memiliki 6 input analog, masing-masing yang menyediakan 10 bit dari resolusi (yaitu 1024 nilai yang berbeda). Secara default mereka mengukur dari tanah sampai 5 volt, meskipun adalah mungkin untuk mengubah batas atas dari jangkauan mereka menggunakan pin Aref dan fungsi analogReference. Ada beberapa pin lainnya didalam board ini : Aref : Tegangan referensi untuk input analog. Digunakan dengan analogReference. Reset : Bawa baris ini RENDAH untuk me-reset mikrokontroler. Biasanya digunakan untuk menambahkan tombol reset untuk perisai yang menahan salah satu pada board. 12 | P a g e 2.2.4. Komunikasi Arduino Duemilanove memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lainnya. Pada ATmega328 menyediakan (5V) komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah FTDI FT232RL pada saluran komunikasi serial board ini melalui USB dan driver FTDI (disertakan dengan perangkat lunak Arduino) menyediakan port com virtual untuk perangkat lunak pada komputer. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data tekstual sederhana yang harus dikirim ke dan dari board Arduino. RX dan TX LED pada board arduino akan berkedip ketika data sedang dikirim melalui chip FTDI dan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Sebuah perpustakaan Software Serial memungkinkan untuk komunikasi serial pada setiap pin digital Duemilanove itu.ATmega168 dan ATmega328 juga mendukung I2C (TWI) dan SPI komunikasi. 2.2.5. Pemrograman : Duemilanove Arduino dapat diprogram dengan perangkat lunak Arduino (download). Pilih "Arduino Diecimila atau Duemilanove w atau ATmega168" atau "Arduino Duemilanove w atau ATmega328" dari Tools> menu board sesuai dengan mikrokontroler pada board sesuai tipe arduino yang dipakai.ATmega168 atau ATmega328 pada Duemilanove Arduino dilengkapi dengan bootloader yang memungkinkan Anda untuk 13 | P a g e meng-upload kode baru tanpa menggunakan programmer hardware eksternal. Ini berkomunikasi menggunakan protokol STK500 asli. 2.2.6. Perangkat Lunak (Software Reset) Duemilanove Arduino dirancang dengan cara yang memungkinkan untuk diatur ulang oleh perangkat lunak yang berjalan pada komputer yang terhubung. Salah satu perangkat keras flow kontrol (DTR) dari FT232RL terhubung ke line reset dari ATmega168 atau ATmega328 melalui kapasitor 100 nanofarad. Perangkat lunak Arduino memungkinkan kita untuk meng-upload kode dengan hanya menekan tombol upload pada menu promt pada programmer Arduino. Ini berarti bahwa bootloader dapat memiliki waktu lebih pendek, seperti penurunan DTR dapat terkoordinasi dengan baik dengan dimulainya upload. Pengaturan ini memiliki implikasi lain. Ketika Duemilanove terhubung ke salah satu komputer yang menjalankan Mac OS X atau Linux, setiap kali me-reset sambungan dibuat untuk perangkat lunak ini (melalui USB). Untuk ini setengah detik atau lebih, bootloader berjalan pada Duemilanove tersebut. Sementara itu diprogram untuk mengabaikan data, itu akan mencegah beberapa byte pertama dari data yang dikirim ke board arduino. 14 | P a g e 2.2.7. USB Perlindungan Duemilanove Arduino memiliki polyfuse reset yang melindungi port USB komputer Anda dari hubung singkat dan arus lebih. Meskipun kebanyakan komputer memberikan perlindungan internal mereka sendiri, sekering memberikan perlindungan tambahan. Jika lebih dari 500 mA diterapkan ke port USB, sekering otomatis akan memutus sambungan sampai hubung singkat atau arus lebih ditiadakan. 2.2.8. Karakteristik Fisik Panjang maksimum dan lebar PCB Duemilanove adalah 2,7 dan 2,1 inci masing-masing dengan konektor USB dan jack power. Tiga lubang sekrup memungkinkan board terpasang ke permukaan atau alas dengan kuat. jarak antara pin digital 7 dan 8 adalah 160 mil (0,16 "), bukan kelipatan genap dari jarak mil 100 dari pin lain. 2.3. Sensor Ultrasonik Sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan rangkaian penerima ultrasonik yang disebut receiver. Sinyal ultrasonik yang dibangkitkan akan dipancarkan dari transmitter ultrasonik. Ketika sinyal mengenai benda penghalang, maka sinyal ini dipantulkan, dan diterima oleh receiver ultrasonik. Sinyal yang diterima oleh rangkaian receiver dikirimkan ke rangkaian mikrokontroler untuk selanjutnya diolah untuk menghitung jarak terhadap benda di depannya (bidang pantul). Untuk itu prinsip kerja dari sensor ultrasonik dapat ditunjukkan dalam gambar dibawah ini : 15 | P a g e Gambar 2.4. Prinsip kerja dari sensor ultrasonik Prinsip kerja dari sensor ultrasonik adalah sebagai berikut : 1. Sinyal dipancarkan oleh pemancar ultrasonik. Sinyal tersebut berfrekuensi diatas 20kHz, biasanya yang digunakan untuk mengukur jarak benda adalah 40kHz. Sinyal tersebut di bangkitkan oleh rangkaian pemancar ultrasonik. 2. Sinyal yang dipancarkan tersebut kemudian akan merambat sebagai sinyal / gelombang bunyi dengan kecepatan bunyi yang berkisar 340 m/s. Sinyal tersebut kemudian akan dipantulkan dan akan diterima kembali oleh bagian penerima Ultrasonik. 3. Setelah sinyal tersebut sampai di penerima ultrasonik, kemudian sinyal tersebut akan diproses untuk menghitung jaraknya. Jarak dihitung berdasarkan rumus : S = 340.t/2 Dimana S adalah jarak antara sensor ultrasonik dengan bidang pantul, dan t adalah selisih waktu antara pemancaran gelombang ultrasonik sampai diterima kembali oleh bagian penerima ultrasonik 16 | P a g e 2.4. LCD ( Liquid Crystal Display ) LCD merupakan kepanjangan dari Liquid Crystal Display.penggunaan LCD diperlukan sebagai sebuah output yang berupa tampilan yang menunjukan suatu nilai atau besaran dari besaran yang diukur dari suatu system yang dibuat.LCD yang umum digunakan yaitu LCD dengan ukuran 16 karakter x 2 baris dengan type HD44780 atau sejenisnya. Gambar 2.5. LCD HD44780 Modul LCD ini dapat dikonfigurasi untuk interface dengan mikrokontroller 4 atau 8-bit. Karena semua fungsi seperti layar RAM, karakter pembangkit, dan kristal driver, yang diperlukan untuk mengemudi LCD dotmatriks secara internal disediakan pada satu chip, sistem minimal dapat dihubungkan dengan controller atau driver. Features : Dimungkinkan untuk LCD dot matrik 5 x 8 dan 5 x 10 Konsumsi daya rendah,yaitu antar 2.7 sampai 5.5V Dapat digunakan 4 atau 8 bit antarmuka MPU 80 x 8 bit display RAM 17 | P a g e Automatic reset sirkuit yang menginisialisasi controller / driver setelah power on. 2.5. osilator internal dengan resistor eksternal. Catu Daya Sebagian besar rangkaian elektronika membutuhkan tegangan DC untuk dapat bekerja dengan baik. Karena tegangan jala-jala adalah tegangan AC, maka yang harus dilakukan terlebih dahulu dalam setiap peralatan elektronika adalah mengubah atau menyearahkan (rectifying) tegangan AC ke DC. Pada umumnya, tegangan AC didekati dengan sinyal gelombang sinus, seperti tampak pada Gambar 2.6. Secara matematika, gelombang sinus dinyatakan dengan : v = Vp sin (t+θ) dimana v = tegangan sesaat Vp θ = tegangan puncak = sudut dalam derajat atau radian Gambar 2.6. Gelombang Sinus 18 | P a g e 2.6. Bahasa C Bahasa C merupakan pengembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967.Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories).Bahasa C pertama kali digunakan dikomputer Digital Equipment Corporation PDP-11 yang menggunakan system operasi UNIX. Beberapa alasan mengapa bahasa C banyak digunakan, diantaranya adalah sebagai berikut : Bahasa C tersedia hampir di semua jenis komputer. Kode bahasa C sifatnya portabel. Bahasa C hanya menyediakan sedikit kata – kata kunci. Proses executable program bahasa C lebih cepat. Dukungan Pustaka yang banyak. C adalah bahasa yg terstruktur. Selain bahasa tingkat tinggi, C juga dianggap bahasa tingkat menengah. Bahasa C adalah Kompiler.