BAB II LANDASAN TEORI
2.1
Mekanisme Pintu Gerbang Otomatis Perkembangan zaman sekarang ini membuat popularitas teknologi
otomatis dalam kehidupan masyarakat semakin berkembang. Baik pendukung dan penentang setuju kemajuan teknologi yang mempercepat tindakan atau prosedur secara signifikan. Dalam hal ini berbagai kemajuan teknologi telah dihasilkan untuk membantu fungsi pintu gerbang modern. Salah satu teknologi tersebut adalah pembuka dan penutup pintu gerbang otomatis menggunakan remote control.
5
6
Jenis-jenis pintu yaitu 1. Pintu sliding
Gambar 2.1 Pintu Sliding 2. Pintu koboi
Gambar 2.2 Pintu Koboi
7
3. Pintu garasi
Gambar 2.3 Pintu Garasi
4. Pintu swing
Gambar 2.4 Pintu Swing Macam-macam pengendali gerbang yaitu ; 1. Komunikasi telepon selular dengan mikrokontroler AT mega 8515 yang berfungsi sebagai pengendali dan penghubung 2. Via Bluetooth dengan mikrokontroler ATmega 8 3. Via IR ( Infra Red) dengan arduino duemilanove
8
2.2
Catu Daya Catu daya akan menggunakan trafo step down sebagai penurun tegangan
dari 220 Volt AC menjadi 12 Volt AC. Aliran Listrik dari PLN adalah tegangan 220 Volt AC. Sedangkan Rangkaian yan akan saya rancang menggunakan besar tegangan 5 Volt. Oleh karena itu membutuhkan penurun tegangan dari 220 Volt menjadi 5 Volt. Saya menggunakan Transformator untuk menurunkan tegangan tersebut. Transformator dibentuk dari 2 buah lilitan Primer & Sekunder yang saling terpisah. Lilitan Primer sebagai Input & lilitan Sekunder sebagai Output. Tegangan 220 Volt dari PLN masuk ke lilitan Primer & kita ambil Outputnya dari lilitan Sekunder. Output yang dihasilkan menjadi kecil paling tergantung lilitan sekundernya.
Gambar 2.5 Catu Daya
Catu daya
menggunakan Dioda Rectifier sebagai penyearah. Dioda
merupakan komponen elektronika yang dibuat dari Semikonduktor. Secara umum (berdasarkan bahan yang membuatnya) dioda dibagi menjadi Dioda Germanium & Dioda Silicon. Adapun kegunaan dari Dioda adalah sebagai berikut : Sebagai penyearah tegangan, yaitu merubah dari arus AC menjadi arus DC.
9
Semua dioda memiliki terminal positif (Anoda) dan terminal negatif (Katoda). Karena itu dioda termasuk komponen berpolaritas & tidak boleh terbalik dalam memasangnya
Gambar 2.6 Dioda Catu daya menggunakan Kapasitor sebagai filter tegangan. Kapasitor merupakan komponen pasif elektronika yang sering dipakai didalam merancang suatu sistem yang berfungsi untuk mengeblok arus DC, Filter, dan penyimpan energi listrik. Didalamnya 2 buah pelat elektroda yang saling berhadapan dan dipisahkan oleh sebuah insulator. Sedangkan bahan yang digunakan sebagai insulator dinamakan dielektrik. Ketika kapasitor diberikan tegangan DC maka energi listrik disimpan pada tiap elektrodanya. Selama kapasitor melakukan pengisian, arus mengalir. Aliran arus tersebut akan berhenti bila kapasitor telah penuh. Yang membedakan tiap tiap kapasitor adalah dielektriknya. Berikut ini adalah jenis – jenis kapasitor yang banyak dijual dipasaran.
10
Catu daya menggunakan Regulator Tegangan untuk mendapatkan tegangan yang diinginkan. Regulator Tegangan digunakan sebagai pembatas tegangan yang mempunyai fungsi hampir sama dengan Dioda Zener. Komponen ini terdapat kaki Input, Ground & Output. Berapapun besar tegangan yang masuk ke kaki Input, Tegangan yang akan keluar dikaki Output selalu sesuai dengan nilai Regulator yang tertera di body dari Komponen tersebut misalnya : 7805 berarti tegangan yang akan keluar adalah 5 Volt, 7812 berarti tegangan yang akan keluar adalah 12 Volt.
Gambar 2.7 Konfigurasi pin dan Bentuk fisik IC Regulator L7805 & L7812 2.3
Mikrokontroler ARDUINO UNO ATMEGA328 Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah
chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output.
Gambar 2.8 Mikrokontroler Arduino Uno ATMEGA328
11
Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika anda sudah bisa melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya. Begitu pula jika Anda sudah mahir membaca dan menulis data maka Anda dapat membuat program untuk membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai keinginan Anda. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara automatis, seperti sistem kontrol mesin, remote controls, mesin kantor, peralatan rumah tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga dibandingkan dengan mendesain menggunakan mikroprosesor memori, dan alat input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler ini maka :
12
Sistem elektronik akan menjadi lebih ringkas
Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi
Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang
kompak Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler sudah beroperasi. Yang dimaksud dengan sistem minimal adalah sebuah rangkaian mikrokontroler yang sudah dapat digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal mikrokontroler AVR memiliki prinsip yang sama.
2.3.1. Fitur ATMEGA328 ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer). Mikrokontroller ini memiliki beberapa fitur antara lain :
13
130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus
clock.
32 x 8-bit register serba guna.
Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.
Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.
Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.
Master / Slave SPI Serial interface. Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu
memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism. Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah
14
register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data. Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau 32-bit. Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh. Berikut ini adalah tampilan architecture ATmega 328 :
15
Gambar 2.9 Fitur ATMEGA328
16
2.4
Dasar 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, proses, dan output sebuah rangkaian elektronik. Arduino adalah inovasi dibidang elektronika yang telah membuat perubahan besar dalam dunia mikrokontroler sehingga seorang yang awam amatiran bisa membuat proyek-proyek elektronika atau robotika dengan relatif 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, profesional, atau penggemar mikrokontroler di seluruh dunia. Konon Arduino sudah lebih popular dibandingkan Basic Stamp yang lahir lebih awal yang harganya relatif mahal dan close source. Penjualan board Arduino bisa menghasilkan milyaran Rupiah pada penjualan kit online seperti Sparkfun. Mikrokontroler ada pada perangkat elektronik di sekelililng kita. Misalnya Handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai untuk keperluan mengendalikan robot.
17
Karena komponen utama Arduino adalah mikrokontroler, maka Arduino pun dapat diprogram menggunakan komputer sesuai dengan kebutuhan kita. Adapun data teknis board Arduino UNO sebagai berikut : Mikrokontroler : Arduino UNO Tegangan Operasi : 5 V 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.5 KB digunakan untuk bootloader SRAM : 2 KB EEPROM : 1 KB Kecepatan Pewaktu : 16 MHz
Gambar 2.10 Bentuk Fisik Arduino UNO
18
Dapat dibawa kemana-mana bersama laptop atau dimasukkan ke dalam saku. Walaupun bahasa pemrograman Arduino adalah bahasa C/C++, tetapi dengan penambahan library dan fungsi-fungsi standar membuat pemrograman Arduino lebih mudah dipelajari dan manusiawi. Contoh, untuk mengirimkan nilai HIGH pada pin 10 Arduino, cukup menggunakan fungsi digitalWrite (10, HIGH), sedangkan kalau menggunakan bahasa C aslinya adalah PORTB I=(1<<2). Tersedia library yang sangat banyak untuk menghubungkan Arduino dengan macam-macam sensor, actuator 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 secara 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 robot wireless, cukup membeli sebuah modul Bluetooth dan menyambungkan ke Arduino. Arduino tidak membuat bahasa pemrograman khusus, melainkan menggunakan bahasa C yang sudah ada, lebih tepatnya menggunakan bahasa C yang menggunakan compiler AVG – 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 banyak membuat bermacam-macam sistem operasi Unix, linux, dsb. Bahasa C juga biasanya digunakan di akademi dan perguruan tinggi selain bahasa pemrograman basic atau pascal. Bahasa C adalah bahasa pemrograman yang sangat ampuh yang kekuatannya mendekati bahasa assembler.
19
Bahasa C menghasilkan file kode objek yang sangat kecil dan dieksekusi dengan sangat cepat. Karena itu bahasa C sering digunakan pada sistem operasi dan pemrograman 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 multi-platform, maka software Ardunio pun bisa dijalankan pada semua sistem operasi yang umum, misalnya : Windows, Linux, MacOs. Bahasa C mudah dipelajari. Maksud kata mudah di sini adalah relatif, tergantung kemampuan dari tiap user. Kalau anda sudah mengerti bahasa C, anda dapat melakukan pengembangan dengan board lain atau mikrokontroler lain dengan lebih mudah. Diinternet banyak library bahasa C untuk Arduino yang bias di-download secara gratis. Setiap library Arduino biasanya disertai dengan contoh pemakaiannya. Keberadaan librarylibrary ini bukan hanya membantu kita membuat proyek mikrokontroler. Tetapi bias dijadikan sarana untuk mendalami pemrograman bahasa C pada mikrokontroler. 2.4.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.4.2 Input / Output Digital Input/output digital atau digital pin adalah pin-pin untuk menghubungkan Arduino dengan komponen atau rangkaian digital. Misalnya, kalau igin membuat LED berkelip, LED tersebut dapat dipasang pada salah satu pin I/O digital dan
20
ground. Komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin-pin ini. 2.4.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.4.4
Accu Accu adalah suatu alat yang menyimpan tegangan 12 VDC sesuai
keperluan yang akan dibutuhkan, accu menyuplai tegangan ke motor shield dengan tegangan 12 VDC untuk menggerakan motor dc pada robot. 2.4.5
Baterai / Adaptor Soket baterai atau adaptor digunakan untuk menyuplai Arduino dengan
tegangan dari baterai / adaptor 12 V 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 atau adaptor saat memprogram Arduino. 2.5
Bluetooth HC - 05 Pada perancangan tugas akhir ini menggunakan Bluetooth untuk
pengiriman data dan penerimaan data. Bluetooth adalah sebuah teknologi komunikasi wireless (tanpa kabel) yang beroperasi dalam pita frekuensi 2,4 GHz unlicensed ISM (Industrial, Scientific and Medical) dengan menggunakan sebuah frequency hopping tranceiver yang mampu menyediakan layanan komunikasi data dan suara secara real-time antara host-host bluetooth dengan jarak jangkauan layanan yang terbatas.
21
Bluetooth menggunakan salah satu dari dua jenis frekuensi Spread Specturm Radio yang digunakan untuk kebutuhan wireless. Jenis frekuensi yang digunakan adalah Frequency Hopping Spread Spedtrum (FHSS), sedangkan yang satu lagi yaitu Direct Sequence Spread Spectrum (DSSS) digunakan oleh IEEE802.11xxx. Transceiver yang digunakan oleh bluetooth bekerja pada frekuensi 2,4 GHz
unlicensed
ISM
(Industrial,
Scientific,
and
Contoh Aplikasi Bluetooth secara umum:
Gambar 2.11 Aplikasi Bluetooth Secara Umum
Gambar 2.12 Modul Bluetooth HC 05
Medical).
22
Bluetooth HC – 05 adalah modul yang umum dipakai, mudah digunakan dan harganya yang cukup murah
2.6
Perancangan Software Android Bluetooth SPP Pro
Pada perancangan tugas akhir ini saya menggunakan Software Android Bluetooth SPP Pro
Gambar 2.13 Software Android Bluetooth SPP Pro Software ini khusus digunakan untuk mengirimkan data dari Android ke Arduino melalui bluetooth HC – 05. Cara penggunaan yang mudah, dapat menetukan data yang dikirim dan dapat menggunakan tombol. Pertama kali kita Scan sampai dapat namanya, Setelah ditemukan namanya yaitu HC – 05, lalu kita Connect.
23
Gambar 2.14 Scan Device Setelah koneksi terhubung, kita dapat memilih mode komunikasi yaitu menggunakan mode Byte Stream atau mode tekan tombol atau mode jalur CMD
24
Gambar 2.15 Communcation Mode Menggunakan mode byte stream dengan cara kita ketik data yang mau dikirim di kolom input send commands, lalu tekan tanda panah kanan yang disebelah kanan untuk mengirimkan data melalui bluetooth. Cara ini tidak praktis digunakan karena user / pengguna harus mengingat data apa yang harus dikirimkan dan jika lupa maka pintu tidak dapat terbuka atau tertutup.
25
Gambar 2.16 CMD Mode Menggunakan mode CMD line juga mengirimkan input data berupa kode ASCII, cara ini juga sama dengan mode byte stream, pengguna juga harus mengingat kode yang dikirimkan melalui bluetooth. Cara yang paling mudah adalah dengan menggunakan mode tekan tombol. Pada mode tekan tombol kita dapat memberi nama pada tombol yang akan digunakan sehingga memudahkan pengguna untuk membuka pintu ataupun menutup pintu.
26
Gambar 2.17 Keyboard Mode Pada mode tekan tombol kita dapat memberikan kode yang akan dikirimkan menggunakan tombol yang dimaksud yaitu tombol Buka Pintu dan tombol Tutup Pintu. Disini juga terdapat settingan Set end flag yaitu settingan untuk mengirimkan kode Enter dan new line setelah mengirimkan data yang kita maksudkan. Disini juga terdapat settingan Set Trigger Mode yaitu settingan untuk pengiriman data pada saat tombol ditekan atau pada saat tombol ditekan lalu dilepas kembali atau pada saat tombol ditekan terus data dikirimkan secara terus menerus.
27
Disini juga terdapat settingan untuk menentukan frekuensi perulangan data yang terus menerus dikirimkan pada saat tombol ditekan terus data dikirimkan secara terus menerus. Disini juga terdapat settingan untuk menentukan data yang dikirimkan itu berupa data hexa atau data ASCII. 2.7
Motor DC Motor DC merupakan jenis motor yang menggunakan tegangan searah
sebagai sumber tenaganya. Dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar pada satu arah, dan bila polaritas dari tegangan tersebut dibalik maka arah putaran motor akan terbalik pula seperti pada gambar 2.1. Polaritas dari tegangan yang diberikan pada dua terminal menentukan arah putaran motor sedangkan besar dari beda tegangan pada kedua terminal menentukan kecepatan motor.
Gambar 2.18 Motor DC Konstruksi motor DC pada gambar 2.1 memiliki 2 bagian dasar,yaitu :
28
1. Bagian yang tetap/stasioner yang disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari sebuah koil (elektro magnet) ataupun magnet permanen. 2. Bagian yang berputar disebut rotor. Rotor ini berupa sebuah koil dimana arus listrik mengalir. Gaya elektromagnet pada motor DC timbul saat ada arus yang mengalir pada penghantar yang berada dalam medan magnet. Medan magnet itu sendiri ditimbulkan oleh megnet permanen. Garis-garis gaya magnet mengalir diantara dua kutub magnet dari kutub utara ke kutub selatan. Menurut hukum gaya Lourentz, arus yang mengalir pada penghantar yang terletak dalam medan magnet akan menimbulkan gaya. Gaya F, timbul tergantung pada arah arus I, dan arah medan magnet B.
2.8
Driver Motor DC L293 Pada dasarnya beberapa aplikasi yang menggunakan motor DC harus
dapat mengatur kecepatan dan arah putar dari motor DC itu sendiri. Untuk dapat melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM (Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. Tetapi dipasaran telah disediakan IC L293D sebagai driver motor DC yang dapat mengatur arah putar dan disediakan pin untuk input yang berasal dari PWM untuk mengatur kecepatan motor DC. Untuk lebih memahami tentang membangkitkan sinyal PWM menggunakan fitur Timer pada mikrokontroler AVR dapat membacanya pada postingan tutorial AVR tentang PWM. Sebelum membahas
29
tentang IC L293D, alangkah baiknya jika kita membahas driver motor DC menggunakan rangkaian analog terlebih dahulu.
Gambar 2.19 Driver Motor DC L293D Jika diinginkan sebuah motor DC yang dapat diatur kecepatannya tanpa dapat mengatur arah putarnya, maka kita dapat menggunakan sebuah transistor sebagai driver. Untuk mengatur kecepatan putar motor DC digunakan PWM yang dibangkitkan melalui fitur Timer pada mikrokontroler. Sebagian besar power supply untuk motor DC adalah sebesar 12 V, sedangkan output PWM dari mikrokontroler maksimal sebesar 5 V. Oleh karena itu digunakan transistor sebagai penguat tegangan. Dibawah ini adalah gambar driver motor DC menggunakan transistor. Salah satu jenis motor yang sering digunakan dalam bidang kontrol yaitu Motor DC. Motor DC akan berputar jika dialiri tegangan dan arus DC. Sistem pengaturan motor DC yang sering digunakan pada sistem kontrol yaitu dengan H-Bridge yang pada pada dasarnya adalah 4 buah transistor yang difungsikan sebagai saklar.
30
Pengaturan motor DC yaitu meliputi kecepatan dan arah. Pengaturan arah yaitu dengan cara membalik tegangan logika masukan H-bridge. Sedangkan sistem pengendalian kecepatan motor DC digunakan prinsip PWM (Pulse Width Modulator) yaitu suatu metode pengaturan kecepatan putaran motor DC dengan mengatur lamanya waktu pensaklaran aktif (Duty Cycle). Motor DC merupakan sebuah komponen yang memerlukan arus yang cukup besar untuk menggerakannya. Oleh karena itu motor DC biasanya memiliki penggerak tersendiri. Pada tugas akhir ini motor DC akan digerakkan dengan menggunakan PWM yang telah terintegrasi dengan rangkaian HBridge. Dengan rangkaian H-Bridge yang memiliki input PWM ini, maka selain arah kita juga bisa mengendalikan kecepatan putar motor DC tersebut.
2.9
Aplikasi
Program
Arduino
IDE
(
Integrated
Development
Environment) Ketika kita membuka program Arduino IDE ( Integrated Development Environment ), akan terlihat serupa dengan tampilan gambar 2.8. Jika menggunakan Windows atau Linux, akan terlihat perbedaan, tetapi pada dasarnya IDE akan sama, tidak perduli Operasi sistem apa yang digunakan.
31
Gambar 2.20 Tampilan Program IDE 2.10
Limit Switch Limit Switch ini berfungsi untuk menghentikan putaran motor DC, saat
pintu gerbang pada posisi membuka atau menutup. Prinsip kerja limit switch diaktifkan dengan penekanan pada tombolnya, pada batas (daerah yang telah ditentukan sebeumnya sehingga terjadi pemutusan atau penghubungan rangkaian dari rangkaian tersebut. Limit switch memiliki 2 kontak yaitu NO ( Normally Open ) dan kontak NC ( Normally Close ) dimana salah satu kontak akan aktif jika tombolnya tertekan.
Gambar 2.21 Limit Switch
32
2.11
Arduino Programming Tool Arduino merupakan perangkat pemrograman mikrokontroler jenis AVR
yang tersedia secara bebas (open source) untuk membuat prototip elektronika yang dapat berinteraksi dengan keadaan sekitarnya. Arduino dapat menerima input dari berbagai jenis sensor dan mengendalikan sensor, servo, dan actuator lainnya.
Toolbar
Coding Area
Application Status Message
Gambar 2.22 Tampilan Utama Aplikasi Arduino
1.
Toolbar
a
b
c
d
e
f
g
Gambar 2.23 Toolbar Pada Aplikasi Arduino
a.
Verify Tombol ini digunakan untuk meng-compile program yang telah dibuat.
Compile berguna untuk mengetahui apakah program yang telah dibuat benar atau
33
masih memilki kesalahan. Apabila ada kesalahan yang terjadi, bagian message akan menampilkan letak kesalahan tersebut. b.
Stop Tombol ini digunakan untuk membatalkan proses verify yang sedang
berlangsung. c.
New Tombol ini digunakan untuk membuat coding pada layar baru.
d. Open Tombol ini digunakan untuk membuka coding
yang sudah disimpan
sebelumnya. e.
Save Tombol ini digunakan untuk menyimpan coding yang sudah dikerjakan.
f.
Upload Tombol ini digunakan untuk mengirim coding yang sudah dikerjakan ke
mikrokontroler.
g.
Serial Monitor Tombol ini digunakan untuk melihat aktivitas komunikasi serial dari
mikrokontroler baik yang dikirm oleh user sebaliknya.
2. Coding Area
ke mikrokontroler maupun
34
Bagian ini merupakan tempat penulisan coding dengan menggunakan bahasa pemrograman C. Coding di dalam Arduino memiliki dua bagian utama, yaitu ; • void setup( ) { } o Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya. • void loop( ) { } o Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan. 3. Application Status Bagian ini memberikan informasi kepada pengguna mengenai tugas yang yang sedang dujalankan oleh aplikasi Arduino 4. Message Bagian ini memberikan informasi kepada pengguna mengenai besarnya ukuran file dari coding yang dibuat dan letak kesalahan yang terjadi pada coding.
5.
Syntax Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format
penulisan. • //(komentar satu baris)
35
o Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kodekode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program. •/* */(komentar banyak baris) o Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program. • { }(kurung kurawal) o Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan). • ;(titk koma) o Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan). 6.
Variabel Sebuah program secara garis besar dapat didefinisikan sebagai instruksi
untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya. • int (integer) o Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
• long (long) o Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647.
36
• boolean (boolean) o Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM. • float (float) o Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38. • char (character) o Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM. 7.
Operator Matematika Operator yang digunakan untuk memanipulasi angka (bekerja seperti
matematika yang sederhana). a) = o Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20). b) % o Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2). c) + o Penjumlahan d) o Pengurangan e) * o Perkalian
37
f) / o Pembagian
8.
Operator Pembanding
Digunakan untuk membandingkan nilai logika. a. == o Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar)) b. != o Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah)) c. < o Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)) d. > o Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)) . 9.
Struktur Pengaturan Program sangat tergantung pada pengaturan apa yang akan dijalankan
berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di internet). 1. if..else, dengan format seperti berikut ini: if (kondisi) { } else if (kondisi) { }
38
else { } Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan.
2. for, dengan format seperti berikut ini: for (int i = 0; i < #pengulangan; i++) { } Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i±. 10. Digital 1. pinMode(pin, mode) Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT. 2. digitalWrite(pin, value) Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). 3. digitalRead(pin) Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
39
11. Analog Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital. 1. analogWrite(pin, value) Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V). 2. analogRead(pin) Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts).