BAB II LANDASAN TEORI 2.1 Arduino UNO Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller, dapat dikoneksikan dengan komputer menggunakan kabel USB.
6
7
Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board kita bisa lihat pin digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19. dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16. Sifat open source arduino juga banyak memberikan keuntungan tersendiri untuk kita dalam menggunakan board ini, karena dengan sifat open source komponen yang kita pakai tidak hanya tergantung pada satu merek, namun memungkinkan kita bisa memakai semua komponen yang ada dipasaran. Bahasa pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami mikrokontroler. Arduino juga menyederhanakan proses bekerja dengan mikrokontroler, sekaligus menawarkan berbagai macam kelebihan antara lain: 1. Murah - Papan (perangkat keras) Arduino biasanya dijual relatif murah (antara 125ribu hingga 400ribuan rupiah saja) dibandingkan dengan platform mikrokontroler pro lainnya. Jika ingin lebih murah lagi, tentu bisa dibuat sendiri dan itu sangat mungkin sekali karena semua sumber daya untuk membuat sendiri Arduino tersedia lengkap di website Arduino
8
bahkan di website-website komunitas Arduino lainnya. Tidak hanya cocok untuk Windows, namun juga cocok bekerja di Linux. 2. Sederhana dan mudah pemrogramannya
-
Perlu diketahui bahwa
lingkungan pemrograman di Arduino mudah digunakan untuk pemula, dan cukup fleksibel bagi mereka yang sudah tingkat lanjut. Untuk guru/dosen, Arduino berbasis pada lingkungan pemrograman Processing, sehingga jika mahasiswa atau murid-murid terbiasa menggunakan Processing tentu saja akan mudah menggunakan Arduino. 3. Perangkat lunaknya Open Source - Perangkat lunak Arduino IDE dipublikasikan sebagai Open Source, tersedia bagi para pemrogram berpengalaman untuk pengembangan lebih lanjut. Bahasanya bisa dikembangkan lebih lanjut melalui pustaka-pustaka C++ yang berbasis pada Bahasa C untuk AVR. 4. Perangkat kerasnya Open Source - Perangkat keras Arduino berbasis mikrokontroler
ATMEGA8,
ATMEGA168,
ATMEGA328
dan
ATMEGA1280 (yang terbaru ATMEGA2560). Dengan demikian siapa saja bisa membuatnya (dan kemudian bisa menjualnya) perangkat keras Arduino ini, apalagi bootloader tersedia langsung dari perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat perangkat Arduino beserta periferal-periferal lain yang dibutuhkan. Berikut ini adalah konfigurasi dari arduino uno:
Mikronkontroler ATmega328
Beroperasi pada tegangan 5V
9
Tegangan input (rekomendasi) 7 - 12V
Batas tegangan input 6 - 20V
Pin digital input/output 14 (6 mendukung output PWM)
Pin analog input 6
Arus pin per input/output 40 mA
Arus untuk pin 3.3V adalah 50 mA
Flash Memory 32 KB (ATmega328) yang mana 2 KB digunakan oleh bootloader
SRAM 2 KB (ATmega328)
EEPROM 1KB (ATmega328)
Kecepatan clock 16 MHz
Gambar 2.1 Arduino UNO
10
2.1.1 Mikrokontroler AT Mega 328 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. 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 komponenkomponen 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
11
mikroprosesor memori, dan alat input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler ini maka :
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. 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).
12
Mikrokontroller ini memiliki beberapa fitur antara lain :
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
13
siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah 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.
Gambar 2.2 AT Mega 328
14
Gambar 2.3 Sketsa AT Mega 328
2.1.2 Power (Daya) Arduino UNO dapat disuplai melalui koneksi USB atau dengan sebuah power suplai eksternal. Sumber daya dipilih secara otomatis. Suplai eksternal (non-USB) dapat diperoleh dari sebuah adaptor AC ke DC atau battery. Adaptor dapat dihubungkan dengan mencolokkan sebuah center-positive plug yang panjangnya 2,1 mm ke power jack dari board. Kabel lead dari sebuah battery dapat dimasukkan dalam header/kepala pin Ground (Gnd) dan pin Vin dari konektor power. Board Arduino UNO dapat beroperasi pada sebuah suplai eksternal 6 sampai 20 Volt. Jika disuplai dengan yang lebih kecil dari 7 V, kiranya pin 5 Volt mungkin mensuplai kecil dari 5 Volt dan board Arduino UNO bisa menjadi tidak stabil. Jika menggunakan suplai yang lebih dari besar 12 Volt, voltage regulator bisa kelebihan panas dan membahayakan board
15
Arduino UNO. Range yang direkomendasikan adalah 7 sampai 12 Volt. Pin-pin dayanya adalah sebagai berikut: VIN. Tegangan input ke Arduino board ketika board sedang menggunakan sumber suplai eksternal (seperti 5 Volt dari koneksi USB atau sumber tenaga lainnya yang diatur). Kita dapat menyuplai tegangan melalui pin ini, atau jika penyuplaian tegangan melalui power jack, aksesnya melalui pin ini. 5V. Pin output ini merupakan tegangan 5 Volt yang diatur dari regulator pada board. Board dapat disuplai dengan salah satu suplai dari DC power jack (7-12V), USB connector (5V), atau pin VIN dari board (7-12). Penyuplaian tegangan melalui pin 5V atau 3,3V membypass regulator, dan dapat membahayakan board. Hal itu tidak dianjurkan. 3V3. Sebuah suplai 3,3 Volt dihasilkan oleh regulator pada board. Arus maksimum yang dapat dilalui adalah 50 mA. GND. Pin ground.
2.1.3 Memori ATmega328 mempunyai 32 KB (dengan 0,5 KB digunakan untuk bootloader). ATmega 328 juga mempunyai 2 KB SRAM dan 1 KB EEPROM (yang dapat dibaca dan ditulis (RW/read and written) dengan EEPROM library).
16
2.1.4 Input dan Output Setiap 14 pin digital pada Arduino Uno dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Fungsi-fungsi tersebut beroperasi di tegangan 5 Volt. Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm. Selain itu, beberapa pin mempunyai fungsi-fungsi spesial:
Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin ini dihubungkan ke pin-pin yang sesuai dari chip Serial Atmega8U2 USB-ke-TTL.
External Interrupts: 2 dan 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (gangguan) pada sebuah nilai rendah, suatu kenaikan atau penurunan yang besar, atau suatu perubahan nilai. Lihat fungsi attachInterrupt() untuk lebih jelasnya.
PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsi analogWrite()
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.
LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati.
17
Arduino UNO mempunyai 6 input analog, diberi label A0 sampai A5, setiapnya memberikan 10 bit resolusi (contohnya 1024 nilai yang berbeda). Secara default, 6 input analog tersebut mengukur dari ground sampai tegangan 5 Volt, dengan itu mungkin untuk mengganti batas atas dari rangenya dengan menggunakan pin AREF dan fungsi analogReference(). Di sisi lain, beberapa pin mempunyai fungsi spesial:
TWI: pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI dengan menggunakan Wire library
Ada sepasang pin lainnya pada board: AREF. Referensi tegangan untuk input analog. Digunakan dengan analogReference(). Reset. Membawa saluran ini LOW untuk mereset mikrokontroler. Secara khusus, digunakan untuk menambahkan sebuah tombol reset untuk melindungi yang memblock sesuatu pada board. Lihat juga pemetaan antara pin Arduino dengan port Atmega328. Pemetaan untuk Atmega8, 168, dan 328 adalah identik.
2.1.5 Komunikasi Arduino UNO mempunyai sejumlah fasilitas untuk komunikasi dengan sebuah komputer, Arduino lainnya atau mikrokontroler lainnya. Atmega 328 menyediakan serial komunikasi UART TTL (5V), yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah Atmega 16U2 pada channel board serial komunikasinya melalui USB dan muncul sebagai sebuah port virtual ke
18
software pada komputer. Firmware 16U2 menggunakan driver USB COM standar, dan tidak ada driver eksternal yang dibutuhkan. Bagaimanapun, pada Windows, sebuah file inf pasti dibutuhkan. Software Arduino mencakup sebuah serial monitor yang memungkinkan data tekstual terkirim ke dan dari board Arduino. LED RX dan TX pada board akan menyala ketika data sedang ditransmit melalui chip USB-to-serial dan koneksi USB pada komputer Sebuah Software Serial library memungkinkan untuk komunikasi serial pada beberapa arduino.
Atmega328 juga mensupport komunikasi I2C (TWI) dan SPI.
Software Arduino mencakup sebuah Wire library untuk memudahkan menggunakan bus I2C, lihat dokumentasi untuk lebih jelas. Untuk komunikasi SPI, gunakan SPI library.
2.1.6 Tutorial Pemrograman Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada anda yang hanya mempunyai sedikit pengalaman pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan software Arduino. Untuk penjelasan yang lebih mendalam, web Arduino.cc adalah sumber yang lengkap. Struktur Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada:
void setup( ) { } , Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
19
void loop( ) { } , 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.
Syntax, Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan:
//(komentar satu baris) , Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.
/* */(komentar banyak baris) , 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) , Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
;(titk koma) , Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).
Variabel, Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya:
20
int (integer) , Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
long (long) , 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.
boolean (boolean) , Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM.
float (float) , 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) , Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.
Operator Matematika, Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana):
= , Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).
% , Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).
+ , Penjumlahan
- , Pengurangan
* , Perkalian
21
/ , Pembagian
Operator Pembanding, Digunakan untuk membandingkan nilai logika:
== , Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar))
!= , Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah))
< , Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar))
> , Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))
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) { } 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++) { }
22
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–. 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). 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
23
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).
2.1.7 Kabel USB Kabel USB atau biasa disebut juga Kabel data digunakan untuk menghubungkan jalur data dari sebuah perangkat/Device menuju Interface yang akan digunakan, dengan tujuan agar dapat mentransfer data yang diinginkan. Misalnya digunakan pada pc untuk mentransfer data ke arduino.
Gambar 2.4 Kabel USB
2.2 Sensor Ultrasonik HC-SR04 Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang suara dan digunakan untuk mendeteksi keberadaan suatu objek tertentu di depannya, frekuensi kerjanya pada daerah diatas gelombang suara dari 40 KHz hingga 400 KHz.
24
HC-SR04 ultrasonik merupakan sensor jarak non-kontak mempunyai fungsi penginderaan, yang dapat digunakan untuk mengukur jarak kisaran 2cm400cm, dan akurasi kisaran hingga 2mm,. Modul meliputi pemancar ultrasonik, penerima dan rangkaian kontrol. Prinsip kerja :
Menggunakan IO trigger untuk memulai setidaknya 10us high level signal,
Modul ini secara otomatis mengirimkan delapan 40 kHz dan mendeteksi apakah ada sinyal pulsa kembali.
Jika ada sinyal kembali, sampai sampai tinggi, waktu output tinggi IO durasi waktu dari pengiriman ultrasonik untuk kembali. Uji distance = (high level time×velocity of sound (340M/S) /2
Kabel terhubung langsung sebagai berikut:
5V Supply
Trigger Pulse Input
Echo Pulse Output
0V Ground
Spesifikasi:
power supply :5V DC
quiescent current : <2mA
effectual angle: <15°
ranging distance : 2cm – 500 cm
resolution : 0.3 cm Ada 4 pin dari modul: VCC, Trig, Echo, GND. Jadi antar muka yang
sangat mudah bagi kontroler untuk menggunakannya. Semua proses: tarik pin
25
Trig ke tinggi selama lebih dari 10us impuls, modul awal mulai, selesai mulai, Jika Anda menemukan sebuah objek di depan, Echo pin akan tinggi, dan berdasarkan pada jarak yang berbeda, itu akan mengambil durasi yang berbeda dari tinggi. Jadi kita bisa dihitung jaraknya dengan mudah, Distance = ((Duration of high level)*(Sonic :340m/s))/2.
Gambar 2.5 Sensor Ultrasonik HC-SR04
2.2.1 Gelombang Ultrasonik Gelombang ultrasonik adalah gelombang dengan besar frekuensi diatas frekuensi gelombang suara yaitu lebih dari 20 KHz. Seperti telah disebutkan bahwa 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
26
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). 2.2.2 Pemancar Ultrasonik (Transmitter) Pemancar Ultrasonik ini berupa rangkaian yang memancarkan sinyal sinusoidal berfrekuensi di atas 20 KHz menggunakan sebuah transducer transmitter ultrasonic. Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adlah sebagai berikut : 1. Sinyal 40 kHz dibangkitkan melalui mikrokontroler. 2. Sinyal tersebut dilewatkan pada sebuah resistor sebesar 3kOhm untuk pengaman ketika sinyal tersebut membias maju rangkaian dioda dan transistor. 3. Kemudian sinyal tersebut dimasukkan ke rangkaian penguat arus yang merupakan kombinasi dari 2 buah dioda dan 2 buah transistor. 4. Ketika sinyal dari masukan berlogika tinggi (+5V) maka arus akan melewati dioda D1 (D1 on), kemudian arus tersebut akan membias transistor T1, sehingga arus yang akan mengalir pada kolektotr T1 akan besar sesuai dari penguatan dari transistor. 5. Ketika sinyal dari masukan berlogika tinggi (0V) maka arus akan melewati dioda D2 (D2 on), kemudian arus tersebut akan membias transistor T2, sehingga arus yang akan mengalir pada kolektotr T2 akan besar sesuai dari penguatan dari transistor.
27
6. Resistor R4 dan R6 berfungsi untuk membagi tengangan menjadi 2,5 V. Sehingga pemancar ultrasonik akan menerima tegangan bolak – balik dengan Vpeak-peak adalah 5V (+2,5 V s.d -2,5 V).
2.2.3 Penerima Ultrasonik (Receiver) Penerima Ultrasonik ini akan menerima sinyal ultrasonik yang dipancarkan oleh pemancar ultrasonik dengan karakteristik frekuensi yang sesuai. Sinyal yang diterima tersebut akan melalui proses filterisasi frekuensi dengan menggunakan rangkaian band pass filter (penyaring pelewat pita), dengan nilai frekuensi yang dilewatkan telah ditentukan. Kemudian sinyal keluarannya akan dikuatkan dan dilewatkan ke rangkaian komparator (pembanding) dengan tegangan referensi ditentukan berdasarkan tegangan keluaran penguat pada saat jarak antara sensor kendaraan mini dengan sekat/dinding pembatas mencapai jarak minimum untuk berbelok arah. Dapat dianggap keluaran komparator pada kondisi ini adalah high (logika ‘1’) sedangkan jarak yang lebih jauh adalah low (logika’0’). Logika-logika biner ini kemudian diteruskan ke rangkaian pengendali (mikrokontroler). Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adalah sebagai berikut : 1. Pertama – tama sinyal yang diterima akan dikuatkan terlebih dahulu oleh rangkaian transistor penguat Q2. 2. Kemudian sinyal tersebut akan di filter menggunakan High pass filter pada frekuensi > 40kHz oleh rangkaian transistor Q1.
28
3. Setelah sinyal tersebut dikuatkan dan di filter, kemudian sinyal tersebut akan disearahkan oleh rangkaian dioda D1 dan D2. 4. Kemudian sinyal tersebut melalui rangkaian filter low pass filter pada frekuensi < 40kHz melalui rangkaian filter C4 dan R4. 5. Setelah itu sinyal akan melalui komparator Op-Amp pada U3. 6. Jadi ketika ada sinyal ultrasonik yang masuk ke rangkaian, maka pada komparator akan mengeluarkan logika rendah (0V) yang kemudian akan diproses oleh mikrokontroler untuk menghitung jaraknya.
2.3 LCD 16x2 LCD (Liquid Crystal Display) merupakan alat untuk menampilkan karakter data dari sebuah alat masukan seperti Mikrokontroler. LCD untuk peralatan mikrontroler ada beberapa tipe, yaitu 8x2, 16x2, 20x2, 20x4, 40×4. Kali kita penulis memakai komponen LCD tipe 16x2. LCD dibagi menjadi dua bagian yaitu bagian depan panel LCD yang terdiri dari banyak dot atau titik LCD dan mikrokontroler yang menempel pada bagian belakang panel LCD yang berfungsi untuk mengatur titik-titik LCD sehingga dapat menampilkan huruf, angka, dan simbol khusus yang dapat terbaca.
Gambar 2.6 LCD 16x2
29
2.3.1 Fungsi Pin LCD Modul LCD berukuran 16 karakter x 2 baris dengan fasilitas backlighting memiliki 16 pin yang terdiri dari 8 jalur data, 3 jalur kontrol dan jalur-jalur catu daya, dengan fasilitas pin yang tersedia maka lcd 16 x 2 dapat digunakan secara maksimal untuk menampilkan data yang dikeluarkan oleh mikrokontroler. Tabel 2.1 Konfigurasi Pin LCD 16x2
Sedangkan secara umum pin-pin LCD diterangkan sebagai berikut :
Pin 1 dan 2, Merupakan sambungan catu daya, Vss dan Vdd. Pin Vdd dihubungkan dengan tegangan positif catu daya, dan Vss pada 0V atau ground. Meskipun data menentukan catu 5 Vdc (hanya pada beberapa mA), menyediakan 6V dan 4.5V yang keduanya bekerja dengan baik, bahkan 3V cukup untuk beberapa modul.
30
Pin 3, Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display. Idealnya pin ini dihubungkan dengan tegangan yang bisa dirubah untuk memungkinkan pengaturan terhadap tingkatan kontras display sesuai dengan kebutuhan, pin ini dapat dihubungkan dengan variable resistor sebagai pengatur kontras.
Pin 4, Pin 4 merupakan Register Select (RS), masukan yang pertama dari tiga command control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan menuju modulnya.
Pin 5, Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi status dari register-nya.
Pin 6, Enable (E), input ini digunakan untuk transfer aktual dari perintahperintah atau karakter antara modul dengan hubungan data. Ketika menulis ke display, data ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia hingga sinyal low lagi.
Pin 7-14, Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data dapat ditransfer ke dan dari display.
Pin 16, Pin 16 dihubungkan kedalam tegangan 5 Volt untuk memberi tegangan dan menghidupkan lampu latar/Back Light LCD.
31
2.3.2 Pengalamatan LCD Pengalamatan LCD dimulai dengan menghidupkan modul LCD, karakter kursor pada LCD diposisikan pada awal baris pertama (alamat 00H). Masingmasing sewaktu sebuah karakter dimasukkan, kursor bergerak ke alamat selanjutnya 01H, 02H dan seterusnya. Sebuah alamat awal yang baru bergerak ke alamat selanjutnya, harus dimasukkan sebagai sebuah perintah. Dengan cara mengirimkan sebuah perintah Set Display Address, nilai 80H. Dengan dua line karakter, baris yang pertama dari karakter, baris pertama mulai pada alamat 00H dan baris ke dua pada alamat 40H.
Gambar 2.7 Pengalamatan LCD 16x2
2.4 Regulator Tegangan Regulator tegangan adalah bagian power supply yang berfungsi untuk memberikan stabilitas output pada suatu power supply. Output tegangan DC dari penyearah tanpa regulator mempunyai kecenderungan berubah harganya saat dioperasikan. Adanya perubahan pada masukan AC dan variasi beban merupakan penyebab utama terjadinya ketidakstabilan pada power supply. Pada sebagian peralatan elektronika, terjadinya perubahan catu daya akan berakibat cukup serius. Untuk mendapatkan pencatu daya yang stabil diperlukan regulator
32
tegangan. Regulator tegangan untuk suatu power supply paling sederhana adalah menggunakan dioda zener. Rangkaian dasar penggunaan dioda zener sebagai regulator tegangan dapat dilihat pada gambar rangkaian dibawah. Regulator Tegangan Pada Power Supply regulator tegangan, regulator tegangan zener, regulator zener ,teori regulator, fungsi regulator, rangkaian regulator, skema regulator, regulator power supply, membuat regulator, dasar regulator, rangkaian regulator zener, teori regulator tegangan. contoh regulator tegangan Rangkaian pencatu daya (power supply) dengan regulator diode zener pada gambar rangkaian diatas, merupakan contoh sederhana cara pemasangan regulator tegangan dengan dioda zener. Diode zener dipasang paralel atau shunt dengan L dan R . Regulator ini hanya memerlukan sebuah diode zener terhubung seri dengan resistor RS . Perhatikan bahwa diode zener dipasang dalam posisi reverse bias. Dengan cara pemasangan ini, diode zener hanya akan berkonduksi saat tegangan reverse bias mencapai tegangan breakdown dioda zener. Penyearah berupa rangkaian diode tipe jembatan (bridge) dengan proses penyaringan atau filter berupa filter-RC. Resistor seri pada rangkaian ini berfungsi ganda. Pertama, resistor ini menghubungkan C1 dan C2 sebagai rangkaian filter. Kedua, resistor ini berfungsi sebagai resistor seri untuk regulator tegangan ( dioda zener ). Diode zener yang dipasang dapat dengan sembarang dioda zener dengan tegangan breakdown misal dioda zener 9 volt. Tegangan output transformer harus lebih tinggi dari tegangan breakdown dioda zener, misalnya untuk penggunaan dioda zener 9 volt maka gunakan output
33
transformer 12 volt. Tegangan breakdown dioda zener biasanya tertulis pada body dari dioda tersebut.
Gambar 2.8 Regulator Tegangan 5 Volt
2.5 Kabel Jumper Yaitu kabel yang digunakan untuk menyambung jalur. Kabel Jumper mempunyai fungsi untuk menyambung rangkaian jalur yang putus pada PCB.
Gambar 2.9 Kabel Jumper
2.6 Tombol Push On/Off Yaitu adalah tombol menutup sirkuit bila ditekan dan tombol yang membuka sirkuit bila ditekan. Jika tekanan dilepaskan atau terjadi tekanan
34
berikutnya, maka akan menormalkan kembali tombol ke posisi semula dan sirkuit kembali ke status semula.
Gambar 2.10 Tombol Push On/Off
2.7 Baterai Baterai merupakan sebuah sel listrik dimana di dalamnya berlangsung proses elektrokimia yang reversibel (dapat berbalikan) dengan efisiensinya yang tinggi. Yang dimaksud dengan proses elektrokimia reversibel, adalah di dalam baterai dapat berlangsung proses pengubahan kimia menjadi tenaga listrik (proses pengosongan), dan sebaliknya dari tenaga listrik menjadi tenaga kimia, pengisian kembali dengan cara regenerasi dari elektroda-elektroda yang dipakai, yaitu dengan melewatkan arus listrik dalam arah (polaritas) yang berlawanan di dalam sel. Pada rangakaian alat pengukuran jarak portable ini penulis menggunakan baterai tipe Lipo (Lithium Polimer) 12 Volt. Baterai lipo ini biasa digunakan dalam dunia RC. Baterai lipo 12 volt ini dipilih karena arduino membutuhkan suplai 5-12 volt.
Gambar 2.11 Baterai UltraFire