BAB II
TINJAUAN PUSTAKA
2.1. Sensor
adalah transduser yang berfungsi untuk mengolah variasi gerak, panas, cahaya atau sinar, magnetis, dan kimia menjadi tegangan serta arus listrik.
penting pada berbagai peralatan. Sensor juga berfungsi sebagai alat untuk mendeteksi dan juga untuk mengetahui magnitude. Transduser sendiri memiliki arti mengubah, resapan dari bahasa latin traducere Bentuk perubahan yang dimaksud adalah kemampuan merubah suatu
energi kedalam bentuk energi lain. Energi yang diolah bertujuan untuk menunjang daripada kinerja piranti yang menggunakan sensor itu sendiri. Sensor sendiri sering digunakan dalam
proses pendeteksi untuk proses pengukuran. Sensor yang sering menjadi digunakan dalam berbagai rangkaian elektronik antara lain
Dari yang banyak diminati oleh berbagai pabrikan elektronik. Salah satu pabrikan yang tengah gencar menggunakan sensor pada produk mereka adalah pabrikan handphone dengan model
touch screen. Sensor tekanan pada berbagai handphone sekarang ini membutuhkan adanya dukungan dari sensor tekanan. Selain pada gadget dengan teknologi canggih tersebut,
sensor tekanan juga biasa diaplikasikan kepada berbagai alat elektronik lain seperti kalkulator serta remot. Adanya tekanan pada tombol-tombol pada kalkulator ataupun remot bekerja dengan mengubah daya tekan tersebut menjadi daya atau sinyal listrik.
Yang dapat digunakan denga
masukan kendali gerak seperti pada aplikasi permainan, kendali penempatan motor servo, atau kendali masukan dua sumbu analog lainnya.Joystick sumbu ganda (bi-axial) tipe ini adalah tipe yang sama dengan yang digunakan di gagang kendali analog pada konsol
Sony Playstation 2. Tersambung dalam tombol dari plastik berkualitas tinggi ini adalah dua potensiometer tipe metal rocker yang teruji daya tahan dan responsivitasnya.Selain
dapat membaca masukan gerakan pada 2 sumbu horisontal X dan Y secara presisi dan akurat, joystick ini juga dapat berfungsi sebagai tombol tekan pada sumbu-Z.
Gambar 2.1 sensor joystick
2.2.1. Cara Kerja Joystick
Kebanyakan joystick dua-dimensi, memiliki dua sumbu gerakan mirip dengan
mouse, tapi joystick satu dan tiga dimensi memang ada. Sebuah joystick umumnya
sumbu Y. Dalam joystick yang dikonfigurasi untuk gerakan tiga-dimensi, memutar
tongkat kiri (berlawanan arah jarum jam) atau kanan (searah jarum jam) pergerakan sinyal sepanjang sumbu Z. Ketiga sumbu X, Y dan Z yang dalam kaitannya dengan suatu gulungan, bola, dan pesawat. Sebuah joystick analog adalah joystick yang menyatakan
berulang kembali yaitu suatu ukuran sudut pergerakan ke segala arah pada bidang atau ruang (biasanya menggunakan potensiometer) dan joystick digital yang hanya
memberikan sinyal on / off untuk empat arah yang berbeda, dan kemungkinan kombinasi mekanis (seperti atas-kanan, kiri-bawah). Joystick digital sangat umum sebagai kontroler game untuk konsol permainan video, mesin arcade, dan komputer rumah dari
1980-an.Selain itu joystick sering memiliki tombol api satu atau lebih, digunakan untuk memicu suatu tindakan. Ini adalah tombol sederhana untuk menekan on / off. Beberapa
joystick memiliki kemampuan haptic feedback. Ini yang disebut perangkat aktif, bukan hanya perangkat input. Komputer dapat mengembalikan sinyal ke joystick yang menyebabkan perlawanan gerakan dengan kekuatan yang kembali atau membuat joystick
bergetar.
2.3. Arduino Uno R3
Arduino merupakan mikrokontroler yang memang dirancang untuk bisa digunakan dengan mudah oleh para seniman dan desainer. Dengan demikian, tanpa mengetahui bahasa pemograman, Arduino bisa digunakan untuk menghasilkan karya
yang canggih. Hal ini seperti yang diungkapkan oleh Mike Schmidt.Menurud Massimo Banzi, salah satu pendiri atau pembuat Arduino, Arduino merupakan sebuah platform hardware open source yang mempunyai input/output (I/O) yang sederhana.Menggunakan
Arduino sangatlah membantu dalam membuat suatu prototyping ataupun untuk melakukan pembuatan proyek. Arduino memberikan I/O yang sudah lengkap dan bisa
digunakan dengan mudah. Arduino dapat digabungkan dengan modul elektro yang lain sehingga proses perakitan jauh lebih efisien.
Arduino merupakan salah satu pengembang yang banyak digunakan. Keistimewaan Arduino adalah hardware yang Open Source. Hal ini sangatlah memberi keleluasaan bagi orang untuk bereksprimen secara bebas dan gratis. Secara umum,
Arduino terdiri atas dua bagian utama, yaitu:
1. Bagian Hardware
Berupa papan yang berisi I/O, seperti Gambar dibawah ini
2. Bagian Software
Berupa Sofware Arduino yang meliputi Integrated Depelopment Enviroment (IDE)
untuk menulis program. Arduino memerlukan instlasi driver untuk menghubungkan dengan komputer. Pada IDE terdapat contoh program dan library untuk pengembangan
program. IDE software Arduino yang digunakan diberi nama Sketch. dibawah ini
Gambar 2.4 IDE Arduino Versi 1.6.5
2.4. Mikrokontroler
2.4.1 Gambaran Mikrokontroler
Menurut Hermawan Sutanto, (1998). Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka
komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna
disimpan dalam ruang RAM yang relatif besar dan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program kontrol disimpan dalam ROM (bisa
Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang
digunakan pada mikrokontroller yang bersangkutan ATMEGA32.
2.4.2 Mikrokontroler Arduino Uno ATMega328
Arduino Uno adalah salah satu produk berlabel arduino yang sebenarnya adalah suatu papan elektronik yang mengandung mikrokontroler ATMega328 (sebuah keping yang
secara fungsional bertindak seperti sebuah komputer). Peranti ini dapat dimanfaatkan untuk mewujudkan rangkaian elektronik dari yang sederhana hingga yang kompleks. Pengendalian LED hingga pengontrolan robot dapat di implementasikan dengan
menggunakan papan yang berukuran relatif kecil ini. Arduino uno mengandung mikroprosesor (berupa atmel AVR) dan dilengkapi dengan oscillator 16 MHZ (yang memungkinkan operasi berbasis waktu dilaksanakan dengan tepat), dan regulator
(pembangkit tegangan) 5 volt. Sejumlah pin tersedia di papan. Pin 0 hingga 13 digunakan untuk isyarat digital, yang hanya bernilai 0 atau 1. Pin A0-A5 digunakan untuk isyarat
analog. Arduino Uno dilengkapi dengan static random acces memory (SRAM) berukuran 1 KB untuk memegang data, flash memory berukuran 32KB, dan erasable programmable read-only memory (EEPROM) untuk menyimpan perintah.
Untuk memberikan gambaran mengenai apa saja yang terdapat di dalam sebuah
mikrokontroler, pada gambar dibawah ini diperlihatkan contoh diagram blok sederhana dari mikrokontroler ATmega328 (dipakai pada Arduino Uno) seperti gambar blok diagram sederhana dibawah ini:
Gambar 2.5Arsitektur ATMega 328
Keterangan Gambar 2.5 diatas sebagai berikut:
1. Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang
digunakan untuk komunikasi serial seperti pada RS-232, RS-422 dan RS-485.
2. 2KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan), digunakan oleh variable-variabel di dalam program.
3. 32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. Selain program, flash memory juga menyimpan bootloader.
4. Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan oleh CPU saat
daya dihidupkan. Setelah boatloader selesai dijalankan, berikutnya program ini akan dijalankan di dalam RAM akan dieksekusi.
5. 1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak
boleh hilang saat daya dimatikan. Tidak digunakan pada papan Arduino.
6. Central Processing Unit (CPU), bagian dari mikrokontroler untuk menjalankan setiap
instruksi dari program.
7. Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan mengeluarkan data (output) digital atau analog.
2.5. Bahasa C
Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang
berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat
bergantung pada jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok.
Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program
lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI (American National Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.jenis mesin. Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C
Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis
program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI ( American National Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.
Kelebihan Bahasa C:
- Bahasa C tersedia hampir di semua jenis computer.
- Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer. - Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci. - Proses executable program bahasa C lebih cepat
- Dukungan pustaka yang banyak. - C adalah bahasa yang terstruktur
- Bahasa C termasuk bahasa tingkat menengah
Penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang
berorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah. melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat. secepat bahasa mesin.
inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.
Kekurangan Bahasa C:
- Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.
- Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
IDE (Integrated Development Environment) Arduino merupakan aplikasi yang mencakup editor, compiler, dan uploader dapat menggunakan semua seri modul keluarga
arduino, seperti Arduino Duemilanove, Uno, Bluetooth, Mega. Kecuali beberapa tipe
board produksi arduino yang memakai mikrokontroler diluar seri AVR, seperti
mikroprosesor ARM. Editor sketch pada IDE arduino juga mendukung fungsi penomoran baris, mendukung fungsi penomoran baris, syntax highlighthing, yaitu pengecekan
sintaksis kode sketch. Arduino yang di pakai adalah arduino versi 1.6.5.
2.7.LCD (Liquid Crystal Display)
Liquid Crystal Display (LCD) adalah komponen yang dapat menampilkan tulisan. Salah
satu jenisnya memiliki dua baris dengan setiap baris terdiri atas enam belas karakter. LCD seperti itu biasa disebut LCD 16x2. [11]
Gambar 2.6 LCD 16x2
LCD memiliki 16 pin dengan fungsi pin masing-masing seperti yang terlihat pada table II.1 dibawah.
Pin
1 VSS Power Catu daya, ground (0v)
2 VDD Power Catu daya positif
3
V0 Power
Pengatur kontras, menurut datasheet, pin
iniperlu dihubungkan dengan pin vs melalui resistor 5kΩ. namun, dalam
praktik, resistor yang digunakan sekitar2,2kΩ
4 RS Input
Register Select
• RS = HIGH : untuk mengirim data
• RS = LOW : untuk mengirim instruksi
5 R/W Input
Pada aplikasi umumnya RW diberi logika rendah “0”.Bus data terdiri dari 4bit atau 8 bit. Jika jalur data 4 bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table deskripsi, interface LCD merupakan sebuah parallel bus,
dalam hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8bit dikirim ke LCD secara
Jika mode 4bit yang digunakan, maka 2 nibble data dikirim untuk membuat
sepenuhnya 8bit (pertama dikirim 4bit MSB lalu 4bit LSB dengan pulsa clock EN setiap nibblenya). Jalur control EN digunakan untuk memberitahu LCD bahwa mikrokontroler mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke
kondisi high “1” dan kemudian menset dua jalur control lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus. Saat jalur lainnya sudah siap, EN harus diset ke “0”
dan tunggu beberapa saat, dan set EN kembali ke high “1”. Ketika jalur RS berada dalam kondisi low “0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high
atau “1”, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf “A” pada layar maka RS harus diset ke “1”. Jalur control R/W
harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high “1”, maka program akan melakukan query data dari LCD
Instruksi pembacaan hanya satu, yaitu Get LCD status, lainnya merupakan instruksi penulisan, Jadi hamper setiap aplikasi yang menggunakan LCD, R/W selalu di
set ke “0”. Jalur data dapat terdiri 4 atau 8 jalur.Mengirimkan data secara parallel baik 4bit atau 8bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting
Mode 8bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/0 (3pin untuk control, 8pin
untuk data).Sedangkan mode 4bit minimal hanya membutuhkan 7bit (3pin untuk control, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau instruksi yang akan ditransfer antara mikrokontroler dan LCD. Jika bit ini diset (RS = 1), maka byte pada
merupakan instruksi yang dikirim ke LCD atau status eksekusi dari instruksi terakhir
yang dibaca
2.7.2 Tipe Data
Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat belajar
bahasa pemrograman. Kita harus dapat menentukan tipe data yang tepat untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun karakter. Hal ini
bertujuan agar program yang kita buat tidak membutuhkan pemesanan kapling memori yang berlebihan. Seorang programmer yang handal harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan dalam pembuatan sebuah program. Secara garis
besar tipe data pada bahasa C dibagi menjadi beberapa bagian antara lain sebagai Berikut Macam-Macam Tipe Data Pada Bahasa C :
1. Tipe Data Karakter
Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data yang dapat
disimpan pada variabel yang bertipe data char adalah (-127)- (127). Sedangkan untuk tipe data unsigned char adalah dari 0- 255. Pada dasarnya setiap karakter memiliki nilai
ASCII (American Standard Code for Information Interchange), nilai inilah yang sebetulnya disimpan pada variabel yang bertipe data karakter ini.
2. Tipe Data Bilangan Bulat
Tipe data bilangan bulat atau dapat disebut juga bilangan desimal merupakan sebuah bilangan yang tidak berkoma. Pada bahasa C terdapat bermacam-macam tipe data yang
dapat kita gunakan untuk menampung bilangan bulat. Kita dapat menyesuaikan penggunaan tipe data dengan terlebih dahulu memperhitungkan seberapa besar nilai yang akan kita simpan. Contohnya seperti berikut, kita akan melakukan operasi penjumlahan
penjumlahan tersebut nilainya akan lebih besar dari 255 dan nilainya pasti positif, oleh
karena itu sebaiknya kita menggunakan tipe data unsigned int. Namun berbeda halnya jika kita ingin melakukan operasi pengurangan -5 - 300, jika dilihat hasilnya akan negatif maka selayaknya digunakan variabel dengan tipe data int.
3. Tipe Data Bilangan Berkoma
Pada bahasa C terdapat dua buah tipe data yang berfungsi untuk menampung data yang berkoma, tipe data tersebut adalah float dan double. Tipe data double dapat
digunakan jika kita membutuhkan variabel yang dapat menampung tipe data berkoma yang bernilai besar.
Tabel 2.2. Tipe Data
Tipe Data Ukuran Jangkauan Nilai
Bit 1 byte 0 atau 1
Long Int 4 byte -2.147.483.648 s/d
2.147.483.647
Unsigned Long Int 4 byte 0 s/d 4.294.967.295
Signed Long Int 4 byte -2.147.483.648 s/d
Float 4 byte 1.2*10-38 s/d 3.4*10+38
Double 4 byte 1.2*10-38 s/d 3.4*10+38
2.7.3 Identifier
Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram
yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut :
1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja).
2. Case sensitive membedakan huruf besar dan huruf kecil.
3. Karakter pertama harus karakter atau underscore ( _ ). Selebihnya boleh angka. 4. Tidak boleh mengandung spasi atau blank.
5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.
2.8 Kabel Pelangi
Kabel dalam
digunakan untuk Menghubungkan satu komponen ke komponen lainnya Kabel seiring dengan perkembangannya dari waktu ke waktu terdiri dari berbagai jenis dan ukuran