BAB II LANDASAN TEORI 2.1 Alat Pendeteksi Uang Kertas Berdasarkan Warna 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 kemudahan dalam transaksi dan perdagangan modern. Salah satu teknologi tersebut adalah pendeteksi nominal uang kertas berdasarkan warna otomatis menggunakan sensor LDR (Light Dependent Resistor ) dan LED RGB ( Red,Blue,Green ). Setiap lapisan masyarakat di seluruh penjuru dunia lazim menggunakan uang sebagai alat pembayaran yang sah dalam bidang perekonomian. Pada umumnya, di setiap negara terdapat dua jenis uang kartal, salah satunya adalah uang kertas. Adapun uang kertas yang dibuat terdiri dari banyak jenis nilai nominal. Tiap-tiap jenis pecahan nominal dari uang kertas tersebut dibuat dengan berbeda-beda sesuai nilai nominalnya, perbedaan dari tiap-tiap jenis pecahan nilai nominal ini bisa diidentifikasi secara elektronik, terutama warnanya. Alat ini dapat digunakan pada kota-kota besar yang membutuhkan kecepatan serta praktis dalam transaksi. Biasanya alat ini banyak digunakan pada tempat-tempat umum seperti Bandara, stasiun, terminal dan pasar. Karena alat ini tidak membutuhkan campur tangan manusia sehingga dalam transaksinya dapat dilakukan 24 jam nonstop. Dalam hal ini, otomasi yang dimaksud adalah mesin penjual minuman (Vending Machine). Saat ini, Vending Machine tidak lagi menggunakan uang logam melainkan menggunakan uang kertas dengan sensor berbasis arduino untuk melakukan pengenalan terhadap obyek uang. Pada penelitian ini, maka perlu dikembangkan sistem kontrol otomasi yang menggantikan sensor berbasis 5 6 mikrokontroller menggunakan web camera. Penelitian ini bertujuan membuat sistem pengenalan keabsahan uang menggunakan metode seleksi warna dan pengenalan nominal uang menggunakan metode deteksi intensitas cahaya. Untuk mengetahui keabsahan uang, fitur yang dikenali oleh sistem berupa warna dan digit angka yang terdapat pada uang. Panel Control LCD. Lubang untuk memasukan uang koin. Lubang untuk memasukan uang kertas. Tempat isi minuman Cofee dengan Cup, jika siap dapat langsung diambil. Tempat ambil minuman kaleng. Gambar 2.1 Mesin Vending. 2.1.1 Alat Pendeteksi Uang Portable Alat pendeteksi uang kertas adalah alat yang dirancang untuk mempermudah proses pembayaran atau transaksi secara otomatis menggunakan uang kertas, alat ini dirancang karena sistem pembayaran yang saat ini masih menggunakan sistem manual. Dalam pembuatan alat ini, menggunakan sensor LDR dan LED RGB, untuk mendeteksi nominal uang kertas berdasarkan warna harus melewati sensor. Alat pendeteksi mata uang ini tersedia dalam bentuk portable atau permanen. Penggunaan alat ini juga tergolong sangat mudah dan 7 cepat. Uang yang akan diperiksa hanya diletakkan di bawah sensor LDR dan dibawah LED RGB dengan cepat bisa terlihat warna dan nominal mata uang. Gambar 2.3 Pendeteksi Mata Uang Portable 2.2 Sensor cahaya LDR (Light Dependent Resistor) Light Dependent Resistor (LDR), merupakan sebuah sensor peka cahaya yang terdiri dari sebuah cakram semikonduktor yang mempunyai dua buah elektroda pada permukaannya. Kerja LDR ini tergantung dari keberadaan cahaya. Pada saat gelap atau cahaya redup, bahan dari cakram tersebut menghasilkan elektron bebas dengan jumlah yang relative kecil. Sehingga hanya ada sedikit electron untuk mengangkut muatan elektrik. Artinya pada saat cahaya redup LDR menjadi konduktor yang buruk, atau bisa disebut juga LDR memiliki resistansi yang besar pada saat gelap atau cahaya redup. Pada saat cahaya terang, ada lebih banyak electron yang lepas dari atom bahan semikonduktor tersebut. Sehingga akan ada lebih banyak electron untuk mengangkut muatan elektrik. Artinya pada saat cahaya terang LDR menjadi konduktor yang baik, atau disebut juga LDR memiliki resistansi yang kecil pada saat cahaya terang. 8 LDR dibuat dari Cadmium Sulphide (CdS).gambar dibawah menunjukan simbol dan bentuk fisik LDR. (a) (b) Gambar 2.2 Simbol LDR dan Bentuk fisik LDR. Dari gambar diatas terlihat dua kaki LDR tidak memiliki polaritas sehingga pemasangannya pada rangkaian bisa dibolak-balik. Parameter-parameter yang perlu diketahui dari LDR adalah: 1. RLDRmin 2. RLDRmax RLDRmin (Tahanan LDR minimal/terkecil) adalah nilai tahanan LDR pada kondisi permukaan LDR terkena cahaya, dan apabila intensitas cahaya tersebut diperbesar, nilai tahanan LDR tidak berubah. RLDRmax (Tahanan LDR maksimal/terbesar) adalah nilai tahanan LDR pada kondisi permukaan LDR terkena cahaya, dan apabila intensitas cahaya tersebut diperkecil, nilai tahanan LDR tidak berubah. 2.3 LED (Light Emitting Diode) Diode pancaran cahaya atau lebih dikenal dengan sebutan LED (Light Emitting Diode) adalah suatu semikonduktor yang memancarkan cahaya monokromatik (cahaya yang hanya terdiri atas satu warna dan satu panjang gelombang) yang tidak koheren ketika diberi tegangan maju. Warna yang dihasilkan bergantung pada bahan semikonduktor yang dipakai dan bisa juga ultraviolet dekat atau inframerah dekat. Sirkuit LED dapat didesain dengan cara menyusun LED dalam posisi seri maupun paralel. Bila disusun secara seri maka yang perlu diperhatikan adalah jumlah tegangan yang diperlukan seluruh LED dalam rangkaian. Namun bila LED 9 diletakkan dalam keadaan paralel, maka yang perlu diperhatikan menjadi jumlah arus yang diperlukan seluruh LED dalam rangkaian. Menyusun LED dalam rangkaian seri akan lebih sulit karena tiap LED mempunyai tegangan maju (Vf) yang berbeda. Perbedaan ini akan menyebabkan bila jumlah tegangan yang diberikan oleh sumber daya listrik tidak cukup untuk membangkitkan chip LED, maka beberapa LED akan tidak menyala. Sebaliknya, bila tegangan yang diberikan terlalu besar akan berakibat kerusakan pada LED yang mempunyai tegangan maju relative rendah. Pada umumnya, LED yang ingin disusun secara seri harus mempunyai tegangan maju yang sama atau paling tidak tak berbeda jauh supaya rangkaian LED ini dapat berkerja secara baik. Gambar 2.4 Bentuk Fisik LED Gambar 2.5 Simbol LED 10 2.4 LCD (Liquid Crystal Display) 16x2 LCD (Liquid Crystal Display) atau dapat di bahasa Indonesiakan sebagai tampilan Kristal Cair adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD bisa memunculkan gambar atau tulisan berwarna dikarenakan terdapat banyak sekali titik cahaya (piksel) yang terdiri dari satu buah kristal cair sebagai sebuah titik cahaya. Walau disebut sebagai titik cahaya, namun kristal cair ini tidak memancarkan cahaya sendiri. Sumber cahaya di dalam sebuah perangkat LCD adalah lampu neon berwarna putih di bagian belakang susunan kristal cair tadi. Titik cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena pengaruh polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring. Dalam menampilkan karakter untuk membantu menginformasikan proses dan control yang terjadi dalam suatu program robot kita sering menggunakan LCD juga. Yang sering digunakan dan paling murah adalah LCD dengan banyak karakter 16x2. Maksudnya semacam fungsi tabel di ms office. 16 menyatakan kolom dan 2 menyatakan baris. Bila kita beli di pasaran, LCD 16x2 masih kosongan, maksudnya kosongan yaitu butuh driver lagi supaya bisa dikoneksikan dengan system minimum dalam suatu mikrokontroler. Driver yang disebutkan berisi rangkaian pengaman, pengatur tingkat kecerahan backligt maupun data, serta untuk mempermudah pemasangan di mikrokontroler (portable red). 11 Gambar 2.6 Bentuk Fisik LCD 16x2 Berikut adalah deskripsi dari pin – pin LCD: Ground (pin 1) adalah masukan tegangan power nol (0) volt dan sinyal ground. Vcc (pin 2) adalah masukan tegangan +5 volt. Vee (pin 3) adalah dihubungkan dengan level ground melalui trimpot. RS (pin 4) adalah data dikirim ke LCD. RW (pin 5) adalah merupakan read select, 1 = read, 0 = write. Enable Clock LCD (pin 6) adalah merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data. 2.5 D0-D7 (pin 7 – pin 14) adalah merupakan data bus 1-7 ke port. Anoda (pin 15) merupakan masukan tegangan positif backlight. Katoda (pin 16) merupakan masukan tegangan negative backlight. Arduino Arduino adalah sebuah kit elektronik open source yang dirancang khusus untuk memudahkan setiap orang dalam belajar membuat robot atau mengembangkan perangkat elektronik yang dapat berinteraksi dengan bermacam macam sensor dan pengendali. Gambar berikut menunjukkan bentuk Arduino Uno. 12 Gambar 2.7 Ardunino Uno Kegunaan Arduino tergantung pada kita yang membuat program. Arduino bisa digunakan unuak mengontrol LED, motor DC maupun aplikasi lainnya. Salah satu kelebihan Arduino adalah kemudahan dalam membangun aplikasi. Dengan Arduino, pengguna mikrokontroler dapat memilih cara cepat dalam membangun sebuah aplikasi berbasis mikrokontroler. Berikut spesifikasi modul Arduino Duemilanove sebagai berikut : Tabel 2.1 Spesifikasi Teknis Arduino Uno Microcontroller ATmega168 Operating Voltage 5V Input Voltage 7-12V (recommended) Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA 13 DC Current for 3.3V Pin 50 mA 16 KB (ATmega168) or 32 KB (ATmega328) of which Flash Memory 2 KB used by bootloader SRAM 1 KB (ATmega168) or 2 KB (ATmega328) EEPROM 512 bytes (ATmega168) or 1 KB (ATmega328) Clock Speed 16 MHz Walaupun bahasa pemograman Arduino adalah bahasa C/C++,tetapi dengan penambahan library dan fungsi – fungsi standar membuat pemograman Arduino lebih mudah dipelajari dan lebih manusiawi. Contoh, untuk mengirimkan nilai HIGH pada pin 10 pada Arduino, cukup menggunakan fungsi digital Writter ( 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, dsd. Berhubung Arduino adalah open source, maka library – library ini juga open source dan dapet di download gratis di website Arduino. Dengan bahasa yang lebih mudah dan adanya library dasar yang lengkap, maka mengambangkan aplikasi elektronik relative lebih mudah. Contoh, kalau kita ingin membuat pintu gerbang otomatis menggunakan remote control infrared. Cukup membeli sebuah remote control infrared kit dan menyambungkan ke Arduino. Arduino tidak membuat bahasa pemograman khusus, melainkan menggunakan bahasa C yang sudah ada, lebih tepatnya 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 membuat bermacam – macam system operasi Unix, Linux, dsb. Bahasa C juga biasanya di 14 akademi dan perguruan tinggi selain bahasa pemograman Basic atau Pascal. Bahasa C adalah bahasa pemrograman yang sangat ampuh yang kekuatannya mendekati bahasa assembler. Bahasa C menghasilkan file kode objek yang sangat kecil dan dieksekusi dengan sangat cepat. Karena itu Bahasa C sering digunakan pada sistem operasi dan 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 Arduino pun bisa dijalankan pada semua sistem operasi yang umum misalnya : Windows, Linux dan MacOS. Bahasa C mudah dipelajari. Maksud kata ‘mudah’ disini adalah relative. Tergantung kemampuan setiap user. Kalau anda sudah mengeri bahasa C, anda bisa melakukan pengembangan dengan board lain atau mikrokontroler lain dengan lebih mudah. Di internet banyak library bahasa C untuk Arduino yang bisa didownload dengan gratis. Setiap library Arduino biasanya disertai dengan contoh pemakaiannya. Keberadaan library – library ini bukan hanya membantu kita membuat proyek mikrokontroler, tetapi bisa di jadikan sarana untuk mendalami pemrograman Bahasa C pada mikrokontroler. 2.5.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.5.2 Input / Output Digital Input / output Digital atau digital pin adalah pin – pin untuk menghubungkan Arduino dengan komponen atau rangkaian digital. Misalnya kalau ingin membuat LED berkelip, LED tersebut bisa dipasang pada salah satu pin I/O digital dan ground. Komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin – pin ini. 15 2.5.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.5.4 Baterai / Adaptor Soket baterai atau adaptor digunakan untuk menyuplai Arduino dengan tegangan dari baterai / adaptor 9V pada saat Arduino sedang tidak disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu memasang baterai / adaptor saat memprogram Arduino. 2.6 Aplikasi Program Arduino IDE ( Integrated Development Enviroment ) Ketika kita membuka program Arduino IDE ( Integrated Development Enviroment ), akan terlihat serupa dengan tampilan gambar 2.5 dibawah ini. Jika kita menggunakan Windows atau Linux, akan terlihat perbedaan, tetapi pada dasarnya IDE ( Integrated Development Enviroment ) akan sama tidak perduli Operasi Sistemnya apa yang digunakan. Gambar 2.8 Tampilan program IDE ( Integrated Development Enviroment ) 16 2.7 Arduino Programming Tool Arduino merupakan perangkat pemrograman mikrokontroler jenis AVR yang tersedia secara bebas (open-source) untuk membuat prototip elektronika yang dapat berinteraksi dengan keaadaan sekitarnya. Arduino dapat menerima input dari berbagai jenis sensor dan mengendalikan sensor, servo dan aktuator lainnya. Gambar 2.9 Tampilan Utama Aplikasi Arduino 1.Toolbar Gambar 2.10 Toolbar pada Aplikasi Arduino 17 a. Verify Tombol ini digunakan untuk meng-compile program yang telah dibuat. Compile berguna untuk mengetahui apakah program yang dibuat telah benar atau masih memiliki kesalahan. Apabila asa 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 digunakan untuk membuat coding pada windows yang baru. d. Open Tombol ini digunakan untuk membuka coding yang sudah disimpan sebelumnya. e. Save Tombol ini digunakan untuk menyimpan coding yang sedang dikerjakan. f. Upload Tombol ini digunakan mengirim coding yang sedang dikerjakan ke mikrokontroler. g. Serial Monitor Tombol ini digunakan untuk melihat aktivitas komunikasi serial dari mikrokontroler baik yang di kirim oleh user ke mikrokontroler maupun sebaliknya 18 2. Coding Area Bagian ini merupakan tempat penulisn coding dengan menggunakan bahasa pemrograman C.Coding di dalam Arduino memiliki 2 (dua) bagian utama,yaitu: a)Void setup() Bagian ini merupakan inisialisasi yang diperlukan sebelum program utama dijalankan.contoh: Void setup() { Serial.begin(19200); // inisialisasi baudrate komunikasi serial. pinMode(5,INPUT); // set pin no.5 Arduino sebagai input. pinMode(12,OUTPUT); // set pin no.12 Arduino sebagao output. } b)Void setup() Bagian ini merupakan fungsi utama yang dijalankan terus menerus selama modul Arduino terhubung dengan power supply.Contoh Void loop() { digitalWrite(13,HIGH); //memberikan logic High pada pin 13. delay(100); //menunda selama 1 detik. digitalWrite(13,LOW); //memberikan logic Low pada pin 13 delay(100); //menunda selama 1 detik. } 19 3. Application status Bagian ini memberikan informasi kepada pengguna mengenai tugas yang sedang dijalankan 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. 2.8 Serial Port Komunikasi serial digunakan untuk memprogram mikrokontroler langsung dari aplikasi Arduino.Selain itu,komunokasi serial juga digunakan untuk mengirim dan menerima data antara mikrokontroler dan komputer melalui fasilitas serial monitor yang terdapat pada aplikasi Arduino. Seperti gambar berikut ini: Gambar 2.11 Tools Serial Port