BAB 2 LANDASAN TEORI 2.1 LED Dioda cahaya atau lebih dikenal dengan sebutan LED (light-emitting diode) adalah suatu semikonduktor yang memancarkan cahaya monokromatik yang tidak koheren ketika diberi tegangan maju. Sebuah LED adalah sejenis dioda semikonduktor istimewa. Seperti sebuah dioda normal, LED terdiri dari sebuah chip bahan semikonduktor yang diisi penuh, atau didop, dengan ketidakmurnian untuk menciptakan sebuah struktur yang disebut p-n junction. Pembawa muatan elektron dan lubang mengalir ke junction dari elektroda dengan voltase berbeda. Ketika elektron bertemu dengan lubang, dia jatuh ke tingkat energi yang lebih rendah, dan melepas energi dalam bentuk photon. Tak seperti lampu pijar dan neon, LED mempunyai kecenderungan polarisasi. Chip LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati chip LED. Ini menyebabkan chip LED tidak akan mengeluarkan emisi cahaya. 7 8 Chip LED pada umumnya mempunyai tegangan rusak yang relatif rendah. Bila diberikan tegangan beberapa volt ke arah terbalik, biasanya sifat isolator searah LED akan rusak menyebabkan arus dapat mengalir ke arah sebaliknya. Karakteristik chip LED pada umumnya adalah sama dengan karakteristik dioda yang hanya memerlukan tegangan tertentu untuk dapat beroperasi. Namun bila diberikan tegangan yang terlalu besar, LED akan rusak walaupun tegangan yang diberikan adalah tegangan maju. Tegangan yang diperlukan sebuah dioda untuk dapat beroperasi adalah tegangan maju. Berikut ini adalah gambar penampakan dari LED : Gambar 2.1 Gambar LED 2.2 Multiplexing pada Led Matrix Multiplexing adalah teknik penyusunan untuk mengoperasikan led matrix. Pada multiplexing akan mengaktifkan satu baris pada led matrix pada saat-saat tertentu, karena satu kaki dari tiap-tiap led (katoda atau anoda) dihubungkan menjadi satu. Secara penyusunan dan common yang 9 diberikan multiplexing ada 2 macam yaitu common katoda atau common anoda. Multiplexing menggunakan Red Green Led yaitu menyusun tiap-tiap led berwarna merah dan hijau menjadi satu titik dan menghubungkan kaki katoda atau anoda pada tiap led menjadi satu. Gambar 2.2 Multiplex Led Matrix R/G Pada gambar diatas multiplexing common-row katoda terjadi menghubungkan tiap-tiap led berwarna merah dan hijau menjadi 1 titik dan masing-masing kaki katoda terhubung menjadi satu baris dan kaki anoda pada tiap-tiap led terhubung menjadi satu kolom. Dapat disimpulkan pada COL pin 5, 6, 7, 8, 9, 10, 11 dan 12 menghubungkan kaki anoda led yang berwarna hijau (green) dan COL pin 13, 14, 15, 16, 17, 18, 19, 20 10 menghubungkan kaki anoda led yang berwarna merah (red) sedangkan ROW pin 1, 2, 3, 4, 21, 22, 23, 24 menghubungkan kaki katoda dan pada pin ROW ini-lah yang menjadi pin perintah untuk menyalakan tiap led dengan memberi logik low selain itu diperlukan data yang berasal dari pin COL untuk mentukan warna led yang ingin dinyalakan dengan memberikan logik high. 2.3 Shift Register Shift register adalah suatu register yang memiliki empat model operasi bitwise (serial ke serial, serial ke paralel, paralel ke serial, dan paralel ke paralel) disebut sebagai universal shift register (USR) Dalam praktek, untuk mengisi register atau untuk menyimpan data dapat dilakukan dengan dua cara: 1. Dimasukkan secara Jajar (Parallel In): Pada cara ini semua bagian resgister diisi pada saat yang bersamaan. Cara yang pertama (Parallel in) ditunjukkan sesuai gambar di bawah ini: Data: 1 1 Output: 1 1 0 0 1 1 11 Prinsip kerja parallel In : Output masing-masing register akan respon sesuai data secara serempak setelah input kontrol diberi nilai logika “1”. 2. Dimasukkan secara Deret (Serial In): Pada cara ini data dimasukkan bit demi bit mulai dari nilai yang paling ujung (dapat dari kiri atau dari kanan), dan digeser sampai semuanya terisi. Penggeseran data diatur oleh sinyal Clock tiap kali data dimasukkan satu-persatu. Sedangkan pada cara yang kedua (serial in), bila data digeser dari kanan ke kiri disebut “Register bergeser ke kiri” (Shift-Left Register), sebaliknya bila data digeser dari kiri ke kanan disebut “Register bergeser ke kanan” (Shift-Right Register). Masingmasing cara tersebut digambarkan sesuai gambar di bawah ini: 0 0 0 0 1101 Ket: Register dalam keadaan kosong. Data siap masuk, menunggu Clock. 0 0 0 1 1010 Ket: Sinyal clock pertama, satu bit data mulai masuk. 0 0 1 1 0100 12 Ket: Sinyal clock kedua, data yang pertama bergeser, data kedua mulai masuk. 0 1 1 0 Ket: Sinyal clock ketiga, data yang pertama dan kedua bergeser, data ketiga mulai masuk 1 1 0 1 Ket: Sinyal clock keempat, data yang pertama, kedua dan ketiga bergeser, data keempat mulai masuk 2.4 Mikrokontroller Mikrokontroller merupakan sebuah processor yang digunakan untuk kepentingan kontrol. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan computer mainframe, mikrokontroller dibangun dari elemen – elemen dasar yang sama. Seperti umumnya komputer, mikrokontroller adalah alat yang mengerjakan instruksi – instruksi yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini menginstruksikan komputer untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer. 13 Beberapa fitur yang umumnya ada di dalam mikrokontroller adalah sebagai berikut : • RAM ( Random Access Memory ) RAM digunakan oleh mikrokontroller untuk tempat penyimpanan variable. Memori ini bersifat volatile yang berarti akan kehilangan semua datanya jika tidak mendapatkan catu daya. • ROM ( Read Only Memory ) ROM seringkali disebut sebagai kode memori karena berfungsi untuk tempat penyimpanan program yang akan diberikan oleh user • Register Merupakan tempat penyimpanan nilai – nilai yang akan digunakan dalam proses yang telah disediakan oleh mikrokontroller • Special Function Register Merupakan register khusus yang berfungsi untuk mengatur jalannya mikrokontroller. Register ini terletak pada RAM • Input dan Output Pin Pin input adalah bagian yang berfungsi sebagai penerima signal dari luar, pin ini dapat dihubungkan ke berbagai media inputan seperti keypad, sensor, dan sebagainya. Pin output adalah bagian yang berfungsi untuk mengeluarkan signal dari hasil proses algoritma 14 mikrokontroller • Interrupt Interrupt bagian dari mikrokontroller yang berfungsi sebagai bagian yang dapat melakukan interupsi, sehingga ketika program utama sedang berjalan, program utama tersebut dapat diinterupsi dan menjalankan program interupsi terlebih dahulu. Beberapa interrupt pada umumnya adalah sebagai berikut : Interrupt Eksternal Interrupt akan terjadi bila ada inputan dari pin interrupt Interrupt timer Interrupt akan terjadi bila waktu tertentu telah tercapai Interrupt serial Interupt yang terjadi ketika ada penerimaan data dari komunikasi serial 2.4.1 Fitur AVR 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 15 arsitektur CISC (Completed Instruction Set Computer). 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 Programmable Read Only Memory) Erasable 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. 16 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 register pointer 16-bit pada mode pengalamatan tak 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, 17 SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh. Berikut ini adalah tampilan architecture ATmega 328 : Gambar 2.3 Architecture ATmega328 18 2.4.2 Konfigurasi PIN ATMega328 Gambar 2.4 Konfigurasi Pin ATMega328 Table 2.1 Konfigurasi Port B 19 Table 2.2 Konfigurasi Port C Tabel 2.3 Konfigurasi Port D 20 2.4.3 Arduino Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. 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. Gambar 2.5 Board Arduino ATmega328 Berikut ini adalah konfigurasi dari arduino duemilanove 328 : Mikronkontroler ATmega328 Beroperasi pada tegangan 5V 21 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 • Power Arduino dapat diberikan power melalui koneksi USB atau power supply. Powernya diselek secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, 22 tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 sampai 12 volt. Penjelasan pada pin power adalah sebagai berikut : Vin Tegangan input ke board arduino ketika menggunakan tegangan dari luar (seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini. 5V Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau supply regulasi 5V lainnya. 3V3. Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya adalah 50mA Pin Ground berfungsi sebagai jalur ground pada arduino 23 • Memori ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM. • Input dan Output Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 2050 KOhms. Beberapa pin memiliki fungsi sebagai berikut : Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang koresponding dari USB FTDI ke TTL chip serial. Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interap pada low value, rising atau falling edge, atau perubahan nilai. PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi analogWrite(). 24 SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino. LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati. 2.5 Sensor Ping Ultrasonic Dalam sistem otomatisasi perubahan informasi pada led matrix untuk mendeteksi adanya suatu objek digunakan sensor ping))) ultrasonic. Sensor PING Ultrsonic yang digunakan adalah sensor dari perusahan PARALLAX yang memiliki karakterisitik sebagai berikut : 1. Sumber catu daya yang digunakan adalah 5 Volt dan sumber arus 30 mA (minimum) dan 35 mA (maksimum). 2. Jarak objek yang dideteksi adalah 2 cm (minimum) sampai dengan 3 m (maksimum). 3. Mempunyai 3 pin interface (power) inputan volt sebesar 5 volt, (ground) pin ground terhubung dengan ground mikrokontroller dan yang terakhir pin (SIG) signal input output. 4. Input Triger-nya merupakan pulsa TTL positif sebesar 2 μs, typical 5 μs. 25 5. Pulse Echo merupakan pulsa TTL positif sebesar 115 μs (minimum) dan 18 ms (maksimum). 6. Hold off Echo-nya merupakan 350 μs dari kondisi falling dari kondisi trigger. 7. Frekuensi burst-nya merupakan 40 KHz (diatas frekuensi pendengaran manusia). 8. Berkerja dengan baik pada range temperatur 0 oC sampai dengan 70 o C. 9. Sensor ping ))) tidak dapat menditeksi objek yang terlalu kecil. Gambar 2.6 dimensi Sensor PING Ultrasonic 26 Gambar 2.7 Konfigurasi Sensor PING Ultrasonic Gambar 2.8 Diagram waktu sensor PING))) Sensor Ping mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik (40 kHz) selama tBURST (200 μs) kemudian mendeteksi pantulannya. Sensor Ping memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroller pengendali (pulsa trigger dengan 27 tOUT min. 2 μs). Gelombang ultrasonik ini melalui udara dengan kecepatan 344 meter per detik, mengenai objek dan memantul kembali ke sensor. Ping mengeluarkan pulsa output high pada pin SIG setelah memancarkan gelombang ultrasonik dan setelah gelombang pantulan terdeteksi Ping akan membuat output low pada pin SIG. Lebar pulsa High (tIN) akan sesuai dengan lama waktu tempuh gelombang ultrasonik untuk 2x jarak ukur dengan objek. Maka jarak yang diukur adalah [(tIN s x 344 m/s) ÷ 2] meter. Gambar 2.9 Proses Kerja Sensor PING Ultrasonic 2.5.1 Gelombang Ultrasonik Gelombang ultrasonic adalah gelombang sinusoidal dengan besar frekuensi di atas frekuensi gelombang suara yaitu lebih dari 20 KHz sampai dengan 500 KHz. Sensor Ultrasonic bekerja berdasarkan prinsip pantulan gelombang suara, dimana sensor ini menghasilkan gelombang suara yang kemudian menangkapnya kembali dengan perbedaan waktu sebagai dasar penginderaanya. Perbedaan waktu antara gelombang suara yang dipancarkan 28 dengan ditangkapnya kembali gelombang suara tersebut merupakan representasi jarak. Kecepatan rambat gelombang ultrasonic dipengaruhi oleh beberapa factor antara lain suhu, tekanan, kelembapan, dan signal radio Beberapa hal yang penting dalam pemantulan gelombang sensor ultrasonic adalah sebagai berikut : • Bahan atau jenis matrial Objek padat akan memantulkan gelombang yang jauh lebih baik dari pada objek cair. Objek padat terbuat dari besi baja akan memberikan pemantulan echo yang lebih baik dibandingkan objek padat kayu atau gabus, dikarenakan kayu sedikit-banyak dapat menyerap gelombang yang mengenai dan dipantulkan kembali. Dalam hal ini objek manusia cukup baik dalam proses pemantulan gelombang ultrasonik. • Pola permukaan objek Objek dengan permukaan datar, halus dan tegak lurus dengan sinyal ultrasonik akan memberikan pemantulan (Echo) yang lebih baik dibanding dengan permukaan yang tidak rata dan posisi objek tidak mendukung pemaantulan gelombang secara sempurna. 29 • Ukuran dan bentuk objek Objek dengan ukuran yang lebih besar akan memantulkan lebih banyak gelombang dibandingkan dengan objek yang lebih kecil sehingga memberikan hasil yang tidak baik bahkan sampai tidak terdeteksi adanya suatu objek. Objek dengan gelombang bentuk ultrasonik bola ke dapat segalah memantulkan arah sehingga pemantulan gelombang yang diterima oleh sensor PING Ultrasonic menjadi lemah atau tidak baik dan sebaliknya jika objek dengan bentuk datar akan memantulkan gelombang yang lebih baik atau sempurna. 2.6 Serial Peripheral Interface (SPI) Serial Peripheral Interface ( SPI ) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan peripheral lain di luar mikrokontroller Penjelasan 3 jalur utama dari SPI adalah sebagai berikut : • MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai 30 output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input. • MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output. • CLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input. Untuk mengatur mode kerja komunikasi SPI ini dilakukan dengan menggunakan register SPCR (SPI Control Register), SPSR (SPI Status Register) dam SPDR (SPI Data Register) 2.6.1 SPI Control Register (SPCR) Mode SPCR yang digunakan adalah sebagai berikut : • Bit-6 SPE (SPI Enable) SPE digunakan untuk mengaktifkan dan menonaktifkan komunikasi SPI dimana jika SPI bernilai 1 maka komunikasi SPI aktif sedangkan jika bernilai 0 maka komunikasi SPI tidak aktif. 31 • Bit-4 MSTR (Master or Slave Select) MSTR digunakan untuk mengkonfigurasi sebagai master atau slave secara software dimana jika MSTR bernilai 1 maka terkonfigurasi sebagai master sedangkan MSTR bernilai 0 maka terkonfigurasi sebagai slave. Pengaturan bit MSTR ini tidak akan bisa dilakukan jika pin SS dikonfigurasi sebagai input karena jika pin SS dikonfigurasi sebagai input maka penentuan master atau slavenya otomatis dilakukan secara hardware yaitu dengan membaca level tegangan pada SS • Bit-1 SPR1/0 (SPI Clock Rate Select) SPR1 dan SPR0 digunakan untuk menentukan kecepatan clock yang digunakan dalam komunikasi SPI. 2.6.2 SPI Status Register (SPSR) Dalam SPSR mode pengaturan yang dilakukan adalah sebagai berikut : • SPIF (SPI Interrupt Flag) SPIF merupakan bendera yang digunakan untuk mengetahui bahwa proses pengiriman data 1 byte sudah selesai. Jika proses pengiriman data sudah selesai maka SPIF akan bernilai satu (high). 32 2.6.3 SPI Data Register (SPDR) SPDR merupakan register yang digunakan untuk menyimpan data yang akan dikirim atau diterima pada komunikasi SPI. 2.7 KOMUNIKASI SERIAL Komunikasi serial merupakan komunikasi data dengan pengiriman data secara satu per satu pada waktu tertentu. Sehingga komunikasi data serial hanya menggunakan dua kabel yaitu kabel data untuk pengiriman yang disebut transmit ( TX ) dan kabel data untuk penerimaan yang disebut receive ( RX ). Kelebihan dari komunikasi serial adalah jarak pengiriman dan penerimaan dapat dilakukan dalam jarak yang cukup jauh dibandingkan dengan komunikasi parallel tetapi kekurangannya kecepatannya lebih lambat dibandingkan komunikasi parallel Dalam komunikasi serial dikenal ada dua mode komunikasi serial : • Mode Sinkron Mode sinkron merupakan mode komunikasi yang pengiriman tiap bit data dilakukan dengan menggunakan sinkronisasi clock. Pada saat transmitter hendak mengirimkan data, harus disertai clock untuk sinkronisasi antara transmitter dan receiver 33 • Mode Asinkron Komunikasi asinkron serial merupakan sebuah protocol transmisi asinkronous, dimana komunikasi ini tidak menggunakan clock, tetapi telah memiliki baudrate yang telah disepakati oleh masing-masing sistem yang sedang berkomunikasi. Kerja dari komunikasi ini adalah, signal start dikirimkan pada saat sebelum data dikirimkan dan signal stop dikirimkan setelah setiap data selesai dikirimkan. Signal start digunakan untuk mempersiapkan mekanisme penerimaan untuk menerima dan memproses data yang akan dikirimkan dan signal stop berguna untuk mempersiapkan mekanisme penerimaan data berikutnya. Berikut ini adalah protocol pengiriman data secara serial asinkron : 1. Start bit selalu berlogic LOW 2. Pengiriman data bit dari 0 sampai 8 3. Parity bit 4. Stop bit selalu berlogic HIGH 34 5. IDLE jika tidak ada pengiriman data selanjutnya Gambar 2.10 Protocol UART